Android Architecture Component

Android Architecture Component

안드로이드 개발하며 대표적으로 MVC - MVP - MVVM 패턴을 많이 사용한다. 나 역시 Todo project 를 참조하여 MVP 패턴을 주로 사용해왔다.

최근 다녀온 GDG DevFest Seoul 2017 에서 Android Architecture Component Codelab 세션을 통해
구글에서 제공하는 AAC(Android Architecture Component) library 를 접하게 되었다.
처음에 코드랩 신청할때는 그냥 기존 MVP나 MVVM 설명인줄… 사실 AAC 도 MVVM 의 일종 인거 같지만…
구글에서 친절히 codelab 을 제공하여 설명하고 있다면 한번이라도 살펴보는게 맞다고 생각한다.
그리고 구글 코드랩 페이지는 정말 좋다, 배울게 많다 :)
또한 Developer 문서에도 따로 정리까지 해주었다. (감동쓰…)
Android Architecture Component library 는 1.0 stable 버전이라 개인 프로젝트에 적용해보고자 AAC 를 좀더 분석해 보기로 하였다.

1. ViewModel

주의해야 할 점은 ViewModel 에 Context나 View 클래스를 참조하면 안된다.
메모리 누수의 원인이 될 수 있기 때문이다.

아래 그림이 ViewModel 의 LifeScope 를 좀 더 명확히 설명해 주고 있다. aac1

2. LiveData

3. LifecycleOwner/LifecycleRegistryOwner

기존엔 아래와 같이 nCreate(), onStart(), onStop() 메소드를 통해 lifecycle을 직접 handling 해 왔었다.
그러나 이제는 LifecycleObserver 를 implement 하여 Annotation 을 이용한 Lifecycle Handling 을 할 수 있다.



dagger2와 espresso 도 적용해 보고싶은데… AAC 를 적용한 reference 가 별로 없다. 직접 해보고 판단하는 수밖에… 아니면 기다리거나… 무튼 삽질이라도 해보고 후회하는게 나을것 같다. 경험은 중요하니깐.


google Refern 이외 정리 및 이해하는데 참고한 페이지

Comments