Now in Android: #40 - Special Google I/O edition

ganghee·2021년 6월 6일
0

[번역] Now in Android

목록 보기
6/64
post-thumbnail

주요 내용




Now in Android에 오신 것을 환영합니다. 안드로이드 개발에서 무엇이 새로워지고 주목할만한지 소개하겠습니다. 이 글은 Meanuel Vivo와 Daniel Galpin이 작성하였습니다.




Google I/O 2021 🎥

아직 Google I/O를 안 보셨다면 Google KeynoteDeveloper Keynote, "What's new in Android"를 확인해주세요. Android 12 Beta 1 업데이트에서 반짝거리는 물방울 효과와 오버스크롤 당김, 7월에 Jetpack Compose의 안정화 버전 공개, Material You 발표, Android Studio Arctic Fox beta 버전, 그리고 안드로이드 개발자들이 1,000개의 앱 중에서 80%가 사용하는 Kotlin과 10,000개의 앱 중에서 84%가 사용하는 Jetpack library의 주제를 발표하였습니다.

만약 아직 보지 못했다면 지금 바로 이 내용을 확인해주세요. 구글 팀이 기다리고 있습니다.




흥미로운 이야기 아닌가요? 이것 말고도 여러분들이 놓친 또 다른 I/O의 새로운 이야기들이 있습니다.




Jetpack! 🚀

너무 긴 글은 읽지 마세요. "What's new in Jetpack"의 이야기와 블로그 글을 확인해주세요. 여기에 CameraX와 Hilt, Paging 3, ConstraintLayout, MotionLayout, Security crypto, 프래그먼트 라이브러리들이 안정화되었다는 것!, DataStore와 Compose가 베타 버전에 있다는 것을 알 수 있습니다. 그리고 다음 새로운 라이브러리들이 Jetpack과 함께하게 되었습니다.

  • AppSearch는 새로운 기기 내 검색 라이브러리로, 고성능과 풍부한 기능의 전체 텍스트 검색기능입니다.
  • Macrobenchmark는 Jetpack의 benchmarking을 확장한 것으로, 애플리케이션의 초기와 스크롤 성능 같은 통합된 행동들을 다룰 수 있습니다. 이 API와 함께 개발자는 나쁜 케이스와 좋은 케이스, 시작 모드가 hot인지 warm 또는 cold모드인지와 같은 컴파일 모드에 의존하는 메트릭을 확인할 수 있습니다. 더 자세한 내용을 보려면 "Measuring Jank and Startup with Macrobenchmark"를 확인해 주세요.

여기, 새로운 버전의 WorkManager alpha-2.7이 있습니다. 안드로이드 S 버전의 SDK와 플랫폼의 새로워진 foreground 제약사항을 위해 더 많은 기능이 지원될 것입니다. "Effective Background Tasks on Android"에서 더 많은 내용을 확인하세요.

만약 Navigation 라이브러리를 사용하고 있다면, 최신 버전 alpha에서 multiple backstacks support를 확인해주세요.




Jetpack Compose

많은 분이 Jetpack Compose가 7월 안정화에 매우 기대하고 있습니다. Compose를 적용하기를 원하면 앱의 아키텍쳐를 바꿀 필요가 있을까요? 이 질문에 관심이 있다면 "Using Jetpack libraries in Compose"를 확인해 주세요. Compose는 가장 인기 있는 라이브러리 Navigation, Kotlin flows, Hilt 등과 함께합니다.

Compose는 Material Design 구현을 제공합니다. Compose가 제공하는 장점들을 확인하려면 "Build beautiful Material Design apps with Jetpack Compose"글에서 확인해주세요.

Compose 개발팀 공개한 2개의 코드랩: Compose NavigationCompose Testing. 만약 Compose를 배우는 것이 관심 있다면 우리가 소개하는 학습 단계를 확인해주세요. 그리고 아래에 Compose 개발 기초를 위한 workshop 영상이 있습니다.






Android 12 Beta 1 📱

