Now in Android #116

none·2025년 6월 8일
0

[번역] Now in Android

목록 보기
81/85
post-thumbnail

Now in Android에 오신 것을 환영합니다! 이곳은 최신 Android 개발 소식을 전하는 가이드입니다.

이번 애피소드에서는 Google I/O 프로그램 라인업, Jetpack Compose 1.8의 새로운 기능, 새롭게 디자인된 Play Console 앱 대시보드, 새로운 Android Vitals 측정항목, Testing at Scale 블로그 시리즈 출시, 그리고 AndroidX의 최신 소식을 다룰 예정입니다.



이 게시물의 대부분의 내용은 영상이나 팟캐스트 형식으로도 제공되므로, 읽기보다는 시청하거나 청취하셔도 됩니다. (또는 기억을 돕기 위해 세 가지를 모두 시도해 보세요! 퀴즈는 없으니까요.)




Articles 📚




Get ready for Google I/O: Program lineup revealed 🗓️

Google I/O 주제가 공개되었으며, 5월 20일부터 21일까지 진행되는 AI, Android, Web, Cloud 세션을 탐색하기 위해 등록할 수 있습니다. Google Keynote는 5월 20일 오전 10시(태평양 표준시)에 진행되며, Developer Keynote는 오후 1시 30분(태평양 표준시)에 진행됩니다. 5월 20일부터 21일까지 온라인으로 라이브 스트림에 참여할 수 있으며, 5월 22일에는 온디맨드 세션과 코드랩이 제공됩니다. 세션에서는 Gemini 모델을 사용한 AI 발전, Google AI를 사용한 여러 기기용 앱 구축, 웹 개발을 위한 새로운 기능 등을 다룰 예정입니다.




What’s new in the Jetpack Compose April ’25 release 🚀

Jetpack Compose 1.8이 새로운 기능, API 업데이트, 버그 수정과 함께 출시되었습니다. 새로운 릴리스를 사용하려면 Compose BOM 버전을 2025.04.01로 업그레이드할 수 있습니다.

주요 업데이트 내용은 다음과 같습니다:

  • 이제 Compose 애플리케이션에 자동 완성(Autofill) 기능을 통합할 수 있습니다.
  • 새로운 autoSize 매개변수를 사용하면 텍스트 크기가 컨테이너 크기에 맞춰 조정됩니다.
  • onLayoutRectChanged 수정자는 기존의 onGloballyPositioned 수정자가 제공하는 많은 사용 사례를 훨씬 적은 오버헤드로 해결합니다.
  • LookaheadScope는 안정화되었으며 수많은 성능 및 안정성 개선 사항과 함께 새로운 수정자 animateBounds를 포함합니다.

Jetpack Compose 1.8의 모든 새로운 기능에 대해 자세히 알아보려면 게시물을 확인하세요.




The Fourth Beta of Android 16 🤖

Android 16 베타 4가 출시되어 예정된 최종 업데이트 및 플랫폼 안정성을 확보했습니다. 개발자 API와 앱 지향 동작이 확정되었습니다.

이제 Android 16을 타겟팅하는 앱을 Google Play에서 사용할 수 있습니다. 이번 릴리스에는 최신 수정 사항 및 최적화가 포함되어 있습니다. JobScheduler, 브로드캐스트, ART, 인텐트, 16KB 페이지 크기, 접근성 및 Bluetooth 관련 동작 변경 사항에 대해 앱을 테스트하는 것을 고려해 보세요.

SDK, 라이브러리, 도구 또는 게임 엔진을 개발하는 경우, 호환성 문제로 인해 하위 앱 및 게임 개발자가 막히는 것을 방지하고 최신 SDK 기능을 타겟팅할 수 있도록 지금 필요한 업데이트를 준비하는 것이 훨씬 더 중요합니다.

API 및 동작이 확정되었고 릴리스에 매우 근접했지만, 피드백 페이지에서 계속해서 문제를 보고해 주시면 감사하겠습니다. 피드백을 빨리 받을수록 이번 릴리스 또는 향후 릴리스에서 문제를 해결할 가능성이 높아집니다.
Android 16 Beta 4가 출시되어 예정된 최종 업데이트 및 플랫폼 안정화에 도달했습니다. 개발자 API와 앱이 사용하는 동작이 최종 확정되었습니다.

이제 Android 16을 타겟팅하는 앱을 Google Play에 등록할 수 있습니다. 이 릴리스에는 최신 수정 사항 및 최적화가 포함되어 있습니다. JobScheduler, 브로드캐스트, ART, 인텐트, 16KB 페이지 크기, 접근성 및 Bluetooth 관련 동작 변경 사항에 대해 앱을 테스트해 보는 것을 고려해 보세요.

SDK, 라이브러리, 도구 또는 게임 엔진을 개발하는 경우, 호환성 문제로 인해 하위 앱 및 게임 개발자의 작업이 방해받지 않고 최신 SDK 기능을 타겟팅할 수 있도록 지금 필요한 업데이트를 준비하는 것이 훨씬 더 중요합니다.

API 및 동작이 최종 확정되었고 출시가 임박했지만, 피드백 페이지를 통해 계속해서 문제를 보고해 주시면 감사하겠습니다. 피드백을 빨리 받을수록 이번 릴리스 또는 향후 릴리스에서 문제를 해결할 가능성이 높아집니다.




From dashboards to deeper data: Improve app quality and performance with new Play Console insights 📱

Google Play Console에 앱 대시보드가 새롭게 디자인되어 품질 중심의 측정항목을 중앙 집중화하여 앱 성능 및 사용자 경험 개선에 도움을 줍니다. 대시보드는 측정항목을 다음 네 가지 핵심 개발자 목표로 그룹화합니다.

  • 테스트 및 출시
  • 모니터링 및 개선
  • 사용자 증가
  • Play를 통한 수익 창출

새로운 알림 센터는 계정 및 앱에 대한 최신 정보를 제공합니다. 새로운 측정항목은 다음과 같습니다.

  • 잘못된 엣지 투 엣지 렌더링에 대한 사전 검토 확인
  • 낮은 메모리 종료 측정항목
  • Android vitals의 과도한 wake lock

모든 최신 Play Console 개선 사항에 대한 정보를 얻고 작업 흐름과 관련된 업데이트를 쉽게 찾으려면, 네 가지 개발자 목표별로 기능을 필터링할 수 있는 새로운 Play Console의 새로운 기능 페이지를 살펴보세요.





Boost app performance and battery life: New Android Vitals Metrics are here 🔋

Android 개발자 블로그에서 앱 성능 및 배터리 수명 개선에 도움이 되는 새로운 Android Vitals 측정항목을 발표했습니다. 이 새로운 측정항목은 성능 및 배터리 수명에 대한 전체 플릿 가시성을 제공하여 성능 병목 현상을 진단하고 해결하는 데 필요한 데이터를 제공합니다. 이 새로운 측정항목 중 첫 번째인 '과도한 Wake lock'을 베타로 출시했습니다. 이 측정항목은 Android 사용자에게 가장 큰 불만 중 하나인 과도한 배터리 소모를 직접적으로 해결합니다. 앱의 Wake lock 동작을 최적화하면 배터리 수명과 사용자 만족도를 크게 향상시킬 수 있습니다.

측정항목 해석에 대한 명확한 지침을 제공하기 위해 과도한 Wake lock 측정항목 문서를 출시했습니다. 이 페이지를 확인하고 이 새로운 측정항목에 대한 사용 사례와 함께 피드백을 제공해 주십시오. 귀하의 의견은 이 측정항목이 일반적으로 사용 가능하게 되기 전에 이를 개선하는 데 매우 중요합니다.




Introducing Testing at Scale blog series

Android 개발자 블로그에서 대규모 앱의 실제 테스트 전략과 팁을 다루는 "Testing at Scale" 시리즈를 시작했습니다. 이 시리즈는 새로운 "Testing Strategies" 문서에 대한 보완 자료를 제공하며, 개발자들이 자신의 경험을 공유할 기회를 제공합니다. 아래에 게시된 처음 두 부분을 확인해 보세요.




Netflix App Testing At Scale

"Testing at Scale" 시리즈의 1부에서 넷플릭스의 선임 엔지니어인 켄 이(Ken Yee)는 대규모 재생 앱을 테스트하는 데 따르는 어려움과 넷플릭스가 테스트 전략을 어떻게 발전시켜왔는지에 대해 설명합니다.

넷플릭스의 안드로이드 앱 개발은 광범위한 기기 지원 때문에 특히 실제 기기에서의 포괄적인 테스트를 우선시합니다. 그들은 네이티브 환경으로 전환했으며 Jetpack Compose를 채택하고 있습니다. 대규모 팀은 단위 테스트(Strikt, Turbine, Mockito, Hilt, Robolectric), 스크린샷 테스트(Paparazzi, Espresso 접근성), 기기 테스트(Espresso, UIAutomator)를 사용합니다. 불안정성(상태, 비동기 코드)을 최소화하는 것이 핵심입니다. 그들은 전용 기기 랩을 사용하고 있으며, 테스트 효율성을 높이기 위해 에뮬레이터, Roborazzi 및 모듈식 "데모 앱"을 탐색하고 있습니다. 팀은 불안정한 테스트를 격리하고 엔지니어에게 알리기 위한 맞춤형 도구 체인을 만들었습니다. 기능 개발자는 테스트의 모든 측면을 책임집니다.




How Dropbox leverages testing to maintain high level of trust at scale

"Testing at Scale" 시리즈의 2부에서 Dropbox의 스태프 엔지니어인 라이언 하터(Ryan Harter)는 Dropbox의 테스트 피라미드 형태가 시간이 지남에 따라 어떻게 변화했는지, 그리고 적시에 피드백을 얻기 위해 어떤 도구를 사용하는지 공유합니다.

Dropbox의 안드로이드 앱 개발팀은 JUnit 및 스크린샷 테스트를 위한 Paparazzi와 같은 도구를 활용하여 단위 테스트를 강조하는 다각적인 테스트 접근 방식을 사용합니다. 그들은 자체 Dropshots 라이브러리를 활용하여 전체 인스트루먼테이션 테스트에 재투자하고 있으며, Compose Preview 스크린샷 테스트를 실험하고 있습니다. 또한 자동화하기 어려운 시나리오를 위해 웹 기반 도구 및 타사 서비스를 사용하여 수동 테스트를 통합합니다. 그들은 여러 기기 구성을 지원하도록 Dropshots를 확장하고 있습니다.




AndroidX Releases 🚀

Compose 개발자를 위한 주요 내용:

알파 버전으로 새로운 Compose API가 다수 출시되었습니다.

Compose Animation 버전 1.9.0-alpha01

  • TabRow 및 ScrollableTabRow는 더 나은 성능과 사양에 더 정확한 Primary 및 Secondary 변형으로 인해 더 이상 사용되지 않습니다.
  • LocalResources 컴포지션 로컬이 추가되어 리소스를 쿼리할 수 있습니다. LocalResources.current를 호출하면 구성 변경 시 재구성되므로 stringResource()와 같은 API 호출은 업데이트된 값을 반환합니다.

Compose Foundation 버전 1.9.0-alpha01

  • 호환성 파괴 변경(Breaking change): Indication 매개변수가 없는 clickable, combinedClickable, selectable, toggleable, triStateToggleable 오버로드는 이제 LocalIndication을 사용하여 제공되는 IndicationNodeFactory 인스턴스만 지원합니다. 이 변경 사항은 이 Compose 버전을 사용하여 이러한 수정자의 사용법을 재컴파일할 때 적용되며, 향상된 성능을 가능하게 하고 이러한 수정자를 사용하는 Composable 함수가 재구성 중에 건너뛸 수 있도록 하는 데 필요합니다.

Compose Material 버전 1.9.0-alpha01

  • 텍스트 필드 데코레이션 박스 API는 더 이상 실험적 기능이 아닙니다.
    runWithTimingDisabled는 동작을 더 명확하게 설명하는 runWithMeasurementDisabled로 대체되었습니다. (모든 측정항목이 일시 중지됩니다.)

Compose Runtime 버전 1.9.0-alpha01

  • currentCompositeKeyHash는 더 이상 사용되지 않습니다. 대신 currentCompositeKeyHashCode를 사용하세요.
  • @Stable, @Immutable, @StableMarker는 runtime-annotation으로 이동되었습니다(호환성 유지). 이제 Compose에 의존하지 않는 라이브러리에서 이러한 어노테이션을 사용하려면 runtime-annotation에 의존할 수 있습니다.
  • @RememberInComposition이 추가되었습니다. 이는 생성자, 함수 및 속성 getter를 표시할 수 있는 어노테이션으로, 컴포지션 내부에서 직접 호출되어서는 안 되며 기억되어야 함을 나타냅니다.

Compose UI 버전 1.9.0-alpha01

  • androidx.compose.ui.LocalSavedStateRegistryOwner는 androidx.savedstate.compose.LocalSavedStateRegistryOwner로 대체되어 더 이상 사용되지 않습니다.
  • Modifier.keepScreenOn이 추가되어 화면이 켜져 있는 동안 디스플레이가 잠들지 않도록 설정합니다.

CustomView 버전 1.2.0, CustomView-Poolingcontainer 버전 1.1.0, Leanback Leanback-Preference 버전 1.2.0, Leanback-Grid 버전 1.0.0, Leanback-Paging Leanback-Tab 버전 1.1.0, Print 버전 1.1.0이 모두 안정화 버전으로 출시되었습니다.

0개의 댓글