Now in Android #118

none·2025년 7월 30일
0

[번역] Now in Android

목록 보기
83/85
post-thumbnail

Google I/O 2025 특집 'Now in Android' 2부작 중 2부에 오신 것을 환영합니다.

이번 두 번째 에디션에서는 Jetpack Compose, 카메라 및 미디어, 접근성, Kotlin Multiplatform, Android 개발 도구, Google Maps, AndroidX, Gemini가 탑재된 Google Home, 웹 기능 통합, Google Play 등 최신 소식들을 다룹니다.

1부에서는 Material Expressive, 시계, 자동차, 태블릿, 노트북, 연결된 디스플레이, 적응형 앱 개발 최신 소식, XR 개발, 온디바이스클라우드 기반 AI 활용, 그리고 Android 16에 대한 내용을 다루었습니다.



이 게시물의 대부분 내용은 영상 또는 팟캐스트 형태로도 제공되니 계속 읽기보다는 영상을 보거나 팟캐스트를 들어도 좋습니다. (기억에 도움이 되도록 세 가지 모두 경험해 보세요! 퀴즈는 없습니다.)




Jetpack Compose 💻

Jetpack Compose는 다음과 같은 새로운 기능들을 선보였습니다.

자동 완성(Autofill) 지원: 사용자 편의성을 높이기 위해 입력 필드 자동 완성 기능을 지원합니다.

자동 크기 조정 텍스트(Auto-sizing text): 텍스트 내용에 따라 자동으로 크기가 조정되는 기능을 제공합니다.

가시성 추적(Visibility tracking): 컴포저블(Composable)이 루트 컨테이너, 화면 또는 창 내에서 어떤 위치에 있는지 고성능 정보가 필요할 때 사용됩니다.

Animate bounds 한정자(Modifier): LookaheadScope 내에서 컴포저블의 위치와 크기에 대한 자동 애니메이션을 제공합니다.

테스트 내 접근성 검사(Accessibility checks in tests): 테스트에서 접근성(Accessibility)을 확인할 수 있는 기능을 추가하여, 모든 사용자가 앱을 쉽게 사용할 수 있도록 돕습니다.

자동 완성, 자동 크기 조정 텍스트, 그리고 새로운 상태 기반 TextField에 대한 더 자세한 내용은 “Mastering text input in Compose” 강연에서 확인할 수 있습니다.



Navigation 3는 완전히 새롭게 선보이는 Compose 우선 내비게이션 라이브러리로, 현재 알파 버전으로 출시되었습니다. 이 라이브러리는 복잡한 내비게이션 흐름을 더 쉽게 구축할 수 있도록 지원하면서, 동시에 개발자에게 더 큰 제어권을 제공하도록 설계되었습니다.



Jetpack Compose의 새로운 기능에 대해 읽어보거나 발표 영상을 시청해보세요.






CameraX and Media3 🎬

"Seamless video capture, editing and playback with CameraX and Media3" 세션에서는 CameraXMedia3LiteRT와 함께 사용하여 맞춤형 효과를 포함한 비디오 캡처, 공유 및 편집 앱을 만드는 방법을 다룹니다.

CameraX는 카메라 통합(미리보기, 캡처, 분석)을 간소화하며, Media3 Transformer는 비디오 편집 및 트랜스코딩을 처리합니다. Media3 ExoPlayer는 유연한 비디오 재생 옵션을 제공합니다.



"Building delightful Android camera and media experiences" 블로그에서 Android 개발자 관계 카메라 & 미디어 팀은 샘플 미디어 코드 및 데모 제작을 통해 얻은 주요 학습 사항들을 공유했습니다.

  • Jetpack Media3 Transformer API: 이 API를 사용하여 커스텀 비디오 컴포지터(custom video compositor)를 통해 입력 비디오 시퀀스를 다양한 레이아웃으로 정렬할 수 있습니다.

  • Jetpack Compose로 마이그레이션: 앱을 Jetpack Compose로 마이그레이션하고 지원 창 적응형 레이아웃(supporting pane adaptive layout)을 활용하여 UI가 화면 크기에 동적으로 적응하도록 할 수 있습니다.

  • CameraX의 Media3 효과 통합: CameraX의 Media3 효과 통합 기능을 통해 필터와 효과를 쉽게 추가할 수 있습니다. GlEffect 인터페이스를 구현하여 자신만의 효과를 정의하는 것도 가능합니다.

  • AI와 Media3 결합: Media3는 AI와 함께 사용되어 비디오 콘텐츠를 분석하고 의미 있는 정보를 추출할 수 있습니다. 비디오에서 파생된 텍스트 정보를 음성 오디오로 변환하여 접근성을 향상시키는 것도 가능합니다.

  • Oboe Audio API: Android 16부터 새로운 오디오 PCM 오프로드(PCM Offload) 기능이 제공됩니다.




