안드로이드

Kotlin/개인 프로젝트

날씨 앱 제작: 전체적인 작동 구조 고안

전체적인 작동 구조 고안 1. 목표 날씨 API를 이용하여 실시간 날씨 정보와 7일간의 일기 예보 정보 받아오기. 받아온 정보를 앱 화면에 표시. 검색 기능을 통하여 다양한 지역의 날씨 예보 받아오기. 실시간 날씨는 상단에 넣고, 일기 예보는 카드 뷰 형식으로 깔끔하게 만들어서 스크롤 할 수 있는 형태로 구현하기. 스크롤을 내려도 실시간 날씨는 컴팩트하게 변해서 계속 볼 수 있도록 만들기. 지역에 따른 낮과 밤 시간에 따라 배경화면 변하게 만들기. 검색한 지역을 저장하고, 네비게이션 바에 따로 구현하여 클릭하면 따로 검색할 필요 없이 날씨 정보를 구현할 수 있게 제작하기. 2. 구현 방법. Retrofit을 이용하여 날씨 정보 받아온다. 개념 정리: Retrofit2 사용 법 1. Retrofit2란? ..

Kotlin/개인 프로젝트

날씨 정보 앱 제작 : 사전 연습

1. 목표 삼성 기본 앱에 있는 날씨 앱처럼 구현하기 위해 연습하고 있다. 이번 프로젝트는 삼성 앱처럼 드로우 네비게이션 바를 구현하고, 그곳에 즐겨찾기 등록한 날씨 위치와 이 목록을 관리할 수 있는 페이지를 제작하는 것으로 계획하였다. 2. 구현 방식 2-1. 초기 설계 연습적인 목적이 있어서 이번 기회에 안드로이드 스튜디오에서 기본적으로 제공되는 드로우 네비게이션 레이아웃의 원리에 대해서도 같이 공부하면서 진행하기로 하였다. 공부 시간을 배로 늘린 주 원인 안드로이드 스튜디오에서 기본 제공되는 네비게이션 바를 그대로 사용하지는 않고, 그냥 필요한 부분만 가져다 썼다. 뭔가 nav_graph로 여러 Fragment를 관리하는 것이 좀 좋아 보여서 사용하고 하는 방식으로 말이다. 단순히 따라하는 것인데 ..

Kotlin/예제 정리

예제 정리 : 페이징 리스트에 리플래쉬 기능 추가하기

1. 목표 이미지 리스트 구현하기 리사이클러뷰 사용하기 Paging 3 라이브러리에 이해하고, 사용하기 아래 링크에서 부터 이어서 구현하였습니다. 예제 정리 : 이미지 리스트 구현 1. 목표 이미지 리스트 구현하기 리사이클러뷰 사용하기 Paging 3 라이브러리에 이해하고, 사용하기 아래 링크에서 부터 이어서 구현하였습니다. 이미지 화면 구현 코틀린을 활용한 이미지 상세 baboprograming.tistory.com 2. 사용 기술 Refresh 3. 제작 구조 단순히 이해하기 위해 따라 만든 것이라 따로 구분하지는 않았다. 4. 코드 구현 4-1. Refresh 기능에 대한 이해 페이징 라이브러리에서 기본적으로 제공하는 SwipeRefreshLayout 뷰를 이용하여, 사용자가 아래로 스크롤할 때 추..

Kotlin/예제 정리

예제 정리 : 이미지 리스트 구현

1. 목표 이미지 리스트 구현하기 리사이클러뷰 사용하기 Paging 3 라이브러리에 이해하고, 사용하기 아래 링크에서 부터 이어서 구현하였습니다. 이미지 화면 구현 코틀린을 활용한 이미지 상세 구현을 만들어 볼 계획이다. Retrofit과 Koin, MVVM과 FLOW를 이용하여 만들었다. 기본적인 프로그램 구조는 아래의 소스에서 가져와 따라 만들었다. Koin + MVVM + Coroutine + F baboprograming.tistory.com 원본은 아래와 같습니다. Paging 3.0 + MVVM + Flow를 이용하여 리스트 구현하기 앱을 개발하면 빠지지않고 사용하는 페이징 리스트를 구현해 보도록 하겠습니다. 자동으로 페이징을 해주는 Paging 3.0 라이브러리를 이용하여 MVVM 모델과 F..

Kotlin/개인 프로젝트

개인 프로젝트 : 코틀린으로 To-do List - MVVM 사용하기

1. 목표 TodoList 제작하기 Item을 CardView 이용해서 조금 더 깔끔하게 UI 디자인 하기 Room Database를 이용하여 추가 수정할 수 있도록 만들기. 삭제 버튼을 구현하여 언제든지 삭제할 수 있도록 만들기 2. 사용 기술 RecyclerView Room database MVVM databinding 3. 제작 구조 이런 구조로 제작하였다. 안드로이드 체계에 맞추어 data와 domain, ui 파트로 나누어 작업하였다. 1편에서는 xml과 Room Database 요소인 Todo와 AppDatabase, TodoDAO에 대해 살펴보았다. 2편인 오늘은 MVVM databinding에 대해 살펴볼 것이다. 4. 코드 구성 4-1. MVVM 원리 MVVM은 Model-View-Vie..

Kotlin/개인 프로젝트

개인 프로젝트 : 코틀린으로 To-do List - Room Database 이용하기

