[Android] Jetpack 을 소개합니다

안드로이드 Jetpack 이 Google I/O 2018 에서 소개 되었다.

https://developer.android.com/jetpack/

Jetpack 이라는 이름이 뭔가 신선한데, Jetpack 이라는 이름을 듣는 순간 게임에서 아이템 꾸러미가 담긴 가방 같은 걸 연상시킨다. 

뭔가 굉장한 아이템이 담긴 가방인 것 같으니 서둘러 살펴보도록 하자.



Jetpack 은 쉽고 빠르게 안드로이드 앱을 만들 수 있도록 도와주는 도구와 '개발 지침'을 모아 놓은 라이브러리 집합이다. 이것은 당신이 특별한 앱 제작에만 집중 할 수 있도록 환경을 제공한다.



오.. 뭔가 라이브러리에다가 '개발 지침' (guidance) 를 제공한다고 한다. 
사실 어느 정도의 개발 가이드라인이 필요하다고 생각하긴 했는데 이게 내가 생각하는 그것인지는 좀 더 살펴봐야 겠다.




개발력 향상! 지루한 코드 박멸! 튼튼한 앱 제작!


그리고 아래와 같은것들을 사용할 수 있다.


Foundation


  • AppCompat : 하위버전 android 앱에서 최신버전 sdk 를 사용할 수 있게 도와줌
  • Android KTX : 코틀린 코드를 간결하게 만들어줌
  • Multidex : dex 관리의 고통에서 해방시켜줌
  • Test : android 테스트 관련 유틸

Architecture


  • DataBinding - xml layout 에서 코드레벨의 변수 및 함수와 binding 시켜줌
  • Lifecycles - activity 생명주기 관련
  • LiveData - 데이터가 변경되면 view 에게 알려줌
  • Navigation - activity 이동 경로를 지정해줌(iOS 의 navigationBar 느낌?)
  • Paging - 대량의 데이터를 표현할 때 딱 필요한 만큼의 데이터만 추려내어 보여줄 수 있게 도와줌. 
  • Room - OrmLite 처럼 database 를 DAO 형식으로 만들어서 쓰기 편하게 만들어줌
  • ViewModel - adapter 에서 사용되는 ViewModel 을 따로 만들 필요 없이 추상클래스로 정형화 해 놓음. LiveData 와 함께 사용하면 신세계일듯
  • WorkManager - background 작업을 쉽게 관리해줌

Behavior


  • Download manager - 파일 다운로드 시 크기가 큰 파일을 service 단에서 관리해줌
  • Media & playback - 미디어파일 재생 관련 
  • Notifications - notification 관련
  • Permissions - 권한 관련
  • Sharing - Actionbar 에서 데이터를 쉽게 공유 가능하게끔 도와줌
  • Slices - ListBuilder 로 만들어지는데 뭔가 layout template 을 제공하여 쉽게 데이터를 표시할 수 있게 해줌(아직 잘 모르겠음) 

UI


  • Animation & transitions - layout 위치 변경같은 애니메이션 효과를 쉽게 구현하게 도와줌
  • Auto - 화면크기나 플랫폼을 신경쓰지 않게 알아서 척척 준비해줘서 오로지 개발에만 집중할 수 있게 도와줌
  • Emoji - EmojiCompat 이 최신 이모티콘을 항상 사용할 수 있도록 해줌
  • Fragment - 프레그먼트
  • Layout - 레이아웃
  • Palette - 이미지에서 색상을 뽑아줌
  • TV - TV 관련
  • Wear OS by Google - 웨어러블 관련 SDK




이번에 처음 보는 라이브러리들은 색상으로 표시를 해놨다.
이렇게 좋은 기능들이 많았다니.. 그것도 그렇고 이번에 추가된 기능들이 정말 대박이다. 

예를 들면 LiveData 같은건 정말 필요했다. 매번 데이터 변경되면 UI 갱신해줘야 하는 일이 여간 귀찮은게 아니기 때문이다. 물론 observable pattern 으로 구현하면 되긴 하지만, 이것도 한계가 있다.

여기 있는 걸 다 적용하게 되면 기존 앱 제작 방식이 완전 달라지게 된다!
게다가 Kotlin 을 사용하면 코드량도 많이 줄어들 것 같다.

하나씩 천천히 정리해 가면서 익혀야겠다.

댓글

댓글 쓰기

이 블로그의 인기 게시물

[Android] Coordinatorlayout 배워보기 #1 - AppbarLayout

[Android] Android 3.2 업데이트 후 끊김현상 해결 방법

[Google Cloud Platform] 클라우드 플랫폼 생성하기