안드로이드 개발을 진행하면서 androidx 와 jetpack을 매번사용하지만 둘의 관계 그리고 바뀐 이유에 대해서는 고민을 별로 해본적이 없는것 같아 안드로이드나이츠 2021을 통해 정리해 보고자 한다.
Jetpack?
개발자가 고품질 앱을 손쉽게 작성할 수 있도록 해주는 라이브러리, 도구, 가이드를 모아둔 제품
AndroidX?
Jetpack이 추구하는 가이드라인을 실체화한 라이브러리
jetpack은 이론 androidX는 구체화된 구체물
두개를 썼을때 장점
- 플랫폼 릴리즈와 분리
- 버그 수정
- 새로운 기능 도입
- 고품질의 앱을 쉽게 작성
-> 앱 버그 수정이나 릴리즈 시기를 개발자가 정할 수 있게 됨
안드로이드 라이브러리의 과거
support library
- 최소 지원 버전이 다름
- 내부를 파악하기 어려운
- 단일 업데이트 불가능(라이브러리 전체의 버전이 올라가 버림)
-> 이러한 단점을 해결하기위해 androidX가 나옴
androidX:view compatibility(뷰 호환성)
Compat
- 구 버전에서 새롭게 추가되는 api와의 호환성
Standalone
- 다양한 버전에서 단독적으로 사용할 수 있는 UI 라이브러리
AppCompatViewInflater
- android widget을 자동으로 다른 widget으로 대체하는데 사용
androidX: Code Compatibility
- 라이브러리들은 디바이스의 OS 버전과 하드웨어 등에 영향을 받음
- 이에따라 분기처리 필요
- androidX는 windowinsetsCompat이라는 것을 활용해 대부분 분기처리를 해줌