본문 바로가기
반응형

안드로이드30

Android - LifecycleOwner vs ViewLifecycleOwner Android 앱을 개발하면서 가장 기본적이고 중요한 것 중 하나는 앱의 생명주기라고 생각한다. 생명주기, Lifecycle은 Activity, Fragment, Service 와 같은 앱의 구성요소에 따라 다르다. 흐름은 어느정도 비슷하지만, 호출되는 함수가 다른 등의 차이가 있다. 현재 Android앱을 개발하면 Jetpack을 너무나도 당연히 사용하게 되고, LiveData와 ViewModel 또한 활용하고 있을 것이다. 그러다보면 자연스럽게 LifecycleOnwer, ViewLifecycleOwner에 대해 알게 된다. 그렇다면 이 둘의 차이는 무엇인지 정리해보자. LifecycleOwner가 뭐야? 먼저, LifecycleOwer에 대해 알아보자. https://developer.android.. 2023. 1. 15.
[Android] Fragment Lifecycle - onCreateAnimation 은 무엇일까? 안드로이드 앱을 개발하다보면 Fragment를 자주 사용하게 된다. 특히, Jetpack Navigation Component를 사용한다면 Fragment 기반의 Single Activity Application으로 개발하게 될 것이다. 그러다보니 Fragment의 Lifecycle에 대한 이해가 중요해지게 되었다. Fragment는 Activity와 달리, Fragment가 Attach, Detach되는 함수와 뷰가 생성되고 파괴되는 함수가 Lifecycle에 존재한다. 그런데 여기서 잘 알려지지 않은 라이프 사이클 함수도 있다. 바로 onCreateAnimation이다. package androidx.fragment.app; public class Fragment { ... /** * Called w.. 2023. 1. 14.
[Android] Clean Architecture With Pokedex (feat. Jetpack Compose, Hilt) - 4 이번 포스팅은 Presentation 레이어를 구현한다. 즉, presentation 모듈을 구현하게 된다. presentation 레이어는 앱의 UI, UI에 보여줄 데이터를 획득하는 기능을 담당한다. UI를 그리기 위해 Compose를 활용할 것이며, UI의 데이터, 즉 상태를 관리하는 기능은 ViewModel을 활용할 것이다. 먼저 포켓몬 리스트 데이터를 담당하는 ViewModel을 구현해보자. @HiltViewModel class PokemonListViewModel @Inject constructor( getPokemonListUseCase: GetPokemonListUseCase ) : ViewModel() { val pokemonList = getPokemonListUseCase .invok.. 2023. 1. 1.
[Android] Clean Architecture With Pokedex (feat. Jetpack Compose, Hilt) - 3 이번 포스팅은 Domain 레이어와 Presentation 레이어를 연결해주는 Data 레이어를 구현한다. 즉, data 모듈을 구현하게 된다. 실제 앱을 구현할 때, 데이터를 획득하는 방법은 크게 두 가지이다. Rest api등과 같은 Remote 데이터, 로컬 데이터베이스와 같은 Local 데이터다. 이 예제에서는 Remote 데이터만을 다룰 것이다. data모듈은 Domain 레이어의 Repository interface를 구현하게 된다. 구현 과정에서 API를 호출하여 네트워크 데이터를 획득하고 Domain 레이어의 Entity로 변환하는 작업이 필요하다. 우선 Retrofit을 활용하여 API 부터 구현한다. interface PokemonApi { @GET("pokemon") suspend f.. 2022. 7. 10.