Android 5.0에서 Material Design이 소개된 이후에 가장 큰 변화가 Android 12의 첫 번째 베타버전에서 공개되었습니다. 이 버전은 앱 위젯의 UI와 하는 역할이 상당히 바뀌었습니다. 예를 들어 시스템 테마에 맞게 위젯동적으로 색상이 바뀝니다. 바뀐 위젯들과 더 많은 정보를 알아봅시다. 단일 스크롤 컨테이너에서 적용되는 오버스크롤 효과가 전체 시스템에서 새로워졌으니 원한다면 확인해주세요.

Android 12에서 블루투스 기기를 스캔할 때 새로운 BLUETOOTH_SCAN 퍼미션과 neverForLocation을 사용한다면 더는 위치 퍼미션이 필요 없습니다. 이것은 앱의 마찰과 LOCATION 퍼미션을 필요로 하는 앱들의 수를 줄여줍니다.

위치와 관련하여, FINE_LOCATION을 요청한다면 사용자들은 근접한 블루투스 기기를 선택할 수 있습니다.

개발팀은 개인정보 대시보드, 마이크와 카메라에서 지침서와 설정값, 알림을 통한 클립보드와 같이 사용자들이 읽을 수 있는 개인 정보 기능의 많은 부분을 Beta 2에서 공개할 것입니다. Android 12에서 개인정보(프라이버시)와 관련된 더 많은 이야기를 "What's New in Privacy"에서 확인하세요.

또한, 이번 버전은 향상된 내용의 사용사례와 현재 미디어 성능에 초점을 맞춘 클래스들을 포함합니다.

개발자는 Android 12 베타 버전을 에뮬레이터 Pixel 3+와 다양한 디바이스 중 선택하여 테스트해주세요.




Android Studio 개발 툴 ❄️🦊

안드로이드 스튜디오 Arctic Fox 버전이 많은 기능과 함께 지금 Beta channel을 사용하실 수 있습니다! 이 버전은 Compose 지원과 Compose 개발을 증진 시켜주는 툴, Compose를 위한 레이아웃 inspector, 내장된 스캐너 접근성을 이용할 수 있습니다. 지원하는 기기 중 폴더블폰, 원격 안드로이드 TV, Wear OS를 위한 마법사 등이 있습니다. 이 버전은 생산성을 향상하고 백그라운드 테스크들의 조사, 코루틴 디버거, KSP(Kotlin Symbol Processing)을 지원합니다.

더 많은 내용을 "What's new in Android dev tools"에서 확인하세요.




ConstraintLayout과 MotionLayout 향상에 관해 더 알고 싶고 안드로이드 스튜디오에서 Compose 툴 사용법을 알고 싶다면 "What's new in design tools"를 확인해주세요.




Kotlin 🌐

안드로이드 개발 커뮤니티에서 코틀린 적용은 눈에 띕니다. 우리는 코틀린을 사랑하고, 너는 코틀린은 사랑하고,... 모든 사람이 코틀린을 사랑합니다. 새로운 것 중 "State of Kotlin"에서 주목할만한 Kotlin Symbol Processing과 UI 레이어들의 흐름을 모아둔 새로운 라이프 사이클 API를 소개합니다.




Kotlin Symbol Processing(KSP)의 목적은 빠른 빌드와 코틀린 환경에서 첫 번째 클래스 기능을 프로세싱하는 것에 있습니다. 더는 KAPT와 긴 시간 빌드 시간이 걸리는 Java 부분을 제거하고 KSP는 코틀린 컴파일러와 모든 Kotlin symbol에 접근하도록 제공하고 있습니다. 그리고 가장 중요한 것은 KSP 는 베타 상태입니다. 이것은 API가 표면적으로 완성되었다는 겁니다. 개발팀은 현재 KAPT을 KSP로 적용할 수 있는 plugin 개발자를 모셨습니다. Jetpack Room 라이브러리가 베타 버전에서 KSP를 가지고 개발팀은 KAPT보다 2배 빠른 프로세싱 속도를 확인했습니다. KSP는 ADB 방송에서 현재 소개되었습니다. 만약 더 알고 싶다면 방송을 들어주세요.

lifecycle-runtime-ktx 라이브러리의 마지막 버전은 생명 주기를 알고 있는 repeatOnLifecycle API들을 포함되어 있습니다. 이 API는 생명주기가 완료되거나 특정 상태에서 실패가 되었을 때 라이프 사이클을 취소하거나 다시 시작하는 기능을 가지고 있습니다. 이 기능은 View가 백그라운드에 있을때 일시 중지하거나 업스트립 흐름을 활성화하는 launchWhenStarted API와 다릅니다. repeatOnLifecycle API는 특정 상황에서 리소스 낭비를 막아 효율적인 앱을 만드는데 기여할 것입니다.

repeatOnLifecycle API와 함께 우리는 앱의 모든 레이어 흐름을 위해 완벽한 스토리가 있습니다. 만약 흐름을 설계하고자 한다면, Migrating from LiveData to Kotlin Flows 블로그 글을 참고해주세요.




Large screens! Wear OS! Android TV! 🖥⌚️

개발팀은 태블릿과 크롬 OS기기, 폴더블폰과 같은 넓은 화면에 쉽게 접근하도록 만들었습니다. 업데이트된 SlidingPaneLayout은 리스트와 상세뷰, 넓은 가로화면을 위한 새로워진 세로방향 내비게이션 버튼, 넓어진 버튼, 텍스트, 레이어와 새로운 가이드를 위한 Material 컴포넌트를 간단하게 바꿉니다. 여기 영상을 참고해주세요.

웨어러블의 다음 버전이 다가오고 있습니다. 개발팀은 새로운 툴과 에뮬레이터 시스템이미지, 가상의 심장박동수 센서를 개선하고 안드로이드 스튜디오에서 다음 기기들을 위한 에어러블 페어링을 간단하게 하도록 하였습니다. 계속해서 API와 Tile을 통해 건강 서비스 이용자들에게 더 많은 방법을 제공하고 있습니다. 웨어러블 개발로 사용자들과 상호작용하고 새로운 건강 플랫폼 개발에 힘쓰고 있으며 삼성과 협업으로 개발팀은 굴곡진 글자, 얼굴 감지, 복잡성, 원격의 웨어러블 빌드를 간단히 하는 새로운 Jetpack API를 가지고 있습니다. "What's new in Wear"를 통해 더 많은 것을 확인해주세요.

안드로이드 TV에서 Cast Connect는 흐름 변화와 확장이 되었습니다. 우리는 ADT-3기기를 사용하여 Android 11과 Android 12 beta 1 에서 사용가능한 새로운 에뮬레이터를 가지고 있습니다. "What's New in Android TV and Google TV"에서 8천만 개의 안드로이드 활성화 TV에 관해 이야기를 전해드립니다.




디바이스의 머신러닝 🤖

개발팀은 안드로이드 업데이트 소식과 ML 추론 스택의 완전히 통합된 소식을 전합니다. 안드로이드를 위한 텐서플로우(TFLite)네트워크 신경 API는 구글 플레이 서비스에서 지금 사용이 가능합니다. 그래서 사용자는 APK사이즈를 줄일 수 있고 새로워진 이점과 새로운 APK 등록 없이 높은 성능의 버전을 기대할 수 있습니다.

TFLite와 NNAPI, 관련된 칩셋 드라이버는 플랫폼 버전과 독립적으로 업데이트 될 것입니다. 그래서 일관된 드라이버와 API를 안드로이드 환경에서 적용할 수 있습니다. 또한 TFLite 2.3은 GPU에서 적합성을 높이고 모델 성능을 향상합니다.

개발팀은 Automatic Acceleration을 통해 메타데이터를 CPU, GPU, 다른 백앤드 돌아가는 어떤 것이든 메타데이터를 제공합니다. 안드로이드 기기에서 ML에 대한 더 자세한 내용을 "What's New in Android Machine Learning"에서 확인해주세요.