Androidify: AI-driven experiences with Jetpack Compose, Gemini and CameraX 🤖

Androidify 앱은 Jetpack Compose, Gemini, CameraX, 그리고 Navigation 3를 활용하여 AI 기반 Android 경험을 구축하는 방법을 보여주는 오픈소스 프로젝트입니다.

첫 번째 아티클인 "Androidify: Building powerful AI-driven experiences with Jetpack Compose, Gemini and CameraX"는 이 앱이 어떻게 설계되고, 테스트되었으며, 수많은 기능들이 어떻게 구현되었는지에 대한 심층적인 소개를 담고 있습니다.

이 앱은 Firebase AI Logic SDK를 통해 Gemini API를 사용하여 Imagen 및 Gemini 모델에 접근합니다. Gemini 모델은 이미지 유효성 검사, 텍스트 프롬프트 유효성 검사, 이미지 캡션 생성, "글쓰기 도움" 기능, 그리고 생성된 프롬프트로부터 이미지 생성에 활용됩니다. UI는 Jetpack Compose로 구축되었으며, WindowSizeClass를 사용하여 다양한 기기에 맞게 UI가 적응합니다. 사진 촬영을 위해 CameraX가 통합되었고, 지침 비디오 로드를 위해 Media3 API가 사용됩니다. 화면 전환은 새로운 Jetpack Navigation 3 라이브러리를 통해 처리됩니다.

"Android Developers Blog: Androidify: Building delightful UIs with Compose" 게시물은 Material 3 Expressive 디자인 시스템의 MaterialExpressiveThemeMotionScheme.expressive를 사용하여 사용자 경험을 어떻게 구축했는지에 중점을 둡니다.

이 앱은 프롬프트 유형 선택을 위해 HorizontalFloatingToolbarMaterialShapes를 활용합니다. 또한 Jetpack Compose 1.8의 기능을 활용하여 텍스트 컴포저블의 폰트 크기를 자동으로 조절하고, 새로운 onLayoutRectChanged 기능을 사용하여 재미있는 애니메이션을 구현합니다.

Androidify 앱: Gemini, Firebase 및 ML Kit를 통한 AI 기능 활용
"Androidify: How Androidify leverages Gemini, Firebase and ML Kit" 게시물은 Google AI가 Gemini AI 모델, Imagen, 그리고 Firebase AI Logic SDK를 활용하여 새로운 Androidify 앱의 경험을 어떻게 향상시키고 있는지 설명합니다.

이 앱은 Firebase를 통해 Gemini 2.5 Flash를 사용하여 업로드된 이미지를 검증합니다. 이를 통해 이미지에 사람이 제대로 초점을 맞춰서 포함되어 있는지, 그리고 이미지가 안전한지(부적절한 콘텐츠가 없는지) 확인합니다. 또한 앱은 Gemini 2.5 Flash의 구조화된 출력 기능을 활용하여 이미지 캡션을 생성합니다.

사용자가 입력한 이미지에 대한 상세한 설명은 이미지 생성을 위한 프롬프트를 풍부하게 만드는 데 사용됩니다. 그리고 Imagen 3 모델의 미세 조정된(fine-tuned) 버전이 호출되어 아바타 봇을 생성합니다.

마지막으로, 이 앱은 ML Kit Pose Detection API를 사용하여 카메라 뷰에 사람이 있을 때 이를 감지합니다. 이 감지 기능은 캡처 버튼을 활성화하고 시각적인 지표를 추가하는 역할을 합니다.

