한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
Jetpack을 통해 더 빠른 앱 개발
2018년 5월 12일 토요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는
정승욱(Android GDE)
님이 참여해 주셨습니다>
게시자: Chris Sells,
Benjamin Poiesz, Karen Ng, 제품 관리, Android Developer Tools
더 빠른 Android 앱 개발을 위해
하기 위한 차세대 컴포넌트, 도구 및 아키텍처 지침인 Android Jetpack을 소개합니다.
Android Jetpack은 새로운 Android 기능을 쉽게 활용하면서도 이전 버전과의 호환성을 유지하도록 해주는 컴포넌트 세트인 지원 라이브러리로부터 영감을 받았으며,
현재 Play Store 앱의 99% 가 사용하고 있습니다.
이러한 성공에 뒤이어 저희는 앱 수명 주기의 변화와 복잡성에도 불구하고 데이터를 더욱 쉽게 처리할 수 있도록 설계된
아키텍처 컴포넌트
를 소개했습니다. 겨우 1년 전에 I/O에서 이러한 컴포넌트가 소개된 후로 수많은 분들이 적용해 주셨습니다. LinkedIn, Zillow, iHeartRadio 등의 회사에서 버그 수가 더 줄었고,
더 많이 테스트할 수 있게 되었으며
, 멋진 앱을 만드는 데 시간을 더 집중할 수 있었습니다.
Android 개발자 커뮤니티는 명확했습니다. 개발자는 저희가 작업했던 기존의 컴포넌트를 좋아할 뿐만 아니라 더 많은 컴포넌트를 원한다는 것을 알게 되었습니다! 그래서 여러분에게 더 많은 것을 제공하는 것입니다.
Android Jetpack이란?
Android Jetpack은 멋진 Android 앱을 만들기 위한 컴포넌트, 도구 및 지침 세트입니다. Android Jetpack은 기존의 지원 라이브러리와 아키텍처 컴포넌트를 하나로 모아서, 다음과 같은 네 가지 범주로 배열합니다.
Android Jetpack은 기본 Android 플랫폼에 속하지 않는 "별도의" 라이브러리로서 제공됩니다. 즉, 여러분이 원하는 속도와 원하는 때에 각 컴포넌트를 채택할 수 있습니다. 새로운 Android Jetpack 기능이 나올 경우 이 기능을 자신의 앱에 추가하고, Play 스토어에 배포하고, 새로운 기능을 사용자에게 제공할 수 있으며, 이 모든 과정을 단 하루만에 수행할 수 있습니다! 개별로 제공되던 Android Jetpack 라이브러리는 모두 새로운 androidx.* 네임스페이스로 이동되었습니다(
이 게시물
에 자세히 설명).
또한 Android Jetpack은 특정 버전에 관계없이 기능을 제공하도록 빌드되고 이전 버전과의 호환성을 제공하기 때문에, 다양한 버전의 플랫폼에서 앱을 실행할 수 있습니다.
게다가 Android Jetpack은 Kotlin 통합과 같은 생산성 기능뿐만 아니라 관심사와 테스트 가능성의 분리와 같은 현대적인 디자인 관행을 기반으로 빌드됩니다. 이렇게 하면 강력한 성능의 고품질 앱을 더 적은 코드로 훨씬 더 쉽게 빌드할 수 있습니다. Android Jetpack의 컴포넌트는 함께 작동하도록 빌드됩니다. 예를 들어, 수명 주기 인식 및 라이브 데이터의 경우 이 모두를 사용할 필요가 없으며, 문제를 해결하는 Android Jetpack의 부분들만 통합하고, 이미 잘 작동 중인 앱 부분들은 그대로 유지할 수 있습니다.
아래와 같은 피드백 때문에 이러한 혜택이 여러분에게 중요하다는 사실을 알고 있습니다.
"저희는 저희 코드 베이스에서 MVVM을 적용해볼 생각이었으며, Android 아키텍처 컴포넌트는 그 구현을 위한 쉬운 템플릿을 제공했습니다. 또한 코드의 테스트 가능성이 더욱 좋아졌고, ViewModel을 유닛 테스트하는 기능 덕분에 코드의 견고성이 확실히 향상되었습니다."
-- Sumiran Pradhan, 선임 엔지니어,
Zillow
회사들이 Android Jetpack 컴포넌트를 어떻게 사용 중인지 자세히 알아보려면, Android 개발자 사이트에서
개발자 스토리
를 읽어보세요.
마지막으로, 위의 Android Jetpack 다이어그램에서 볼 수 있듯이 오늘 저희는 새로운 컴포넌트도 함께 발표합니다.
새 소식
Android Jetpack에는 다섯 가지 새로운 컴포넌트가 제공됩니다.
WorkManager 알파 릴리스
Navigation 알파 릴리스
Paging 안정적 릴리스
Slices 알파 릴리스
Android KTX(확장 프로그램) 알파 릴리스
WorkManager
WorkMananager는 제약 조건 기반의 백그라운드 작업(실행 보장이 필요한 작업)을 위한 원스톱 솔루션을 제공하는 강력한 성능의 새로운 라이브러리이며, 작업 또는 SyncAdapter 등을 사용할 필요가 없습니다. WorkManager는 단순화된 최신 API를 제공하며, Google Play 서비스가 있든 없든 상관없이 기기에서 작업하는 기능, 작업 순서를 생성하는 기능 그리고 작업 상태를 쿼리하는 기능을 제공합니다. 초기 피드백은 매우 고무적이지만 여러분의 사용 사례도 함께 다루고자 합니다.
WorkManager
에서는 지금까지의 내용을 확인할 수 있고 알파 릴리스에 대한 피드백을 보낼 수 있습니다.
Navigation
액티비티는 시스템에 앱의 UI에 대한 진입점을 제공하는 반면, 서로 간에 데이터를 공유할 때 유연성이 부족하므로 전환은 인앱 탐색을 구성하기에 이상적인 아키텍처가 아닙니다. 오늘 저희는 인앱 UI를 구성하기 위한 프레임워크로서 Navigation 컴포넌트를 발표했으며,
단일 액티비티 앱에 적용할 수 있는 아키텍쳐를 만드는데 초점을 맞췄습니다.
바로 사용할 수 있는 Fragment 지원을 통해 아키텍처 컴포넌트의 모든 이점(예: 수명 주기 및 ViewModel)을 누릴 수 있으며 Navigation이 FragmentTransactions의 복잡성을 자동으로 처리해 줍니다. 또한 Navigation 컴포넌트는 자동으로 처리되는 전환을 개발자가 선언할 수 있고, 올바른 Up 및 Back 동작을 자동으로 빌드하고, 딥 링크의 완벽한 지원을 포함하고, 적절한 UI 위젯(예: 탐색 창 및 하단 탐색)에 Navigation을 연결하기 위한 도우미를 제공합니다. 그러나 이게 전부가 아닙니다.
Android Studio 3.2
의 Navigation Editor를 사용하여 다음과 같이 탐색 속성을 시각적으로 확인하고 관리할 수 있습니다.
Navigation 컴포넌트
도 알파 버전이며 여러분의 피드백을 환영합니다.
Paging
앱에 표시되는 데이터가 대용량이고 로드 시간이 오래 걸릴 수 있으므로, 너무 많은 데이터를 한꺼번에 다운로드하거나 생성하거나 표시하는 것을 피하는 것이 중요합니다.
Paging 컴포넌트
버전 1.0.0에서는 RecyclerView의 빠른 무한 스크롤을 통해 대용량의 데이터 세트를 쉽게 로드하고 표시할 수 있습니다. 또한 페이징된 데이터를 로컬 저장소, 네트워크 또는 둘 모두로부터 로드할 수 있으며, 콘텐츠가 로드되는 방법을 정의할 수 있습니다. 이 컴포넌트는 Room, LiveData 및 RxJava에서 바로 사용할 수 있습니다.
Slices
끝으로, Android Jetpack에 처음 선보이는 새로운 기능 세트인 Slices 컴포넌트입니다. "슬라이스"는 여러분의 앱 UI를 Google 어시스턴트 내에 검색 결과로 표시하는 방법입니다.
Android 개발자 웹사이트에서
Slices 컴포넌트에 대한 모든 정보
와 이 컴포넌트를 자신의 앱에 통합하는 방법을 배울 수 있습니다.
Android KTX
마지막으로, Android Jetpack의 목표 중 하나는 생산성을 더욱 높여주는 Kotlin 언어 기능을 활용하는 것입니다. Android KTX에서는 다음과 같은 Kotlin 코드를
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
});
보다 간결한 다음과 같은 Kotlin 코드로 변환할 수 있습니다.
view.doOnPreDraw { actionToBeTriggered() }
이것은 Kotlin 지원을 Android Jetpack 컴포넌트에 제공하기 위한 첫 단계에 불과하며, 저희의 목표는 Kotlin 개발자를 위해 Android Jetpack을 멋지게 만드는 것입니다(물론 Java 개발자도 함께!). Android 개발자 웹사이트에서
Android KTX에 대해 자세히 알아보세요
.
시작하기
developer.android.com/jetpack
에서 Android Jetpack을 시작할 수 있습니다. Android Jetpack용 문서와 동영상을 찾아보시고 Android Jetpack 컴포넌트의 새로운 기능에 대해 알아보세요. 또한 커뮤니티에 참여하여 저희에게 피드백을 보내주세요. 또한 저희가 만든
Android Jetpack 전용의 YouTube 재생목록
에서 Android Jetpack, 컴포넌트, 도구 및 모범 사례에 대한 정보를 찾아볼 수 있습니다.
Android Jetpack 시작하기
에서는 Android Jetpack 컴포넌트를 기존 앱으로 가져오는 방법에 대해 알려주며, 새로운 Android Jetpack 앱을 시작하도록 도와줍니다. Android Studio 3.2에는 Android Jetpack을 위한 훌륭한 도구 지원이 있습니다. 새로운 앱을 빌드할 경우, Activity & Fragment+ViewData 액티비티를 사용하세요. 이 액티비티는 Android Studio의 File | New | New Project에서 찾을 수 있습니다.
다음 단계
Android Jetpack으로 저희는 지원 라이브러리와 아키텍처 컴포넌트의 이점을 활용하고 있으며 새로운 컴포넌트, Android Studio 통합 및 Kotlin 지원을 통해 한 단계 더 발전시키고 있습니다. Android Jetpack은
더 빠른 Android 개발을
위한 차세대 컴포넌트, 도구 및 지침을 제공하지만, 저희는 훨씬 더 많은 일들을 하고 싶고 그러려면 여러분의 도움이 필요합니다.
developer.android.com/jetpack
으로 가서 더 나은 Android 앱 빌드 환경을 만들기 위해 저희가 무엇을 할 수 있는지 알려주세요.
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed