이 글의 원문은 여기서 확인할 수 있으며, 블로그 리뷰에는 강사룡(Google) 님이 참여해주셨습니다.
#11WeeksOfAndroid의 마지막 블로그 게시물입니다. 지난 11주 동안 함께 Android 개발의 주요 영역을 자세히 살펴봐 주셔서 감사합니다. 내용을 놓치신 분을 위해 각 주에 논의한 모든 내용을 요약해 보면 다음과 같습니다.
'대화 알림(conversation notification)'을 사용하여 대화 바로가기 및 대화창을 구현하는 방법을 확인하세요. 또한 대화에 추가된 기능 및 다른 시스템 UI에 관한 소식을 자세히 알아보고 사용자 및 대화에 관한 개발자 문서를 여기에서 확인하세요. 마지막으로, 사람(people) 및 대화창(bubbles)에 관한 시스템 UI팀의 인터뷰가 담긴 Android Backstage 팟캐스트를 들어 보시기 바랍니다.
사용자와 개발자 모두에게 아이덴티티 절차를 어렵게 만드는 복잡성을 해결하기 위해 저희는 새로운 Google Identity Services Library의 일부인 One Tap 및 Block Store를 개발해 왔습니다.
ID에 관해 더 자세히 알아보려면, Google Identity System의 새로운 라이브러리를 다룬 'Android의 아이덴티티: 로그인의 새로운 기능' 영상을 시청해보세요.
Facebook Messenger팀과 Twitter의 메시지팀은 초창기부터 저희와 협력해 왔습니다. 트위터의 스토리는 여기서 살펴보세요. Facebook과 저희가 어떻게 협력해 실제로 구현해냈는지는 여기서 확인해보세요.
더 자세한 정보는 사람 및 아이덴티티 학습 과정, 관련 영상 재생목록과 더불어 핵심 내용을 정리한 블로그 게시물 통해 확인해보세요.
2주 차 - 머신러닝(Machine Learning)
이 주는 #AndroidDevChallenge 수상작을 발표하는 것으로 시작되었습니다. 수상작을 모두 확인해보시고, 어떻게 ML Kit 및 TensorFlow Lite를 사용했는지 알아보세요. 모두 머신러닝의 강력한 기능으로 실제 생활에서 사용자의 작업 처리를 돕는 방법을 보여 주는 데 초점을 두고 있습니다. 예를 들어 시각장애인이 복잡한 장소에서 이동하는 데 도움을 주는 앱 또는 학생이 수화를 배우는 데 활용할 수 있는 앱이 있습니다.
저희는 최근 ML Kit를 독립형 SDK로 만들었으며, 따라서 더 이상 Firebase 계정이 필요하지 않습니다. build.gradle 파일에 한 줄을 추가하기만 하면 ML 기능을 앱에 도입하기 위한 시작 단계가 완료됩니다.
많은 기대를 받고 있는 또 하나의 추가 기능은 Google 모델을 이미지 라벨 지정(Image Labeling) 및 객체 감지 및 추적용(Object Detection and Tracking) 자체 모델로 전환할 수 있게 하는 기능입니다.
사용자가 겪는 문제와 머신러닝이 가능한 능력 사이의 고유한 접점을 찾는 것의 중요성을 알아보고, People + AI 가이드북을 활용하여 머신러닝 제품에 관한 결정을 내리는 방법을 확인하세요. Read Along 팀과의 인터뷰에서 더 많은 아이디어를 얻어보세요.
이 주에는 Android 앱에 맞춤 모델(custom model)을 추가하는 것이 얼마나 쉬워졌는지도 집중적으로 다뤘습니다.
Google의 Codelab을 사용해 보세요.
머신러닝 학습 과정과 관련 영상 재생목록, 이번 주의 요약 블로그 게시물을 통해 자세히 알아보세요.
3주 차 - 개인정보 보호 및 보안(Privacy and security)
'개인정보 보호 및 보안' 블로그 게시물에서 공유했듯이 Google에서는 사용자 데이터 액세스에 관해 사용자에게 더 많은 제어 기능과 투명성을 제공하고 있습니다.
Android 11에서는 다양한 개인정보 보호 개선사항이 도입되었습니다. 앱이 기기 마이크, 카메라, 위치에 한 번만 액세스할 수 있도록 권한을 부여하는 일회성 권한을 예로 들 수 있습니다. 이러한 새 변경사항을 활용하여 개인정보를 안전하게 보호하는 앱 빌드 방법을 자세히 알아보세요. 또한 동영상을 통해 다양한 Android 보안 업데이트에 관해 알아볼 수 있습니다.
주목할 만한 다른 업데이트는 다음과 같습니다.
더 자세한 내용은 ‘개인정보 보호, 신뢰, 보안’ 학습 과정과 관련 영상 재생목록뿐만 아니라 개인정보 보호 및 보안 권장사항에 관한 문서에서 확인해보세요.
4주 차 - Android 11 호환성(Android 11 compatibility)
이 주에 저희는 Android 11 두 번째 베타 버전을 제공했으며 모든 API 및 시스템 동작이 온전함을 개발자에게 분명히 알려드리기 위해 '플랫폼 안정성'이라는 새 주요 출시 이정표을 추가했습니다. 여기서 베타 2 및 플랫폼 안정성에 관해 자세히 알아보세요.. 개발자의 입장에서 출시 이정표이 가지는 의미와 Android 11 관련 일정도 확인할 수 있습니다. 4주 차 이후 저희는 세 번째(최종) 베타 버전을 제공했으며 곧 AOSP 및 생태계(Ecosystem)를 대상으로 Android 11을 출시할 예정임을 참고 부탁드립니다. 업데이트된 환경에서 앱이 제대로 작동하는지 확인하세요.
Android 11용으로 앱을 준비하려면 다음과 같은 유용한 리소스를 확인하세요.
저희의 'Accelerating Android updates' 블로그 게시물에서 Android의 업데이트 가능성 아키텍처(updatability architecture)를 확장하여 최신 OS가 지속적으로 임계치에 도달하도록 하는 방법을 살펴봤습니다.
또한 Excelliance Tech 사의 사례를 집중 조명했습니다. 이 회사는 자사의 LeBian SDK에서 기존 비공식 SDK를 사용하는 대신, 안정적인 공식 API를 사용하여 향후의 Android OS와도 강한 호환성을 유지할 수 있도록 수정했습니다. Excelliance Tech의 스토리를 확인해 보세요.
Android 11 호환성 학습 과정, 관련 영상 재생목록, 이번 주의 요약 블로그 게시물을 통해 자세히 알아보세요.
5주 차 - 언어(Languages)
Android 11 베타에서는 비동기 작업(asynchronous work)에 코루틴(Coroutines)을 공식적으로 권장함으로써 Android에서 Kotlin을 사용하는 개발자 경험을 더욱 개선했습니다. 코루틴을 처음 접한다면 다음을 확인하세요.
새로운 Kotlin 우수사례 페이지에서 새로운 Google Home App의 우수사례 및 Android의 Kotlin 현황 영상을 포함한 최신 우수사례와 데이터도 확인하세요. 아울러 초보자를 위한 새로운 Kotlin을 이용한 Android 기초 과정을 시작하게 되었습니다.
자바 언어 개발자이시라면 최신 자바 API 지원 기능을 시청하여 여러 Android 버전에서 최신 OpenJDK 라이브러리를 사용하는 방법을 알아보세요. Android 11에서 저희는 Android 런타임도 업데이트하여 I/O 미리 가져오기를 통해 앱 시작 시간을 더욱 단축했습니다.
Android 11에서는 네이티브 도구 모음 전반을 업데이트했습니다. 예를 들어 프로필 기반 최적화(Profile-Guided Optimization, PGO)를 위한 도구를 향상하고 Android 스튜디오 4.0에서 네이티브 의존성 관리를 개선(improvements to native dependency management)했습니다.
마지막으로, 저희는 R8의 압축기(Shrinker)의 Kotlin 지원 기능 향상과 함께 Android 스튜디오의 D8 및 R8 컴파일러 개선에 계속해서 집중하고 있습니다. 이 문서에서 더 자세히 알아보세요.
언어 학습 과정과 관련 영상 재생목록, 그리고 이번 주의 요약 블로그 게시물을 통해 자세히 더 알아보세요.
6주 차 - Android Jetpack
Jetpack의 새로운 기능을 알아보려면 이 영상을 확인하세요.라이브러리의 다양한 업데이트를 간략하게 소개해드리고, 어떻게 시작할 수 있는지에 대한 팁도 안내해드립니다.
저희는 올해 Navigation 2.3을 출시하면서, Android UI 원칙을 따르는 동시에 앱에서 여러 화면 간에 쉽게 이동할 수 있도록 몇 가지 주요 사항을 개선했습니다.
민감한 권한에 대한 사용자의 제어 권한을 강화하기 위한 저희의 노력은 Android 11에서도 계속됩니다. 새로운 ActivityResult API를 통해, 공통 인텐트(common intents) 등을 위한 타입에 안전한(type-safe) 계약(contract)을 사용할 수 있습니다. 이렇게 변경함으로써 권한 요청 방식이 단순화되었으며, 저희는 앞으로도 권한 사용을 더욱 쉽게 만들기 위해 계속 노력할 예정입니다.
AppStartup 라이브러리의 최신 버전과 WorkManager의 새로운 기능도 자세히 알아보세요.
Jetpack 학습 과정과 관련 영상 재생목록, 이번 주의 요약 블로그 게시물을 통해 자세히 알아보세요.
7주 차 - Android 개발자 도구(Android developer tools)
저희는 Android 개발자 도구의 새로운 기능을 이 영상에서 정리하여 설명했습니다. 디자인 도구의 최신 업데이트 내역은 이 영상에서 확인하시고 더 자세한 내용을 알아보세요.
Layout Inspector 업데이트 및 레이아웃 디버깅에 관해서도 알아보세요. Jetpack Compose 디자인 도구의 최신 개선 내역을 알아보고 Android 스튜디오에서 새 Database Inspector를 사용하는 방법도 확인하세요.
Google에서 Android 스튜디오의 Jetpack Hilt용으로 마련한 최신 개발 도구에 관해 알아보세요.
Android 개발자 도구의 빌드 시스템에 관해 알아보세요.
가상 테스트의 최신 업데이트를 알아보려면 Android Emulator에 관한 이 블로그 게시물을 읽어 보세요. 마지막으로, 성능 도구의 최신 변경사항을 알아보려면 시스템 추적에 관한 성능 프로파일러 콘텐츠를 시청하세요. 또한 Android 스튜디오 4.1을 사용한 C++ 메모리 프로파일링에 관해 자세히 알아보세요.
Android 개발자 도구 학습 과정과 관련 영상 재생목록, 이번 주의 요약 블로그 게시물을 통해 더 자세히 알아보세요.
8주 차 - 앱 배포 및 수익 창출(App distribution and monetization)
실시간으로 시청하지 못한 경우 새 Google Play Console 베타에 관한 웨비나 영상을 지금 확인해 보세요.
저희는 App Bundle의 최근 개선사항에 대해 다뤘으며, 또한 2021년 하반기부터는 App Bundle로 Google Play에 신규 앱과 게임을 게시하도록 의무화할 예정임을 알려드리고 그 배경에 대해서 말씀드릴 수 있었습니다. 새로운 In-App Review API를 사용하면 이제 개발자는 앱 내에서 평점과 리뷰를 요청할 수 있습니다.
Google Play Billing에 대한 사용자 신뢰를 높일 정기 결제 정책을 잊지 마시기 바랍니다. 또한 구매자 도달 및 유지를 강화하는 데 도움이 되는 기능 조합을 확대했으며 Play 결제 라이브러리 3을 출시했습니다(2021년 중반부터 필수가 될 예정).
지난달에 Google Play Pass를 신규 시장 9곳에 출시했습니다. Google Play Pass와 Google Play 직접 결제를 모두 사용하는 개발자는 미국 내에서 Google Play 스토어 수익의 감소 없이 평균 2.5배의 수익을 창출했습니다. 여기서 자세히 알아보고 참여 신청해 보세요.
앱 배포 및 수익 창출 학습 과정과 관련 영상 재생목록, 이번 주의 요약 블로그 게시물을 통해 자세히 알아보세요.
9주 차 - 휴대전화를 넘어 확장된 Android(Android beyond phones)
다음과 같은 이번 주의 주요 내용을 확인하세요.
Android TV 및 대형 화면에 대한 학습 과정, 휴대전화를 넘어선 확장에 대한 재생목록, 그리고 이번 주의 요약 블로그 게시물을 통해 자세히 알아보세요.
10주 차 - 게임과 미디어(Game and media)
저희는 몇 가지 게임 업데이트를 공유했으며 Android 게임 개발자 프로그램을 다룬 '11 Weeks' 특별 에피소드를 소개했습니다.
또한 앱에서 MediaStyle과 함께 유효한 MediaSession 토큰을 사용하고 있는지 확인하여 Android 11의 새로운 미디어 제어 기능을 활용할 수 있습니다. MediaBrowserServiceCompat을 통해 앱을 검색할 수 있도록 만들고, EXTRA_RECENT 힌트를 사용하여 콘텐츠 재개를 지원하고, onPlay 및 onGetRoot 콜백을 처리하여 미디어 재개(media resumption)를 지원하는 방법을 알아보세요. 그런 다음 MediaRouter Jetpack 라이브러리를 활용하는 방법을 알아보고 UAMP 샘플 업데이트 버전을 확인하세요.
마지막으로, 앱에서 5G를 활용할 수 있는 몇 가지 기본적인 방법을 다루었습니다. Android 11에는 개발자가 5G의 기능을 활용하는 데 필요한 모든 도구를 이용할 수 있도록 강화된 대역폭 측정 API, 5G 감지 기능(5G detection capabilities) 및 모바일 이동통신사의 새로운 데이터 종량제 여부 플래그(meteredness flag) 등 새로운 API 및 기존 API의 업데이트가 추가됩니다. 이제 Android Emulator를 사용하면 5G 기기나 네트워크 연결 없이도 이러한 API를 개발하고 테스트할 수 있습니다. 5G를 위한 웹페이지에서 위에 언급된 모든 기능과 추가 기능을 확인해 보세요.
‘게임과 미디어’ 학습 과정, 관련 영상 재생목록 및 요약이 정리된 블로그 게시물을 통해 자세히 알아보고 d.android.com/games에서 게임 개발자를 위해 Google이 제공하는 모든 최신 도구와 리소스를 확인하세요.
11주 차 - UI
마지막 주에는 새롭게 Codelab 4개, 샘플 9개, 관련 문서와 Compose팀이 제공하는 팟캐스트를 공개했습니다. 다음 영상을 통해 확인해 보세요.
앱이 터치 키보드가 열리고 닫히는 사이의 부드러운 전환을 구현할 수 있는 기능이 Android 11에 새로 도입되었습니다. 이 기능을 앱에 추가하는 방법을 알아보려면 영상, 블로그 게시물 그리고 샘플 앱을 참고하세요.
머티리얼 디자인 가이드라인에 따라 한 앱에서 학습된 패턴이 다른 앱에서도 사용되도록 하여 앱이 일관되게 작동하도록 만드는 것이 좋습니다. 머티리얼 테마 설정(색상, 유형, 모양), 어두운 테마 및 Material Design Components(MDC) 라이브러리를 사용하는 머티리얼 모션 시스템에 관해 자세히 알아보세요. 아직 MDC로 이전하지 않았다면 이전 가이드를 확인하세요.
MDC XML 테마를 Compose `MaterialTheme`으로 전환하는 새로운 MDC-Android Compose 테마 어댑터와 같은 라이브러리를 사용하여 쉽게 이전할 수 있게 되었습니다.
Compose 학습 과정, 최신 UI 학습 과정 및 관련 영상 재생목록 그리고 이번 주의 요약 블로그 게시물을 통해 자세히 알아보세요.
기타 자료
#11WeeksOfAndroid 영상 콘텐츠의 전체 재생목록은 여기에서 확인할 수 있습니다. 트위터와 YouTube에서 Google을 팔로우하고 Google의 메일링 리스트에 등록하여 최신 뉴스와 기타 여러 자료를 모두 받아 보세요. 항상 함께해 주셔서 감사합니다.