Google I/O 2025: What’s new in Android development tools 🤖

"What's new in Android development tools" 강연에서는 Android Studio의 Narwhal Feature Drop (2025.2.1)에 대해 다루었으며, 이는 수많은 새로운 AI 지원 기능, Compose 개발 개선 사항 등을 제공합니다. 주요 내용은 다음과 같습니다.

Android Studio에서 Gemini 2.5 Pro에 접근 가능: 이제 Android Studio 내에서 강력한 Gemini 2.5 Pro 모델을 활용할 수 있습니다.

Gemini 기반 버전 업그레이드 에이전트 도입: Android Studio에 Gemini 기반의 새로운 Version Upgrade Agent가 추가되어 의존성 업그레이드를 자동화합니다.



Android Studio의 Journeys 기능을 사용하면 앱에서 테스트하려는 사용자 여정(user journey)에 대한 동작 및 주장을 자연어로 설명할 수 있습니다. 그러면 Gemini가 사용자를 대신하여 해당 테스트를 수행합니다.



Gemini는 이제 자동으로 Compose 프리뷰를 생성해 줍니다. Compose 프리뷰에는 내비게이션 개선 기능이 포함되어 있어 프리뷰 정의나 함수로 바로 이동할 수 있습니다. 포커스 모드에서는 프리뷰 창의 크기를 조절하여 UI가 어떻게 적응하는지 확인할 수 있습니다. 또한 "이 버튼들을 가운데 정렬해 줘"와 같이 자연어를 사용하여 프리뷰에서 UI 코드를 변환할 수도 있습니다.



I/O 2025: What’s new in Google Play 📊

Google Play Console, 앱 검색 및 기타 업데이트 (Google I/O 2025)
Google I/O 2025에서 Google은 새로운 Play Console 도구, 앱 검색 업데이트, 구독 변경 사항, 게임 관련 업데이트 등을 강조했습니다.

도구 및 API

  • Play Console의 "테스트 및 출시"와 "모니터링 및 개선" 개요 페이지에서 측정 항목, 기능, 상황별 조언을 한곳에서 확인할 수 있습니다.

  • Play Console 및 Publishing API를 통해 완전히 라이브된 릴리스를 곧 중지할 수 있게 됩니다.

  • Play Integrity API는 더욱 강력한 악용 감지 기능과 기기 보안 업데이트 확인 기능을 제공하며, 기기 리콜에 대한 공개 베타를 시작했습니다.

  • 시각적 애셋을 업로드, 편집, 볼 수 있는 애셋 라이브러리가 제공되며, 공개 측정 항목은 스토어 목록 성과에 대한 더 깊은 통찰력을 제공합니다.

  • Play Billing Library 8은 6월 말에 통합할 수 있도록 출시될 예정입니다.

앱 검색 업데이트



구독 업데이트

  • 구독 다중 제품 결제(Multi-product checkout for subscriptions)를 통해 기본 구독과 함께 구독 애드온을 판매할 수 있습니다.

  • 구독 혜택이 Play의 더 많은 곳에서 노출됩니다.

  • 이제 결제 수단이 거부될 경우 즉시 취소하는 대신 유예 기간(grace period)이나 계정 보류(account hold)를 선택할 수 있습니다.

게임 업데이트

  • PC용 Play Games는 지원을 확장하여 Android 게임 카탈로그와 함께 더 많은 네이티브 PC 게임을 선보이며, 최대 15%의 수익 회수가 가능합니다.

  • Google Play Games Services는 플레이어 참여를 높이기 위한 새로운 기능을 추가하고 있습니다. 여기에는 CSV 업로드를 통한 대량 업적 생성과 플레이어 프로필을 위한 생성형 AI 아바타가 포함됩니다.



더 자세한 내용은 I/O 강연이나 블로그 게시물을 통해 확인해 보세요.






Kotlin Multiplatform at Google I/O and KotlinConf 25 📱💻

