AAC

우리 프로젝트는 안드로이드에서 권장하는 AAC 구조를 참고하여 프로젝트를 재구성하였습니다.

Q. AAC란?

A. 안드로이드는 Activity, BroadcastReceiver, Service, ContentProvider 등 여러 컴포넌트 들이 있고, 생명주기가 다르게 얽혀있습니다. 앱을 잘 만들기 위해서는 이러한 컴포넌트들을 부드럽게 연결해야 하는데, 생명주기를 학습하고 엉키지 않도록 고민하는 것은 결국 개발자의 몫이었습니다. 구글은 이 고민을 줄이기위해 SDK에서 제공하는 컴포넌트들에 대해 개발자들에게 더 가이드를 주기를 원했습니다. 그래서 Android Architecture Components(AAC)를 만들었습니다.

참고링크 : https://developer.android.com/jetpack/guide?hl=ko

[결과] Uphone Project는 AAC 구성요소중 ViewModel, LiveData를 이용하여 앱내 데이터를 관리하도록 변경되었습니다.

Clean Architecture

간단하게 말하자면 각 영역을 확보후 다른 레이어 간의 계층을 나누는것입니다.

이렇게 계층을 나누는 이유는 각 계층의 하는일이 정해져 있기 때문입니다. 또한 이런 아키텍처가 동작하기 위해서는 의존성 규칙을 지켜야 합니다(안드로이드 DI인 Dagger2 또는 Koin을 접목할수도 있었지만, 현재는 추가하지않았습니다.)

🌟 Clean Architecture를 기반으로 구성된 프로젝트의 장점을 알아보겠습니다!

  1. 유지 보수가 쉽다.

예시)

디자인이 변경되었어요! → UI 계층(Activity, Fragment) 수정