작성자: Chet Haase (Software Engineer)
이 글의 원문은 여기서 확인 가능하며, 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다.
MAD Skills MotionLayout, Material 구성 요소, KSP, AndroidX, 코루틴 및 인텐트 문서, 앱 보안 강연, 앱 품질 및 교육 공지 사항
Android 개발 분야의 새롭고 눈에 띄는 소식을 계속 안내해드리는 'Now in Android'에 오신 걸 환영합니다.
동영상 및 팟캐스트 형식의 NiA34
이번 Now in Android 역시 영상과 팟캐스트 형식으로 제공됩니다. 콘텐츠는 같지만 읽어야 할 내용은 더 적습니다. 이 콘텐츠의 문서 버전(계속 읽어주세요!)에 있는 링크로 세부 내용을 확인하실 수 있습니다.
동영상
https://www.youtube.com/watch?v=boz7_mL1wK4&feature=youtu.be
팟캐스트
아래 링크를 클릭하거나 즐겨 사용하시는 팟캐스트 앱에서 구독해주세요.
Now in Android : 34 - Material 구성 요소, Kotlin Symbol Processing, AndroidX 업데이트 등!
MAD Skills: Motion Layout
MotionLayout에 관한 시리즈가 끝나가고 있습니다. 4회에서는 Sean McQuillan이 이 API가 자주 그 빛을 발하는 대상인 Motion Layout을 사용해 축소 가능한 툴바를 빌드하는 방법을 설명합니다. 그 과정에서 MotionLayout로 사용자 설정 속성에 애니메이션을 적용하는 방법도 배울 수 있습니다.
놀랄 것도 없는 일이지만, 마지막 에피소드는 개발자 관계 및 엔지니어링 팀의 Motion Layout 전문가와 함께하는 라이브 Q&A 세션입니다.
이전 에피소드 중 놓친 편이 있으면 MotionLayout MAD Skills 시리즈 재생목록을 꼭 확인해 보세요.
스포일러 이지만, 다음 MAD Skills 시리즈의 주제는 WorkManager랍니다! 혼자만 알고 있기로 해요 🤐
라이브러리 출시
머티리얼 디자인 구성 요소
material-components-android 1.3.0의 새로운 MaterialTimePicker
material-components-android 라이브러리가 안정화 버전 1.3.0으로 출시되었습니다! 이 버전은 MaterialTimePicker 및 ProgressIndicator와 같은 새로운 Material 구성 요소와 함께 제공됩니다. 추가로 대화상자(dialogs) 같은 일부 구성 요소 내에 있는 문자열의 국제화(internationalisation)과 현지화(localisation)가 있으며, BadgeUtils 클래스도 public으로 공개되었습니다.
출시 노트(release note)에서 모든 변경 사항을 확인하세요.
Kotlin Symbol Processing
Kotlin에서 가벼운 컴파일러 플러그인(compiler plugins)을 빌드하기 위한 도구인 KSP(Kotlin Symbol Processing)는 현재 알파 단계입니다. 주석 프로세서(annotation processors)에 익숙하다면 KSP가 KAPT와 비슷한 기능을 제공한다는 점을 알겠지만, KSP는 최대 2배 더 빠르고 Kotlin 멀티플랫폼을 염두에 두고 개발 중입니다.
주석 프로세서를 사용하는 라이브러리 작성자라면 라이브러리를 KSP와 호환 가능하게 만드는 방법에 관한 정보를 소개하는 블로그 게시물을 살펴보세요.
KSP(Kotlin Symbol Processing) 알파 발표
Android X
최근 연이어 발표된 다양한 AndroidX 라이브러리의 많은 릴리스 중에는 아래 나열된 안정화 릴리스가 포함되어 있습니다.
Activity 1.2.0: 이 버전은 startActivityForResult 및 requestPermissions 흐름에 유형 안정성과 더 쉬운 테스트를 제공하는 Activity Result API의 첫 번째 안정화 릴리스입니다. 게다가, ComponentActivity는 super.onCreate가 호출되기 전에 후크(hook)를 제공하는 ContextAware API를 구현합니다.
Fragment 1.3.0: 이 버전에서는 많은 것이 바뀌었습니다! 특히, FragmentManager의 내부 기능 재작성이 상당 부분 이루어진 새로운 State Manager를 제공합니다. 또한, Activity 1.2.0을 위한 지원과 새로운 Fragment Result API가 추가되고 fragment-testing 아티팩트에서 FragmentScenario가 대폭 개선되었습니다.
Lifecycle 2.3.0: 이 버전에는 parcelable이 불가능한 클래스에 대한 SavedStateHandle 지원, Lifecycle State 및 Event Helper, 수명 주기가 정해진 State로 바뀔 때 코드 블록을 실행하는 withStateAtLeast suspend 함수 등 다른 멋진 기능들도 추가됩니다.
안정화 릴리스 외에도, 첫 번째 베타 릴리스에 도달한 Paging 3도 주목할 가치가 있습니다! 기초적인 수준에서 코루틴을 포함하도록 Paging 3는 Kotlin으로 엄청난 규모의 재작성 작업이 수행되었습니다. 그와 같은 API가 beta01을 통해 API 안정 단계에 도달했습니다.
문서와 강연
코루틴, 스레드, 동시성 문제 사이의 간극 메우기(Bridging the gap between coroutines, threads, and concurrency problems)
필자는 코루틴이 Android 런타임에서 실제로 실행되는 방식을 여러분이 좀 더 쉽게 이해하는 것을 돕고자 이 글을 썼습니다. Android의 코루틴(coroutines)은 자바 프로그래밍 언어로 정의된 바에 따라 스레딩 모델(threading model)을 사용하므로, 코드의 동시 실행 문제(concurrency issue)에 주의해야 합니다.
코루틴, JVM 스레드, 동시성 문제 사이의 간극 메우기
Android 11 개인정보 보호 변경 사항에 맞춘 앱 조정
사용자의 비공개 데이터 보호와 해당 데이터를 앱에서 사용할 때의 투명성이 점점 중요해지고 있으므로, Android 역시 개인정보 보호를 우선순위의 과제로 두고 있습니다. Fred Chung의 강연에서는 사용자가 직면하는 몇 가지 변경 사항을 다루지만, 새로운 API, 동작 변경 사항, 테스트처럼 개발자에게 주로 초점을 맞춥니다. 이 강연에서는 일회성 권한 옵션, 스토리지, 패키지 공개 상태, 비공개 데이터 액세스 등을 식별하는 데 도움이 되는 도구 등의 권한 변경 사항도 다룹니다.
Android 중첩 인텐트
Nicole Borrelli는 앱이 앱 간의 콜백(inter-app callbacks)을 구현하기 위한 인텐트 대신 PendingIntent를 사용해야 할 이유를 설명합니다. 그렇게 하지 않을 경우 앱이 취약해질 수 있습니다.
Android 중첩 인텐트
앱 품질
애플리케이션 품질은 모두에게 중요합니다. Google 개발자 사이트의 새로운 App Quality 페이지는 앱 품질의 핵심 사안을 최신 상태로 유지하는 데 도움을 주고, 좋은 품질을 달성하고 유지하는 방법에 관한 리소스를 제공합니다. 핵심 앱 품질 체크리스트는 시각적 환경, 기능, 성능 및 안정성, 개인정보 보호 및 보안, Google Play의 관점에서 앱을 평가하는 데 도움이 됩니다. 일부 개발자는 기대 수준 조율을 위해 이 체크 리스트를 디자인 팀 및 QA 팀과 공유하는 것이 도움이 된다는 것을 알게되었습니다.
앞으로 저희 팀은 이 체크 리스트를 정기적으로 업데이트하여 최신 상태로 유지하고, 태블릿과 WearOS처럼 다른 폼 팩터로도 확장할 예정입니다.
사용자의 기대 수준에 맞는 품질
교육
저희는 더 많은 사람이 Android 개발에 접근할 수 있도록 만들고 싶습니다! 강의실 환경에서 Android를 가르치는 교육자를 위해 Kotlin을 사용한 Android 개발을 주제로 한 새로운 커리큘럼이 제공됩니다. 강의 슬라이드부터 실습 Codelab까지, 교육에 필요한 모든 것을 제공하기 위해 많은 자료가 준비되어 있습니다.
동료들로 구성된 그룹(peer groups)에서 함께 배우고 싶은 분들을 위해, 현재 모든 개발자에게 Android Study Jams 프로그램이 열려 있습니다. 이 교육 콘텐츠는 여러 사람이 함께 모여 온라인 커리큘럼을 통해 각자의 페이스에 맞춰 Android를 배울 수 있도록 꾸며져 있습니다.
Android 앱 개발을 가르치는 교육자를 위한 새로운 커리큘럼
자, 이제…