Google I/O 2025와 KotlinConf 2025에서 여러 Kotlin Multiplatform(KMP) 업데이트가 발표되었습니다.

  • 주요 내용 중 하나는 Kotlin Multiplatform 공유 모듈 템플릿입니다. Android Studio에서 새 모듈을 생성할 때 사용할 수 있는 이 템플릿은 Room, SQLite, DataStore와 같은 Jetpack 라이브러리를 지원하여 KMP 개발을 더욱 쉽게 해줍니다.

  • "Demystify KMP builds and structure"는 Kotlin Multiplatform (KMP)에 대한 입문 강연으로, KMP가 어떻게 Android, iOS, 웹 등 다양한 플랫폼에서 코드 공유를 가능하게 하는지 설명합니다. 이를 통해 더 빠른 기능 제공이 가능해지며, 실제로 StoneCo와 같은 기업은 기능을 40% 더 빠르게 출시하고 있다고 합니다.



또한, Kotlin 관련 소식은 다음과 같습니다.

  • Android Studio가 Android 특정 기능을 위해 이제 Kotlin K2 모드를 지원합니다.

  • Kotlin Symbol Processing (KSP2)가 새로운 Kotlin 언어 기능 및 성능을 더 잘 지원하기 위해 안정화되었습니다.

  • Google Workspace는 iOS용 Google Docs 앱에서 KMP를 프로덕션에 사용하고 있습니다.

  • Google 팀원들이 KotlinConf에서 강연과 라이브 워크숍을 진행했으며, Google Workspace에서 KMP 배포, Kotlin/Native 객체의 라이프사이클, API, Compose for Desktop, JSpecify, 아키텍처 컴포넌트 분리 등의 주제를 다뤘습니다.

  • Android Developers Backstage의 "Kotlin Multiplatform: Have your code and eat it too 🎂" 에피소드에서는 Dustin Lam과 Yigit Boyar가 호스트 Tor Norbye와 함께 Kotlin Multiplatform (KMP)에 대해 이야기했습니다. KMP는 Kotlin 코드를 작성하여 거의 모든 곳에서 실행할 수 있게 해주는 기술입니다. 이 에피소드에서 여러분의 코드가 KMP에 준비되었는지 확인하는 방법과 플랫폼별 가정을 피하는 방법에 대해 배울 수 있습니다.



KMP(Kotlin Multiplatform) 관련 모든 업데이트는 블로그에서 확인하실 수 있습니다.

Articles 📚

Jetpack Navigation 3 (Nav3) 발표! 🧭

Compose 하이라이트에서 언급했듯이, 확장 가능한 내비게이션 경험을 구축할 수 있도록 지원하는 Compose 우선 내비게이션 라이브러리인 Jetpack Navigation 3 (Nav3)가 발표되었습니다. 현재 알파 버전으로 제공되는 Nav3는 이전 버전의 Jetpack Navigation을 개선하여 더욱 유연하고 강력한 제어 기능을 제공합니다.

Nav3는 개발자가 백 스택을 직접 소유하고 Compose 상태를 기반으로 관리할 수 있도록 설계된 새로운 내비게이션 라이브러리입니다. 이를 통해 Nav3는 앱의 내비게이션 동작을 훨씬 더 유연하게 제어할 수 있는 빌딩 블록과 유용한 기본값을 제공합니다. Nav3의 NavDisplay는 개발자 소유의 백 스택 변경 사항을 자동으로 관찰하고 UI에 반영합니다.

주요 특징

  • 목적지 간의 자연스러운 전환 애니메이션이 기본으로 제공되며, 개발자가 원하는 대로 사용자 정의 애니메이션을 만들 수 있는 유연한 API도 함께 제공됩니다.

  • Scenes는 동일한 레이아웃에서 여러 목적지를 렌더링할 수 있는 유연한 레이아웃 API입니다. 이를 통해 태블릿과 같은 대형 화면 기기에서 다중 패널 레이아웃을 쉽게 구현하고, 다양한 화면 크기에 맞춰 UI를 동적으로 조정할 수 있습니다.

  • 백 스택의 각 목적지에 상태를 스코핑할 수 있으며, 전용 Jetpack Lifecycle 라이브러리를 통해 ViewModel 지원도 선택적으로 활용할 수 있습니다. 이는 각 화면의 상태를 효율적으로 관리하는 데 도움이 됩니다.

  • 모듈 간 내비게이션 코드 분할: 내비게이션 코드를 여러 모듈로 분할할 수 있도록 지원하여, 빌드 시간을 개선하고 기능 모듈 간의 책임 분리를 명확하게 할 수 있습니다.

