Android Jetpack을 알아보자

312·2024년 5월 19일

Android 알아보기

목록 보기
1/7

Android에서는 개발을 돕는 다양한 종류의 라이브러리가 존재한다.
이번에는 Android에서 공식적으로 제공하는 Jetpack이라는 라이브러리 묶음에 대해 알아보겠다.

Jetpack이란?

Jetpack은 Google이 공식적으로 제공하는 라이브러리의 묶음이다.
개발자가 Jetpack을 타고 날아다니는 것처럼 편리하게 개발할 수 있어서 붙여진 별명이라고 한다.

왜 Jetpack을 사용해야 할까?


(호환성, 상용코드 제거, 파편화 제거)

먼저 보편적인 개발 환경을 제공한다는 장점이 있다.
다양한 Jetpack의 라이브러리들끼리 높은 호환성을 바탕으로 설계되어있어 고려할 사항이 줄어든다.
그리고 라이브러리들을 공통으로 사용함으로서, 자연스럽게 러닝커브가 낮아지게 되고 작성해야할 보일러플레이트 코드가 줄어드는 효과도 얻을 수 있다.
마지막으로, 구글의 공식 지원을 통해 항상 최신화를 유지하는 것도 이유다..!

Jetpack에는 어떤 라이브러리가 있을까?

정말 많은 라이브러리가 존재하기 때문에, 유명하고 일반적으로 많이 쓰이는 라이브러리들을 열거해보겠다.

  • Navigation

앱 내의 화면 전환 및 백스택 관리를 위한 라이브러리이다.
Navitgation을 활용해 단일 액티비티로 개발하기도 한다.

  • Room

SQLite 데이터베이스를 이용해 로컬에서 DB를 이용하게 해주는 라이브러리다.
SQL 쿼리 작성 관련 코드를 인식하며, 컴파일 타임에 쿼리를 검증한다.

  • LiveData

관찰 가능한 데이터 홀더 클래스로, 데이터 변경 시 자동으로 UI를 업데이트할 수 있다. Observer 패턴 적용에 용이한다. 최근에는 StateFlow를 사용하기도 한다.

  • ViewModel

UI 관련 데이터를 저장하고 관리하는 클래스다. 데이터의 생명주기를 액티비티나 프래그먼트와 공유하거나 관리하기 용이하게 LiveData와 함께 운용한다.

  • WorkManager

백그라운드 작업을 쉽게 관리할 수 있는 라이브러리다. 네트워크 상태나 기기 충전 상태 등 조건에 따라 작업을 실행할 수 있다.

  • Data Binding

XML 레이아웃과 데이터 소스를 연결하여 UI 컴포넌트와 데이터의 동기화를 자동으로 처리할 수 있다. ViewBinding을 사용하기도 한다.

  • Paging

대량의 데이터를 페이지 단위로 로드하여 효율적으로 표시할 수 있게 해주는 라이브러리다.

  • Lifecycle

액티비티와 프래그먼트의 생명주기를 쉽게 관리할 수 있는 라이브러리다.
액티비티, 프래그먼트의 생명주기 이벤트를 관찰 및 인식하고 이벤트를 작성할 수 있다.

  • CameraX

안드로이드의 카메라 기능을 쉽게 사용할 수 있게 해주는 라이브러리다.
카메라 기능과 관련된 동작과 다양한 카메라 기능을 지원해준다.

  • Hilt

의존성 주입을 쉽게 구현할 수 있도록 도와주는 라이브러리다. Java의 Dagger를 기반으로 개발되었다.
의존성 관리 간소화, 구성 요소의 생명주기와 통합, 모듈 선언 간소화등의 기존 기능을 kotlin에서 더 편리하게 실행해준다.

  • Security

보안 기능을 쉽게 구현할 수 있도록 도와주는 라이브러리다.
안전한 데이터 저장, 암호화, 키 관리를 가능하게 해준다.

  • Compose

기존 xml로 작성하던 UI를 선언형과 함수형 프로그램을 통해 제공한다.

이외에도 다양한 종류의 라이브러리가 Jetpack 내부에 내장되어있다!

Jetpack을 되짚어보며 몰랐던 라이브러리도 있었고 너무 기초적인 라이브러리라 안드로이드 내장 함수라고 생각했던 라이브러리도 있었다.
구글에서 공식적으로 지원하고 홍보하는만큼 신뢰성있으니 꾸준히 배워야겠다고 생각했다..!

profile
안드로이드 개발자 이상일입니다.

0개의 댓글