1. 목표 TodoList 제작하기 Item을 CardView 이용해서 조금 더 깔끔하게 UI 디자인 하기 Room Database를 이용하여 추가 수정할 수 있도록 만들기. 삭제 버튼을 구현하여 언제든지 삭제할 수 있도록 만들기 2. 사용 기술 RecyclerView Room database MVVM databinding 3. 제작 구조 이런 구조로 제작하였다. 안드로이드 체계에 맞추어 data와 domain, ui 파트로 나누어 작업하였다. 1편에서는 xml과 Room Database 요소인 Todo와 AppDatabase, TodoDAO에 대해 살펴볼 예정이다. 4. 코드 구성 4-1. build.gradle plugins { // Room id 'kotlin-kapt' } dependencies ..

Kotlin/예제 정리

예제 정리 : 리사이클러 뷰(RecyclerView)

1. 리사이클러 뷰 1-1. 정의 리사이클러뷰는 안드로이드에서 많이 사용되는 뷰 중 하나이다. 대량의 데이터를 리스트나 그리드 형태로 표시할 때 사용된다. 리사이클러뷰는 리스트뷰나 그리드뷰와 유사하지만, 성능면에서 우수하고 더 많은 커스터마이징이 가능하다. 뷰 객체를 처음에 생성하고 그것을 돌려 쓰기 때문에 Cost 관점에서 효과적이다. 다만, 뷰 홀더라는 클래스가 필요하다. 1-2. 사용 방법 1) RecyclerView 를 레이아웃 파일에 추가한다. 2) 아이템뷰의 레이아웃 파일을 작성한다. 3) 어댑터를 작성하여 아이템뷰를 관리한다. 4) 리사이클러뷰에 레이아웃 매니저와 어댑터를 설정한다. 사실상 기본적인 사용법은 거의 정해져 있어서. 인터넷에 소스를 참고하면 쉽게 구현할 수 있다. 2. 예시 코드..

Kotlin/개념 정리

개념 정리 : 뷰 모델

1. 정의 뷰 모델은 안드로이드 앱 아키텍처 컴포넌트 중 하나로, UI와 비즈니스 로직 사이의 중간 매개체 역할을 한다. 뷰 모델은 UI 구성 요소에서 사용하는 데이터를 관리하고, 이 데이터를 유지하면서 화면 회전과 같은 구성 변경에 대한 생명주기 이벤트를 처리한다. 뷰 모델을 사용하면 화면 구성 변경과 같은 이벤트가 발생할 때, 데이터를 다시 불러오지 않고 기존 데이터를 유지하면서 UI를 업데이트 할 수 있다. 일반적으로 뷰 모델은 뷰에 필요한 데이터를 불러오기 위해 Repository나 Use Case와 같은 데이터 관리 레이어와 상호 작용하며, 데이터를 가공하고 뷰에 보여줄 준비를 한다. 이를 통해 뷰 모델은 뷰에서 비즈니스 로직을 분리하고, 유지보수성과 테스트 용이성을 향상하는데 도움을 준다. 2..

Kotlin/개념 정리

개념 정리 : 라이브 데이터(Live Data)

1. 정의 라이브 데이터는 안드로이드 앱에서 사용되는 데이터 홀더 클래스이다. 데이터를 관찰하고 데이터가 변경될 때 관찰자에게 알리는 데 주로 사용된다. 옵저버 패턴을 구현하며, 데이터 소스가 변경될 때마다 관찰자(뷰나 프래그먼트)에게 변경 사항을 알려준다. 라이브 데이터는 일반적으로 ViewModel 클래스와 함께 사용된다. ViewModel은 UI와 관련된 데이터를 처리하고 보고나하며, 라이브 데이터를 사용하여 이러한 데이터를 관찰할 수 있다. 이를 통해 UI 컴포턴트와 비즈니스 로직을 분리하고, 유지보수성과 확장성을 향상시킬 수 있다. 2. 사용 예시 2-1. 상황 ViewModel에서 라이브 데이터를 사용하여 데이터를 관찰하고, UI 컴포넌트에서 라이브 데이터를 구독하여 데이터가 변경될 때마다 업..

Kotlin/개념 정리

개념 정리 : 데이터 바인딩

1. 정의 데이터 바인딩은 레이아웃 XML 파일과 액티비티 또는 프래그먼트 등의 뷰 컨트롤러 코드를 연결해주는 기술이다. 데이터 바인딩을 사용하면 레이아웃 XML 파일에서 뷰와 그것에 바인딩될 데이터를 선언하고, 이를 뷰 컨트롤러 코드에서 바로 참조할 수 있다. 장점은 코드의 가독성과 유지 보수성이 향상된다는 점에 있다. 1-1. 데이터 바인딩? 뷰 바인딩? 언뜻 보면 비슷해 보인다. 이름도 비슷한 것이 다른 점은 어떤 것이 있을까? 뷰 바인딩은 XML 파일에서 정의한 모든 뷰를 각각의 바인딩 객체로 생성한다. 이 바인딩 객체는 해당 뷰와 관련된 메서드와 속성에 대한 강력한 타입 안정성을 제공한다. 뷰 바인등을 사용하면 findViewByID 같은 메서드를 사용하지 않아도 레이아웃 파일에서 정의한 모든 ..

바보인간
'안드로이드' 태그의 글 목록