시작하려면 개발자 문서와 레시피 저장소를 참조하여 Nav3를 여러분의 프로젝트에 통합하고 맞춤형 내비게이션 경험을 구축해 보세요.

Zoho Achieves 6x Faster Logins with Passkey and Credential Manager Integration 🔑

Zoho는 자사의 OneAuth Android 앱에 패스키(passkeys)와 Android의 Credential Manager API를 통합했습니다. 그 결과, 로그인 속도가 최대 6배 빨라졌고, 패스키 채택률이 월별 31% 성장했습니다.

Zoho의 구현은 클라이언트 및 서버 측 조정(자격 증명 저장 시스템 조정 및 Android 기기からの 요청 처리 포함)이 모두 필요했습니다. 그들의 경험을 바탕으로, 여러분의 앱에 패스키를 구현할 때 다음 사항을 고려해 보세요.

Android의 Credential Manager API 활용: 이 API를 사용하여 패스키를 통합하면 사용자 경험을 크게 개선할 수 있습니다.

오류 처리 최적화: 발생할 수 있는 오류 상황에 대한 처리를 최적화하여 사용자 불편을 최소화하세요.

패스키 복구에 대해 사용자 교육: 사용자가 패스키를 잃어버렸을 때 복구할 수 있는 방법에 대해 명확하게 안내해야 합니다.

채택 지표 모니터링: 패스키 도입 후 사용률 및 성장률과 같은 관련 지표를 지속적으로 모니터링하여 전략을 최적화하세요.




Android Studio Meerkat Feature Drop is stable 💻

Android Studio Meerkat Feature Drop (2024.3.2)의 안정화 버전이 출시되었습니다. 이 버전에는 Gemini 프롬프트 라이브러리, 향상된 Kotlin Multiplatform (KMP) 통합, 그리고 기기 관리 개선 사항 등 다양한 기능이 포함되어 있습니다.

주요 업데이트

  • Gemini 통합: App Quality Insights에서 Gemini를 사용하여 충돌 보고서를 분석할 수 있습니다.단위 테스트 시나리오를 생성해 보세요. 새로운 프롬프트 라이브러리를 통해 프롬프트를 저장하고 공유할 수 있습니다.

  • Compose 및 UI 개발: 이제 테마 아이콘을 미리 볼 수 있습니다. Compose 프리뷰에서 개선된 줌 기능과 접을 수 있는 그룹을 사용해 보세요.

  • 빌드 및 배포: KMP 공유 모듈 템플릿을 사용하여 공유 로직을 쉽게 추가할 수 있습니다.업데이트된 기기 관리자 UX를 활용해 보세요. Google Play SDK Index에서 더 이상 사용되지 않는 SDK에 대한 경고를 받을 수 있습니다. 빌드 메뉴도 개선되었습니다.

  • IntelliJ 플랫폼 업데이트: IntelliJ 2024.3 플랫폼 릴리스가 포함되어 K2 모드 기능이 완료되었고 디버거 개선 사항이 적용되었습니다.

이러한 모든 새로운 기능을 경험하려면 Android Studio의 최신 안정화 버전을 다운로드하세요!



WeArePlay: 'My Lovely Planet' – 게임으로 환경 보호를 즐겁게

Imagine Games의 설립자인 클레멘트(Clément)는 모바일 게임과 실제 세계의 행동을 결합하여 환경 보호를 즐겁게 만드는 게임 "My Lovely Planet"을 만들었습니다. 이 게임에서는 나무를 심으면 NGO와의 파트너십을 통해 실제로 나무가 심어집니다.

클레멘트에 따르면, 게임 플레이어의 70%가 Google Play를 통해 유입되며, Google Play의 유연성, 반응성 및 강력한 테스트 도구는 게임 출시 및 확장에 있어 Imagine Games의 속도를 높이는 데 크게 기여하고 있다고 합니다.