테스트 🧪

과거에 CI 서버에서 테스트하여 로컬의 안드로이드 스튜디오에서 실패 또는 반대의 경험이 있을 겁니다. 이 상황들은 테스트하는데 자신감을 하락시킵니다. 그리고 생산성에도 영향을 끼칩니다. 여러 이유 중 하나는 안드로이드 스튜디오와 안드로이드 그래들 플러그인은 서로 다른 버전의 테스트를 하고 있다는 겁니다. 안드로이드 스튜디오 Arctic Fox는 모든 안드로이드 스튜디오의 테스트를 Android Gragle plugin에서 일관된 테스트를 하도록 합니다.

질소 프로젝트가 무엇일까요? 답을 기다릴 시간이 없습니다. 그게 아니라 Unified Test Platform(UTP)를 환영해 주세요. 이것은 안드로이드 스튜디오와 안드로이드 그래들 플러그인에서 확장된 테스트를 할 수 있게 합니다.

UTP가 적용된 기기는 그래들 DSL이 적용된 가상의 기기입니다. 다른 기능으로는 여러 기기를 병렬로 테스트하는 데 도움을 줍니다. 마지막으로 테스트 실패를 할 때 에뮬레이터 스냅샷을 받을 수 있습니다. 그래서 스냅 샷을 저장해서 나중에 무엇이 잘 못되었는지 볼 수 있습니다.

더 자세한 내용은 "What's new in Android testing tools"를 확인해주세요.






Game Development 🎮

게임 개발자를 위한 I/O는 없었습니다. 그리고 온라인 게임 개발자를 위한 Summit이 7월 12일-13일 다가옵니다. 무료로 등록하고 I/O에서 다루지 않았던 멋진 게임 개발을 배울 수 있습니다.




Google Play 🏪

개발팀은 정책과 변경된 정책, 정책 위반에 관해 무엇을 해야 할지 몇 년 동안 많은 질문을 받고 있습니다. 그리고 play 콘솔에서 새로운 정책과 프로그램 섹션을 준비하였습니다. 이것은 한 장소에서 강화된 정보과 정책을 알려줍니다.

구글 플레이에서 새로운 SDK 콘솔은 준수하지 않거나 SDK 버전이 맞지 않을 때 SDK 프로바이더가 문제점을 보고하게 합니다. Android 그래들 플러그인 4.0+은 앱 번들로 등록했다면 SDK의 앱이 디펜던시를 가지고 있습니다. 그리고 개발자는 SDK가 업데이트되었을 때 Play가 하는 일을 공지 받습니다.

Play Billing 4.0 라이브러리는 새로운 기능을 할 수 있게 합니다. 예를 들어 여러 개의 상품 다발로 이루어진 다중 구독, 다중 결제 기능들이 있습니다. 이 라이브러리는 기존의 애플리케이션은 올해 11월 1일에 Play Billing 3.0라이브러리를 업데이트 할 수 있습니다. 새로운 애플리케이션은 Play Billing 3.0+ 라이브러리가 8월 2일까지 적용되어 있어야 합니다.




ADB Podcast Episodes 🎧


이번 Now in Android에서 안드로이드 개발자의 에피소드가 2개 방송하였습니다.

Episode #163: ADB는 안드로이드 그래픽 팀의 Nat Duca와 Sumir Kataria가 shaders, GPU, Vulkan, OpenGL, ANGLE, drivers, blur, pixels, Chet이 좋아하는 color에 관해 이야기하였습니다.

Episode # 164: "AD/BC"의 작은 시리즈의 첫 번째 방송을 하였습니다. 여기에서 Jetpack Compose의 안드로이드 UI 개발환경들의 주제를 다루었습니다. 이번 시간에 Nick과 Chet은 Adam Powell과 Leland Richardson과 함께 Compose compiler와 런타임 데이터 흐름, 데이터 상태에 따라 Composable을 부를때 Compose의 멋진 기능들을 알려줍니다.

0개의 댓글