작성자: Manuel Vivo (Developer Programs Engineer)
이 글의 원문은 여기서 확인하실 수 있으며, 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다.
Google I/O 2021 - 스페셜 에디션
Android 개발 분야의 새롭고 눈에 띄는 소식을 계속 안내해드리는 'Now in Android '에 오신 걸 환영합니다. 이번 에피소드는 Manuel Vicente Vivo와 Daniel Galpin이 진행합니다.
아직 보지 않으신 분은 Google 기조연설, 개발자 기조연설, Android의 새로운 기능 세션을 꼭 챙겨 보세요. 생기 넘치는 물결 효과와 스트레치 오버스크롤을 포함한 Android 12 베타 1 업데이트, 7월에 안정화 버전으로 나올 예정인 Jetpack Compose 1.0, Material You 발표, 베타 단계에 이른 Android Studio Arctic Fox, Android 전문 개발자가 가장 많이 사용하는 언어인 Kotlin(상위 1,000개 앱 중 80%에서 사용)에 관한 모든 정보를 확인하실 수 있습니다. 또는 상위 10,000개 앱 중 84% 이상에서 현재 Jetpack 라이브러리를 사용 중이라는 사실도 알 수 있죠.
아직 보지 않으셨다면 지금 바로 확인해보세요. 기다리고 있겠습니다.
자, 확인해보셨나요? 흥미롭지 않으신가요? 그 외에도 I/O 세션에서 여러분이 놓쳤을지도 모를 몇 가지 뉴스를 소개해 드리겠습니다.
Jetpack! 🚀
Jetpack의 새로운 기능 세션과 블로그 게시물의 핵심 요약: CameraX, Hilt, Paging 3, ConstraintLayout, MotionLayout, Security crypto, Fragment 라이브러리가 안정화 버전으로 출시되었습니다! DataStore와 Compose는 현재 베타 버전입니다. 그리고 Jetpack에 새로 도입되는 라이브러리도 있습니다.
AppSearch는 새로운 온디바이스 검색 라이브러리로, 높은 성능과 다양한 기능을 갖춘 전체 텍스트 검색 기능을 제공합니다.
Macrobenchmark는 Jetpack의 벤치마킹 범위를 스크롤 성능(scrolling performance) 등의 앱 시작 및 통합 동작까지 확장합니다. 이 API를 사용하면 최악 또는 최선의 사례와 같은 컴파일 모드와 핫, 웜 또는 콜드와 같은 시작 모드에 따라 측정항목을 확인할 수 있습니다. 자세한 내용은 Macrobenchmark로 버벅거림 및 스타트업 측정 세션을 확인해 보세요.
또한, 현재 알파 버전으로 새로 나온 WorkManager 2.7은 Android S SDK를 타겟으로 하며 플랫폼의 새로운 포그라운드 제한 사항에 대한 추가 지원을 제공합니다. Android의 효과적인 백그라운드 작업 세션에서 자세한 내용을 확인하세요.
아, 깜빡 잊을 뻔했네요! Navigation 라이브러리를 사용한다면 최신 알파 버전의 다중 백스택 지원(Multiple backstacks support)을 꼭 확인해 보세요!
Jetpack Compose
많은 분들께서 이번 7월에 Jetpack Compose의 안정화 버전인 1.0이 나온다는 소식에 매우 기대하고 있습니다. 하지만 Compose를 채택할 때 원하지 않는다면 앱 아키텍처를 변경할 필요가 없다는 사실을 알고 계신가요? 이에 관해 더 알아보고 싶다면 Compose에서 Jetpack 라이브러리 사용 세션을 확인해 보세요. Compose는 Navigation, Kotlin Flow, Hilt 등 가장 인기있는 라이브러리와 통합되어 제공됩니다!
Compose는 머티리얼 디자인의 구현도 제공합니다. Compose가 제공하는 기능을 활용하려면 Jetpack Compose로 아름다운 머티리얼 디자인 앱 제작 세션을 확인해 보세요.
담당 팀에서는 Compose Navigation과 Compose Testing이라는 두 코드랩도 새로 선보였습니다. Compose 학습에 관심이 있다면 저희가 마련한 학습 경로를 살펴보세요. 또, 워크샵 영상을 통해 Compose로 앱을 처음 만들 때 필요한 기초 사항을 확인하실 수 있습니다.
Android 12 베타 1 📱
Android 12의 첫 번째 베타 버전은 Android 5.0에서 머티리얼 디자인을 도입한 이후 가장 큰 규모의 디자인 변경이 포함되어 있습니다. 시스템의 테마를 사용해 위젯에 적용할 수 있는 동적 색상(dynamic colors)을 비롯해 앱 위젯의 작동 방식 및 모습이 크게 새 단장을 거쳐 선보입니다. 자세한 내용은 '위젯 새로고침(Refreshing Widgets)' I/O 세션을 들어보세요. 단일 스크롤 컨테이너에만 적용되는 새로운 시스템 전체의 스트레치 오버스크롤 효과를 사용한 앱의 동작 방식도 확인하실 수 있습니다.
Android 12에서 Bluetooth 기기를 스캔하는 앱은 neverForLocation 속성이 있는 새로운 BLUETOOTH_SCAN 권한이 있으면, 더 이상 위치 권한을 가지고 있을 필요가 없습니다. 이를 통해 앱 마찰과 LOCATION 권한이 필요한 앱 개수를 모두 줄일 수 있습니다.
위치와 관련해서는, 이제 여러분이 FINE_LOCATION 권한을 요청하더라도 사용자는 대략적인 위치만 앱에 제공하도록 선택할 수 있습니다.
저희는 사용자가 볼 수 있는 개인정보 보호 대시보드, 새로운 마이크 및 카메라 표시기와 전환 기능, 클립보드 읽기 알림을 비롯해, 베타 2에 포함될 여러 새로운 개인정보 보호 기능을 미리 발표했습니다. Android 12의 모든 개인정보 보호 관련 변경 사항에 대한 자세한 내용은 '개인정보 보호에 관한 새로운 사항' I/O 세션을 확인해 보세요.
베타 버전은 또한 현재 미디어 기능에 초점을 맞춘 더 까다로운 사용 사례와 고품질 콘텐츠를 지원하는 기기를 위한 기능인 성능 클래스도 도입했습니다.
에뮬레이터, Pixel 3 이상의 기기 그리고 다양한 기기 파트너가 제공하는 일부 기기에서 Android 12 베타를 테스트할 수 있습니다.
Android Studio의 도구 지원 ❄️🦊
Android Studio Arctic Fox에는 새로운 기능이 대량 추가되었고 현재 베타 채널에서 이용할 수 있습니다! Compose 지원, Compose 개발 가속화를 위한 훌륭한 도구, Compose용 Layout Inspector 지원, 내장형 접근성 스캐너가 함께 제공됩니다! 또한 폴더블 에뮬레이터, Android TV용 리모컨, Wear OS용 페어링 마법사 등 지원되는 기기가 계속 늘어나고 있습니다. Android Studio 팀은 개발자 생산성 향상도 지향하므로 Background Tasks inspector, Kotlin 코루틴 디버거, Kotlin Symbol Processing 지원을 추가했습니다.
Android 개발 도구의 새로운 기능 세션에서 이 모든 기능이 실제 작동하는 모습을 살펴보세요
ConstraintLayout 및 MotionLayout 개선 사항에 관해 보다 심층적인 정보와 Android Studio에서 사용 가능한 Compose 도구는 디자인 도구의 새로운 기능 세션에서 확인해 보세요.
Kotlin 🌐
Android 개발자 커뮤니티에서는 무척 활발하게 Kotlin을 채택하고 있습니다. 저희뿐 아니라 커뮤니티의 모든 이가 Kotlin을 좋아합니다! Kotlin 현황 세션에서 언급할만한 몇 가지 새로운 사항은 Kotlin Symbol Processing과 UI 레이어에서 흐름을 수집하는 새로운 수명 주기 API입니다.
KSP(Kotlin Symbol Processing)는 빌드 속도를 높이고 기호 처리를 Kotlin 생태계의 최고 기능으로 만드는 것을 목표로 합니다. 더 이상 KAPT를 통한 Java 스텁 생성과 이와 관련된 긴 빌드 시간과 같은 문제가 없습니다. KSP는 Kotlin 컴파일러와 통합되며 모든 Kotlin 기호에 대한 액세스를 제공합니다. 가장 좋은 점은 뭘까요? KSP가 이제 베타 상태에 도달했다는 것으로, 이는 곧 KSP의 API 표면이 완성되었다는 뜻입니다. 저희 팀에서는 현재 KAPT를 사용 중인 플러그인 작성자가 KSP로의 마이그레이션을 시작할 것을 권장합니다. 저희 Jetpack Room 라이브러리는 베타 버전에서 KSP를 지원하며, KAPT를 통해 확인한 것보다 KSP로 2배 더 빠른 처리 속도를 보이고 있습니다. KSP는 최근에 ADB 팟 캐스트에 소개되었으니 자세히 알고 싶은 분들은 들어보시길 권해드립니다.
lifecycle-runtime-ktx 라이브러리의 최신 버전에는 수명 주기를 인식하는 repeatOnLifecycle API가 포함됩니다. API는 수명 주기가 특정 상태에 도달하거나 그 미만으로 떨어질 때 코드 블록을 취소하고 다시 시작하는 작업을 담당합니다. 이는 실행을 일시 중지하고 View가 백그라운드에 있을 때 업스트림 흐름을 활성 상태로 유지하는 launchWhenStarted API와는 다르게 작동합니다. 새로운 API는 특정 상황에서 리소스를 낭비하지 않으므로 앱의 효율성을 높이는 데 도움이 됩니다.
이런 API 덕분에, 앱의 모든 계층에서 Android의 Flow를 사용하는 스토리가 완성됩니다. LiveData에서 Kotlin Flow로 마이그레이션 블로그 게시물에서 자세한 내용을 확인할 수 있습니다.
대형 화면! Wear OS! Android TV! 🖥⌚️
저희 팀은 Chrome OS 기기, 폴더블과 같은 대형 화면 기기를 더 쉽게 타겟팅할 수 있게 해주는 기능, 목록/세부 정보 뷰의 구현을 단순화하는 업데이트된 접기 인식 SlidingPaneLayout, 가로 대형 화면을 위한 수직 navigation rail 구성요소, 일반적으로 과도하게 스트레치되는 Material 구성 요소(예: Button, TextField, Sheet)에 대한 최대 너비 값 및 새로운 가이드를 비롯해 다수 발표했습니다. 자세한 내용은 이 세션을 확인해 보세요.
다음 버전의 Wear가 나올 예정이므로, 미리보기 에뮬레이터 시스템 이미지, Android Studio 내에서 Wear 에뮬레이터를 다른 기기에 간편하게 페어링하기 위한 페어링 도우미, 가상 심박수 센서 등 새로운 도구가 준비되어 있습니다. Ongoing Activities API와 Tile은 사용자가 앱과 더욱 다양한 방법으로 상호 작용할 수 있게 해주는데, 삼성과의 협업을 통해 만든 이 새로운 건강 서비스 플랫폼은 알파 버전에서 통합할 수 있습니다. 또한, 곡선형 텍스트, 시계 모드, 정보 표시, 원격 상호 작용처럼, Wear용 빌드를 단순화하기 위한 새로운 Jetpack API가 있습니다. 이에 대한 더 자세한 설명은 'Wear의 새로운 기능'에서 확인하세요.
Android TV와 관련해서는 Cast Connect는 이제 스트림 전송 및 확장 기능이 있고, Android 11을 실행하는 새로운 에뮬레이터가 있으며, ADT-3 기기에서 Android 12 베타 1도 사용할 수 있습니다. 실제로 사용 중인 8,000만여 대의 TV 기기에서 실행되는 Android에 대해 자세히 알아보려면 'Android TV 및 Google TV의 새로운 기능' 세션을 확인해 보세요.
온디바이스 머신러닝🤖
저희는 Android가 업데이트 가능하고 완전히 통합된 ML 추론 스택을 사용한다고 발표한 바 있습니다. 이제 Google Play 서비스를 사용해 Android용 TFLite(TensorFlow Lite)와 NNAPI(Neural Networks API)를 제공하므로, 앱에서 새 APK를 게시할 필요 없이 APK 크기를 줄이고 더 새롭고 높은 성능의 버전을 활용할 수 있습니다.
TFLite, NNAPI, 관련 칩셋 드라이버는 플랫폼 버전과는 무관하게 업데이트되므로, Android 생태계 전반에 걸쳐 더욱 일관된 드라이버와 API가 있어야 합니다. TFLite 2.3에는 GPU 또는 가속기에서 실행하면 모델의 성능을 향상할 가능성이 있는 위치를 파악하는 데 도움이 되는 호환성 목록도 추가되었습니다.
저희는 모델에서 제공하는 메타데이터와 함께 해당 목록을 사용하여 CPU, GPU 또는 다른 가속된 백엔드에서 실행할지 여부를 결정하는 자동 가속(Automatic Acceleration)을 발표했습니다. Android에서 온디바이스 ML의 모든 새로운 기능에 대한 자세한 내용은 'Android 머신러닝의 새로운 기능' 세션에서 확인해 보세요.
테스트 🧪
과거에는 테스트가 CI 서버에서 통과했지만 Android Studio에서는 로컬 수준에서 실패하거나, 혹은 그 반대의 경우를 보셨을 수도 있습니다. 이러한 상황은 테스트에 대한 자신감을 잃게 만들고, 또한 생산성에도 영향을 미칩니다. Android Studio와 Android Gradle 플러그인이 다양한 버전의 Android 계측 테스트 실행기를 구현하는 것이 그 이유 중 하나였습니다. Android Studio Arctic Fox에서는 Android Studio의 모든 테스트가 Android Gradle 플러그인을 통해 실행되므로 일관된 동작이 나타납니다.
Nitrogen? Nitrogen 프로젝트에 무슨 일이 일어나고 있을까요? 그동안 이 질문을 수없이 받았습니다. 더 이상 Nitrogen이 문제가 아니라, 이제는 Android Studio와 Android Gradle 플러그인에서 적절한 규모로 Android 테스트를 실행하기 위해 확장 가능한 테스트 실행기인 UTP(Unified Test Platform)에 관심을 가져야 할 때입니다.
UTP에서 사용하는 기능 중 하나는 Gradle DSL을 사용하여 기기를 정의할 수 있게 해주는 Gradle 관리형 가상 기기입니다. 또 다른 기능은 여러 기기에서 테스트를 병렬로 실행하여 테스트 실행의 확장성을 향상할 수 있는 기능입니다. 마지막으로, 나중에 상태를 복원하고 잘못된 점을 확인할 수 있도록 테스트 실패에 대한 에뮬레이터 스냅샷을 얻을 수 있습니다.
Android 테스트 도구의 새로운 기능 세션에서 테스트에 대해 자세히 알아보세요.
게임 개발 🎮
I/O에서는 게임 개발자를 위한 내용을 많이 다루지 않았는데, 이는 7월 12~13일(한국 시간으로 13~14일)에 진행되는 온라인 Google for Games Developer Summit이 예정되어 있기 때문입니다. 지금 무료로 등록하시고 I/O에서 다루지 않은 게임 개발 관련, 최신 기술과 지식을 만나보세요!
Google Play 🏪
저희는 지난 수 년에 걸쳐 정책, 정책 변경 사항, 정책 위반 시의 조치 사항에 관한 질문을 굉장히 많이 받아왔는데요, 이제 Play Console에 정책 및 시행 정보를 한 곳에 정리한 새로운 정책 및 프로그램 섹션을 마련하게 되었습니다.
Google Play에는 SDK 제공자가 미준수 또는 오래된 SDK 버전과 같은 문제를 신고할 수 있는 새로운 SDK 콘솔도 있습니다. Android Gradle 플러그인 4.0 이상은 AppBundle을 사용해 게시하는 경우 앱에 종속 항목이 있는 SDK가 어떤 것인지 자동으로 보고할 수 있으며, 이를 통해 Play에서 SDK 업데이트 권장 시 개발자에게 알림을 발송하는 등의 조치를 취할 수 있습니다. 올해 안에 Play에서는 앱에 적합한 SDK 선택에 도움이 되는 새로운 웹사이트도 마련할 예정입니다.
Play Billing 4.0 라이브러리 출시를 통해 단일 구독으로 여러 제품을 묶어서 사용할 수 있는 다중 수량 구매 및 다중 라인 구독과 같은 새로운 기능을 지원합니다. 기존 결제 지원 앱을 업데이트하려면 올해 11월 1일부터는 최소한 이전의 Play 결제 3.0 라이브러리가 필요하지만, 새 앱은 8월 2일까지 Play 결제 3.0 이상으로 옮겨야 합니다.
ADB 팟캐스트 에피소드 🎧
지난번 'Now in Android ' 이후로 Android 개발자 백스테이지 에피소드 두 편이 게시되었습니다.
ADB는 전체 ADB 팀이 Android 그래픽팀의 Nat Duca, Sumir Kataria와 함께 셰이더, GPU, Vulkan, OpenGL, ANGLE, 드라이버, 블러, 픽셀 그리고 당연히 Chet가 가장 좋아하는 주제인 색상과 같은 주제로 대화를 나눈 에피소드 #163을 공개했습니다.
에피소드 164는 Jetpack Compose의 새로운 미니 시리즈 'AD/BC' 중 첫 번째 에피소드로, Android의 향후 UI 도구 키트에서 다양한 주제를 심층적으로 다룹니다. 이번에 Nick과 Chet는 Adam Powell, Leland Richardson과 함께 Compose 컴파일러, 런타임, 데이터 흐름 그리고 Compose가 데이터 상태의 변화를 기준으로 Composable을 호출할 시점을 아는 멋진 기능에 관해 대화를 나눴습니다.
자, 이제… 👋
아쉽지만 오늘은 여기까지 하죠. 올해 Google I/O에서 즐거운 시간 보내셨기를 바랍니다. Jetpack, Android 12 및 개인정보 보호, 도구, Kotlin, 대형 화면, Wear OS, Android TV, 온디바이스 머신러닝, 테스트, 게임 개발, Google Play에 대한 훌륭한 업데이트가 많습니다. 그래픽 및 Compose 팟캐스트를 들어보시고 곧 다시 돌아오셔서 Android 개발자 커뮤니티의 다음 업데이트 정보를 확인해주세요!