My Lovely Planet은 플레이어가 게임 내에서 특정 레벨을 완료하면 실제 나무를 심거나, 게임 수익의 일부를 NGO에 기부하여 해양 정화, 벌 보호 등 다양한 환경 보호 활동을 지원합니다. 이 게임은 단순한 즐거움을 넘어 환경 보호라는 의미 있는 목적을 달성하며, Google Play는 이러한 목적 지향적인 게임이 더 많은 사용자에게 도달하고 성장하는 데 중요한 역할을 하고 있습니다.





Videos 📹

Android Accessibility Updates

"Android 접근성 업데이트"에서는 최신 Android 핵심 접근성 기능 및 API를 소개하며, TalkBack 및 실시간 자막과 같은 제품 업데이트, 접근성이 뛰어난 앱 개발을 위한 모범 사례, 그리고 Android 16의 접근성 API 변경 사항을 다룹니다.

주요 내용

  • 접근성 테스트 프레임워크: 접근성 테스트 프레임워크는 잠재적인 문제를 식별하고 예외를 발생시켜 테스트 실패를 유도합니다. 개발자는 고유한 접근성 유효성 검사기 인스턴스를 제공하여 이 동작을 사용자 정의할 수 있습니다. 이를 통해 실패에 대한 심각도 수준을 구성하고 알려진 문제를 억제할 수 있습니다.

  • Android Studio의 Composable 프리뷰: Android Studio의 Composable 프리뷰는 이제 어두운 테마, 다양한 디스플레이 및 글꼴 크기와 같은 접근성 기능을 적용하여 UI를 렌더링할 수 있습니다. 이는 낮은 대비, 크기 조절 안 됨 또는 잘린 텍스트와 같은 문제를 식별하는 데 도움이 되며, UI 확인 모드와 함께 작동하여 다양한 구성에서 일반적인 UI 문제를 빠르게 식별합니다.

  • 자동화된 검사: 자동화된 접근성 검사는 다양한 접근성 장벽 감지를 가속화하고 수동 테스트를 보완합니다. 개발자는 사용자 경험을 이해하기 위해 Android의 보조 기술로 앱을 테스트할 것을 강력히 권장합니다.

  • API 변경 사항 및 모범 사례: 이 비디오는 시각, 청각 및 운동 능력과 관련된 API 변경 사항과 모범 사례를 논의합니다. 또한 다양한 Android 화면 및 폼팩터에서 최고의 경험을 제공하는 단일 적응형 모바일 앱을 구축하는 것의 중요성을 강조합니다.



Best practices for using web in your Android apps

"Android 앱에서 웹 콘텐츠 활용을 위한 모범 사례"WebView, Custom Tabs, 그리고 Trusted Web Activities (TWA)를 사용하여 Android 앱에 웹 콘텐츠를 삽입할 때 따라야 할 지침을 다룹니다.

WebView: 앱 내에서 웹 콘텐츠를 인라인으로 표시할 수 있으며, 완전한 사용자 지정(Full Customization)이 가능합니다. 개발자가 웹 콘텐츠의 로딩 방식, 사용자 상호 작용, JavaScript 실행 등을 세밀하게 제어할 수 있어 앱의 디자인과 완벽하게 통합되는 경험을 제공합니다. 그러나 이는 웹 렌더링 엔진과 모든 보안, 권한, 쿠키 등을 앱이 직접 관리해야 한다는 의미이기도 합니다.

Custom Tabs: 사용자 선호 브라우저(예: Chrome)에 의해 구동되는 인앱 브라우징 경험을 제공합니다. 이는 사용자의 로그인 상태, 권한, 쿠키 등을 브라우저가 직접 처리하므로, 개발자는 별도의 구현 없이 일관된 웹 경험을 제공할 수 있습니다. Custom Tabs는 WebView보다 빠르고 효율적이며, 브라우저가 제공하는 보안 기능을 활용할 수 있다는 장점이 있습니다.

Trusted Web Activities (TWA): Custom Tabs와 유사한 웹 기능/API를 제공하지만, 표준 Android 액티비티로 실행됩니다. 이는 웹 콘텐츠를 거의 전체 화면으로 표시하여 네이티브 앱과 웹 콘텐츠 간의 경계를 모호하게 만들 수 있습니다. TWA를 사용하려면 웹 콘텐츠가 PWA(Progressive Web App) 요구 사항을 충족해야 하며, 웹 콘텐츠와 앱 간의 관계를 증명하기 위한 디지털 자산 링크(Digital Asset Links) 설정이 필요합니다.

