Android Architecture Components

don9wan·2021년 10월 17일
0

Android

목록 보기
15/18
post-thumbnail
post-custom-banner

오늘은 AAC(Android Architecture Components)에 대해 공부해보겠다. 먼저 Android Jetpack에 대해 알아보자.

Jetpack은 2018년 5월에 구글이 발표한 라이브러리와 도구 모음집이다.
개발자들이 쉽고, 빠르게, 퀄리티가 좋은 앱을 만들 수 있도록 도와주는 라이브러리와 도구를 모아두었다. 앞서 Support library라는 라이브러리 모음집이 존재했다고 한다. 하지만 해당 Support library에 여러 문제점들이 존재했다. 이를 대폭 개선하며 새로운 이름으로 등장한 것이 Jetpack이다. 현재도 Support library(android)는 사용 가능하지만, android 측에선 androidx를 사용할 것을 권장하고 있다. 여담으로 Support library의 문제점은 다음과 같았다고 한다.

  • 패키지명과 버전 규칙이 모호했음
  • 단일 라이브러리로 제공됐음(강제로 앱 규모가 커짐)
  • 바이너리 호환성 제약

androidx?

"Jetpack 라이브러리들을 묶은 패키지명"

그래, 언젠가 gradle 파일에서 본 적이 있었다.
그렇다면 constraintLayout이 jetpack의 라이브러리인가?

그렇다고 한다.

자 그럼 Jetpack에 대해 알게 됐을 것이다. 이제 AAC를 공부해도 된다. Jetpack은 라이브러리 모음이라고 했다. AAC는 이 Jetpack의 한 섹션이다. Jetpack에서 테스트와 유지관리가 쉬운 앱을 디자인할 수 있도록 도와주는 라이브러리들의 모음이다. 다음과 같은 라이브러리들이 AAC에 포함돼있다.

  • Lifecycle : 앱의 수명주기 관리
  • Livedata : 기존 모델의 데이터가 변경되면 뷰에 알리는 데이터 객체 빌드
  • ViewModel : 앱 회전 시 제거되지 않는 UI 관련 데이터 저장
  • Room : SQLite 개체 매핑 라이브러리
  • DataBinding : 프로그래매틱 방식이 아닌 선언적 형식으로 UI 구성요소를 앱의 데이터 소스와 매핑
  • Navigation : 프래그먼트의 진행을 보기 쉽게 정리해줌
  • Paging : 페이징 기법을 쉽게 적용
  • WorkManager : 지연 가능한 비동기 작업을 쉽게 에약할 수 있는 API

다시 AAC의 본질로 돌아가보자. 테스트와 유지관리가 쉬운 앱을 디자인할 수 있도록 도와주는 라이브러리들의 모음이라고 했다. 테스트와 유지관리가 쉬운 앱 아키텍처 패턴인 MVVM 패턴이 기억나지 않는가. Android에선 이 MVVM 패턴 적용을 지향하고, AAC의 라이브러리를 사용해 MVVM 패턴을 적용을 수월하게 해준다. 해당 내용에 대한 가이드라인 또한 존재한다.

Guide to app architecture

해당 가이드라인을 읽어보면 알게되겠지만 MVVM 패턴 구현 과정에 앞서 언급했던 AAC 라이브러리들이 사용되는 것을 알 수 있다. 따라서 MVVM에서 AAC가 언급되고, AAC에서 MVVM이 언급되는 것이다. 아 물론 AAC는 Jetpack의 한 섹션이라는 것을 기억해줬으면 한다! 포트폴리오 제작 시기가 임박했다. 따라서 위의 가이드라인을 따라가며 MVVM 적용에 대한 준비를 하면 될 것 같다.

profile
한 눈에 보기 : https://velog.io/@dongwan999/LIST
post-custom-banner

0개의 댓글