한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
Jetpack Compose 등을 이용한 Android 개발에 대한 모던한 접근 방식을 소개합니다
2019년 11월 6일 수요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는 노현석(Android GDE)님이 참여해 주셨습니다>
게시자: Stephanie Cuthbertson, 제품 관리 이사
오늘날의 모던한 Android 개발
Android의 유연성으로 인해 우리는 개발자들로부터 Android 팀에서는 앱을 만들 때 무엇을 추천하느냐는 질문을 종종 받게 됩니다. 여러분은 Android의 개방성을 좋아하지만 올바르게 일을 처리하는 방법에 관한 피드백을 함께 듣고 싶다는 말씀을 많이 주십니다. 그리고 올바른 방법인 동시에 가장 쉬운 방법이기도 합니다. 그래서 우리 Android 팀은 오늘
Android Dev Summit
에서 그 질문에 답하고 싶었습니다.
우리는 개발자에게 추천해 드리는 방법을 '모던 Android 개발'이라고 부릅니다. 빠르고 손쉬운 개발을 위한 강력한 방법입니다. 여러분의 속도를 늦추는 모든 것을 제거하고 오롯이 개발에 집중할 수 있도록 하는 방법입니다. 우리가 Android Studio와 Jetpack을 만들었을 때처럼, 어떤 부분에 집중 투자했는지를 살펴보면 그 점을 잘 아실 수 있을 것입니다. (현재 우리의 전문 개발자 중 90% 이상이 Android Studio를 사용 중입니다.) 특히 최근에는 Kotlin과 Compose가 훌륭한 본보기입니다. Kotlin은 모던하고 간결한 언어인데, 바로 개발자 여러분이 우리에게 요청한 언어이며 현재 Android에 권장하는 언어입니다. Compose는 향후 10년을 내다보고 구축한 모던한 선언형 UI Toolkit입니다. 조금 이상한 얘기로 들릴 수도 있겠지만, 우리는 이런 도구를 즐겁게 사용할 수 있도록 선택하고 디자인했습니다. 그 점 역시 중요하다고 생각하기 때문입니다. 또한 Kotlin과 Compose는 둘 다 결정적으로 중요한 특성을 갖고 있습니다. 즉, 둘 다 기존 앱과 호환되도록 설계되었다는 점입니다. 이는 Kotlin 코드와 Compose 뷰를
개발자의
일정에 맞춰 단계적으로 도입할 수 있다는 뜻입니다.
그 모든 것이 훌륭한 모던한 언어인 Kotlin과 함께 시작
최신 Android는 환상적인 언어 지원으로 시작됩니다. 사실, 최근에 상위 Android 앱 1,000개 중 거의 60%가 Kotlin을 사용하는 단계에 이르렀습니다. 우리는 JetBrains와 함께 협력하면서 Kotlin의 컴파일 속도 향상, KAPT를 이용한 증분 주석 처리, IDE 타이핑 지연 시간 개선, 더 많은 lint 검사, D8 및 R8의 desugaring, Kotlin의 특정 바이트코드 패턴을 인식하는 R8의 새로운 최적화 등 Kotlin의 개선에 더욱 박차를 가하고 있습니다. 우리는 오늘 Kotlin Build Script를 위한 IDE 지원을 발표합니다. 기술 실력을 키우고 싶으신 분을 위해,
Udacity에서 Kotlin을 이용한 고급 Android 과정
을 시작합니다. 또한 이미 전문가급에 속하는 분을 위해서는
Kotlin에서 Android 개발자 인증
과정을 새로 시작하며, 앞으로 3개월간 할인 혜택을 받으실 수 있습니다. 우리는 Java8 라이브러리 desugaring, 업데이트된 LLVM을 이용한
NDK r21
, GNU Make, 기본적으로 활성화되어 있는 Fortify 등으로 우리가 지원하는 모든 최고급 언어(Kotlin, Java 프로그래밍 언어, C++)가 개발자와 팀에 더 나은 언어가 되도록 노력하고 있습니다.
Jetpack: 더 적은 코드로 고품질의 강력한 앱 제작
Jetpack은 개발자가 매일 직면하는 실제 문제를 해결하기 위해 고안되었는데, 상위 10,000위 내에 드는 Play Store 앱 중 84% 이상에서 사용됩니다. 우리는 Jetpack이 훨씬 더 큰 도움이 되도록 계속 다음과 같이 노력하고 있습니다.
Benchmarking
은 Google I/O에서 처음 발표되었으며, 현재는 릴리스 후보로 제공되고 있습니다. 이 라이브러리를 사용하면 개발한 앱의 성능을 안심하고 손쉽게 측정할 수 있습니다.
Viewbinding
은 코드에서 Views에 더 쉽게 접근할 수 있는 방법입니다. 빌드 시간에 최소한의 영향만 미치고 더 이상 findViewById()와 주석 프로세서가 필요하지 않은 안전한 타입의 솔루션입니다.
CameraX
는 개발 환경을 간소화해 주며, 그 덕분에 CameraX 뒤에서 이미 통합 중인 삼성, Xiaomi, Oppo, Motorola, LG와 같은 Android 생태계 내의 수많은 기기 간의 차이를 해소함으로써 개발자는 개발 중인 앱에만 더욱 집중할 수 있습니다. Google I/O에서 프리뷰로 제공된 CameraX는 12월에 베타 버전으로 제공될 예정입니다.
Compose: 아름다운 네이티브 앱을 제작하기 위한 Android의 새로운 UI toolkit으로, 현재 개발자 프리뷰 단계 진행 중
Compose
를 사용하면 아름다운 네이티브 앱을 쉽게 만들 수 있습니다. Compose는 UI를 작성하는 선언적 방법을 제공하여 코드를 더욱 직관적이고 간결하게 만듭니다. 이 역시 Kotlin의 영향을 받아 기존 UI toolkit과의 완벽하게 호환되므로 개발자는 자신의 페이스에 맞춰 자연스럽게 Compose를 채택할 수 있습니다.
우리는 오늘 Jetpack Compose Developer Preview를 발표합니다.
Android Studio의 최신 Preview 빌드
를 다운로드하기만 하면 됩니다. Compose는 AOSP에서 완전히 공개적으로 개발되고 있습니다. 우리는 지속적인 개발자의 피드백을 통해 API가 수많이 개선되었으며, 우리의 개발자 스터디와 Kotlinlang Slack 그룹에서 좋은 피드백을 주셔서 감사합니다. 이제 개발자 프리뷰 단계에 들어서면서 내년에는 Jetpack Compose를 베타 버전으로 제공해 프로덕션 앱에 사용할 준비를 할 계획이므로 훨씬 더 많은 개발자의 피드백이 필요합니다.
Android Studio 4.0 Canary
우리는 오늘 Android Studio 4.0의 최초 Canary 버전도 발표했는데, 강력하고 통합된 도구 지원을 위해 Compose와 함께 만들었습니다. Android Studio 4.0은 Compose Live Preview, 코드 완성 그리고 Compose 앱의 전체 샘플을 포함합니다. 또한 새로운 Motion Editor, 자바 8 언어 라이브러리 desugaring, KTS 파일의 완벽한 지원, Kotlin 라이브 템플릿 등을 확인할 수 있습니다.
Android App Bundle과 Dynamic Delivery 테스트 개선 사항
출시 후 불과 18개월 만에 27만 개 이상의
Android App Bundle
이 프로덕션 단계에 있으며, 이는 활성 상태의 모든 설치 건수의 25%를 차지합니다. 개발자의 피드백을 바탕으로, 우리는 App Bundle과 Dynamic Delivery를 훨씬 쉽게 테스트할 수 있도록 만들고 있습니다.
APK 내부 공유
를 통해 APK를 공유하는 것처럼 쉽게 App Bundle의 테스트 빌드를 공유할 수 있습니다. 이제는 팀의 모든 사람에게 아티팩트를 업로드할 수 있는 권한을 줄 수 있습니다. 프로덕션 앱 서명 키로 테스트 버전을 서명할 필요가 없고, 버전 코드를 사용할 필요가 없으며, 디버그 가능한 아티팩트를 업로드할 수 있습니다. 우리는 또한 App Bundle이든 APK이든 상관없이 Play Console에서 이전 버전의 앱에 대한 다운로드 링크를 얻을 수 있도록 만들고 있습니다. 그리고 오늘부터 우리는 로컬에서 테스트하는 동안 Play Store에 의해 설치되는 분할 설치를 복제할 수 있도록
FakeSplitInstallManager
로 Dynamic Delivery의 오프라인 테스트를 시작합니다.
사용자 신뢰를 중심으로 한 모던 분산 플랫폼
Google Play에서는 사용자 신뢰와 안전이 항상 최우선 사항이었습니다. 사람이 직접 이런 사항을 살펴보고, 안전하게 보호받으며 플레이를 즐길 수 있도록 끊임없이 개선하고, 우리가 목격하는 위협에 대비해 계속 정책을 업데이트해왔습니다. 따라서 Google Play에서 설치한 앱은 다른 어떤 소스에서 설치한 앱보다도 안전합니다. 우리는 올해 사칭, 리패키징, 불량 콘텐츠 및 다른 형태의 남용에 대한 모든 감지 능력을 계속 키워왔지만, 우리가 할 수 있는 일이 더 많이 있다는 점과 위협이 끊임없이 변화하고 있다는 점을 잘 알고 있습니다. 여러분의 도움으로 민감한 데이터에 대한 접근을 줄이고 Play를
어린이와 가족을 위해 훨씬 더 안전한 공간
으로 만들었습니다. SMS/통화 기록 권한이 핵심 기능의 일부로서 꼭 필요한 앱에만 주어지도록 제한했으며, 그 결과 이 민감한 데이터에 접근하는 앱의 수가 98%나 줄었습니다. 여러분의 노고 덕분에 사용자는 더 안전해졌고, 더 적은 권한을 요청하는 앱을 다운로드할 때 더 안전하다는 점을
알고 있습니다
.
Android Developer Challenge!
우리는 10여 년 전에 최초의 Android Developer Challenge를 발표했습니다. 오늘날 모던 Android가 차세대 플랫폼의 모습을 만들어가고 있습니다. 그래서
Android Developer Challenge가 다시 돌아왔습니다
! 우리가 발표할 첫 번째 Developer Challenge는 '유용한 혁신과 머신러닝'입니다. 청각 장애가 있는 약 5억 명의 사람을 위해
Live Captions
를 선택하세요. Live Captions는 이런 사람들이 생활 속에서 다채로운 콘텐츠에 더 쉽게 접근할 수 있게 해주며, 훗날 언젠가 더 많은 사례를 보게 되기를 기대하는 종류의 머신러닝을 통한 혁신이며, 여러분의 도움으로 훗날이 아닌 오늘 바로 그런 혁신을 실현할 수 있습니다. 이 도전에 관한 자세한 내용은
여기
에서 읽어보실 수 있습니다.
지금까지 모던 Android와 개발자 환경의 전망에 대해 간략히 살펴봤습니다. Android Dev Summit에
직접
참석하든
라이브스트림
을 함께하든 상관없이, 100여 명의 연사가 60개에 가까운 세션을 진행할 예정이며 이 행사에서 개발자 여러분이 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