어떤 방식을 선택할지는 앱 내에서 필요한 제어 수준과 통합 정도에 따라 달라집니다.

앱의 특정 UI 요소 내에 웹 콘텐츠를 완전히 통합하고 세밀하게 제어해야 한다면 WebView가 적합합니다.

사용자에게 빠르고 일관된 브라우징 경험을 제공하면서 앱의 컨텍스트를 유지하고 싶다면 Custom Tabs를 고려하세요.

웹 앱을 거의 네이티브 앱처럼 전체 화면으로 실행하고 싶고, 웹 콘텐츠가 PWA 요구 사항을 충족한다면 TWA가 강력한 옵션입니다.



Next-gen Android experiences with photorealistic 3D maps

"포토리얼리스틱 3D 지도를 통한 차세대 Android 경험"에서는 Android용 새로운 Kotlin 우선 Google Maps 3D SDK를 소개합니다. 이 SDK를 사용하면 3D 기능을 활용하여 몰입감 있는 지도 경험을 만들 수 있습니다.

주요 기능 및 클래스

  • Map 3D View: 3D 지도를 구성하는 가장 기본적인 요소입니다.

  • LatLngAltitude 클래스: 위도, 경도와 더불어 고도 데이터를 포함하여 정밀한 위치 지정을 가능하게 합니다. 이는 3D 공간에서 객체를 정확하게 배치하는 데 필수적입니다.

  • Camera 클래스: 카메라의 위치와 시야를 제어하는 데 사용됩니다. 특정 영역으로 카메라 시야를 제한하는 기능도 포함되어 있어, 사용자의 시선을 특정 관심 지점으로 유도하거나 특정 지역만 보여주는 등의 맞춤형 경험을 제공할 수 있습니다. Camera 객체는 center (위도/경도/고도), heading (방향), tilt (기울기), range (거리), roll (회전) 등의 속성을 통해 3D 공간에서 지도를 어떻게 렌더링할지 정의합니다.

  • 요소 추가:
    마커 (Markers): 지도상의 특정 지점을 표시하고 강조합니다. 3D 마커는 다양한 고도 모드를 지원하여 실제 지형과의 상대적인 위치를 정밀하게 제어할 수 있습니다.
    3D 모델 (3D Models): 건물, 랜드마크 또는 사용자 지정 객체와 같은 상세한 3D 모델을 지도에 통합하여 더욱 몰입감 있고 정보가 풍부한 지도를 만들 수 있습니다. gITF 에셋을 직접 렌더링할 수 있습니다.
    폴리곤 (Polygons): 닫힌 형태의 채워진 도형으로, 구역을 강조하거나 특정 영역을 정의하는 데 사용됩니다. 폴리곤 안에 구멍을 낼 수도 있어 복잡한 지형을 표현하기에 용이합니다.
    폴리라인 (Polylines): 닫히지 않은 선 형태로, 경로를 정의하거나 공간 정보를 전달하는 데 사용됩니다. 예를 들어, 보행 경로, 도로, 경계선 등을 표시할 수 있습니다.



Google Home APIs, tools, and Gemini capabilities for your apps



Google Home 및 Gemini 통합 관련 새로운 소식
Google I/O 및 KotlinConf 2025에서 Google Home API와 Gemini AI의 통합에 대한 여러 발표가 있었습니다.

주요 발표 내용

  • Home API의 카메라 지원: 앱이 곧 Gemini 카메라 피드에 접근할 수 있게 되어, 사람 감지나 택배 배달과 같은 지능형 알림 기능을 제공할 수 있게 됩니다.

  • 향상된 자동화 기능: Home API가 이제 추천 자동화를 지원하며, 더 높은 맞춤 설정을 위해 날짜/날씨 기반 설정을 제공합니다.

  • Gemini 통합: Google Home을 통해 기기를 Gemini의 AI 기능과 통합할 수 있게 됩니다.

이러한 최첨단 기능들을 가장 먼저 경험하고 최신 개발 소식을 받아보려면 개발자 뉴스레터에 가입하세요.




AndroidX Releases 🚀

여기서는 가장 영향력 있는 AndroidX 변경사항들을 요약했습니다. 핵심 내용은 다음과 같습니다:

  • Compose 내비게이션: 새로운 Navigation3 라이브러리와 ViewModel 통합은 Compose 기반 앱에 있어 중요한 변화로, 더 나은 제어 및 라이프사이클 관리를 제공합니다.

  • 미디어 개선: Media3 ExoPlayer 업데이트는 광범위하며, 성능과 안정성을 향상시키고 스크러빙 모드 및 부분 다운로드와 같은 요청된 기능을 추가했습니다.

  • 패스키 개선: 패스키 조건부 생성 지원은 더욱 원활한 사용자 경험을 제공합니다.

Navigation 3 관련 변경사항

미디어

  • androidx.media3:media3-*:1.8.0-alpha01: ExoPlayer에 대한 중요한 업데이트로, 잦은 탐색을 위한 새로운 스크러빙 모드, 오디오 타임스탬프 스무딩 개선, 다양한 버그 수정(메모리 누수, 자막 문제), 프로그레시브 및 적응형 스트림 모두에 대한 부분 다운로드 지원이 포함됩니다. 또한 앱이 지정된 시작 위치와 지속 시간으로 단일 미디어를 미리 캐시할 수 있도록 PreCacheHelper를 추가했습니다.

차량 앱 라이브러리 (Car App Library)

  • androidx.car.app:app-*:1.8.0-alpha01: 사용자 지정 미디어 앱을 위한 미디어 카테고리, 미디어 재생 중 작업을 제어하기 위한 재생 템플릿, 복잡한 레이아웃을 위한 Sectioned Item Template의 전체 지원이 추가되었습니다. 또한 초대형 그리드 항목 크기도 도입되었습니다.

앱 기능 (App Functions)

자격 증명 (Credentials)

글랜스 위젯 (Glance Widgets)

  • androidx.glance:glance-*:1.2.0-alpha01: Glance 위젯에서 생성된 프리뷰 및 다중 프로세스 구성 지원을 위한 API를 추가합니다. Glance Image 컴포저블 및 배경 이미지 한정자에 알파 값을 지정하는 새로운 API도 추가했습니다.

기타 업데이트

  • androidx.health:health-services-client:1.0.0: Wear OS 3 에뮬레이터 및 향후 출시될 기기를 위한 Health Services Client 라이브러리의 안정화 버전으로, 향후 추가 플랫폼이 지원될 예정입니다. 초기 릴리스에는 ExerciseClient, PassiveMonitoringClient, MeasureClient의 세 가지 최상위 API 서페이스가 포함됩니다.

  • androidx.hilt:hilt-*:1.3.0-alpha01: Kotlin 2.0을 대상으로 라이브러리 및 어노테이션 프로세서를 업데이트하여 KSP2를 포함한 최신 Kotlin 툴체인을 지원합니다.

  • androidx.recyclerview:recyclerview-selection:1.2.0: 마우스 드래그 및 키/위치 매핑에 대한 수정 사항이 포함되었습니다.




Android Developers Backstage

이 내용은 이전 Kotlin Multiplatform 섹션에서 다루어졌지만, 혹시 놓치셨을까 봐 다시 한번 알려드립니다. Android Developers Backstage에 새로운 에피소드가 돌아왔습니다.

Kotlin Multiplatform: Have your code and eat it too 🎂

이번 에피소드에서는 Dustin Lam과 Yigit Boyar가 호스트 Tor Norbye와 함께 Kotlin Multiplatform (KMP)에 대해 심도 있는 이야기를 나눴습니다. KMP는 Kotlin 코드를 한 번 작성하여 거의 모든 플랫폼에서 실행할 수 있게 해주는 혁신적인 기술입니다. 이 에피소드에서는 여러분의 코드가 KMP에 대비되었는지 확인하는 방법과 플랫폼별 가정을 피하는 방법에 대해 자세히 배울 수 있습니다.


0개의 댓글