fornewid / ConfDocs

Conference 내용 끄적끄적
4 stars 0 forks source link

What's new in Android #28

Closed fornewid closed 3 weeks ago

fornewid commented 1 year ago

https://youtu.be/qXhjN66O7Bk

qXhjN66O7Bk-HD

개인 정보 보호 및 보안, 개인화, 포그라운드 서비스, 머신 러닝, 고품질 사용자 경험 제공(웨어러블, 폴더블, 태블릿, TV, 자동차 등과 같은 폼 팩터)에 관한 Android 14 업데이트를 다룰 예정입니다.

Jetpack Compose의 새로운 기능, Android Studio의 새로운 도구, 업데이트된 아키텍처 지침과 같이 최신 Android 개발의 업데이트를 통해 어떻게 도움을 주고 있는지 살펴보고 더 빠르고 멋진 앱을 빌드할 수 있도록 돕습니다.

참고로 ✅ 는 연관된 세션입니다.

fornewid commented 1 year ago

Privacy & Security

Android 14에서 개인 정보 보호 및 보안에 관한 새로운 기능을 알아봅니다.

Android는 새로운 기능으로 더 안전한 기기 환경을 지속적으로 제공하여 앱의 보안 수준을 높이고 사용자의 개인정보를 보호합니다.


특히 Android 14의 최신 변경 사항 몇 가지를 강조하고 싶었습니다. 사용자는 앱이 권한을 요청할 때 시각적 미디어에 대한 부분 액세스 권한을 부여할 수 있습니다. 사용자가 부분 액세스를 선택하면 선택한 파일만 MediaStore를 통해 앱에 액세스할 수 있습니다.

따라서 추가적인 복잡성을 피하려면 저장소 액세스를 요청하는 대신 Photo Picker를 선택하는 것이 좋습니다. 그러나 임베디드 UX 스토리지 제어를 유지하는 것이 앱에 중요한 경우 액세스 문제를 방지하기 위해 권한 처리 로직을 적절하게 변경해야 합니다.

위치 권한 대화를 시작으로 더 많은 데이터 안전 정보를 도입하고 있습니다. 사용자는 앱이 사용자의 위치 데이터를 타사와 공유할 때 강조 표시되는 새로운 클릭 가능한 섹션을 볼 수 있습니다. 이 섹션을 클릭하면 사용자는 앱이 이 데이터를 공유하는 이유를 더 잘 이해할 수 있습니다.

전체화면 알림에 대한 접근도 잠금 화면에서 변경됩니다. Android 14부터 앱은 FSI 권한을 확인하거나 사용자에게 요청해야 합니다. 앱 스토어의 정책으로 전화 또는 알람 앱만 FSI 권한을 가질 수 있다.

Android 사용자를 보호하는 것은 Android 플랫폼과 앱 간의 공동 책임입니다. Android 14에서 알아야 할 가장 큰 보안 변경 사항은 앱과 다른 앱 간의 의도하지 않은 상호 작용으로부터 보호하는 데 도움이 되는 것입니다.

따라서 unexported 구성 요소에 전달하려면 명시적 인텐트를 만들어야 합니다. SDK level 34를 대상으로 하는 앱은 비시스템 브로드캐스트용 runtime receiver를 등록할 때 RECEIVER_EXPORTED 또는 RECEIVER_NOT_EXPORTED를 지정해야 합니다.

Android 14부터는 Target SDK 버전이 23 미만인 앱을 설치할 수 없습니다. 이 최소 Target API level 요구 사항을 충족하도록 앱을 요구하면 사용자의 보안 및 개인 정보가 향상됩니다. 자세한 내용은 What's New in Android Privacy and Security을 확인하세요. ✅


부분 화면 공유는 우리가 작업 중인 media projection의 업데이트입니다. 항상 전체 화면을 공유하는 대신 사용자는 특정 앱만 공유할 수 있으므로 앱과 화상 통화로 멀티태스킹할 때 좋습니다.

기존 캡처 방법을 사용하는 경우, 사용자는 Target SDK 버전에 관계없이 기본적으로 이 동작을 얻습니다.

[MediaProjectionConfig#createConfigForUserChoice()](https://developer.android.com/reference/android/media/projection/MediaProjectionConfig#createConfigForUserChoice()) Android 14에서와 같이 이 메서드는 사용자에게 선택권을 제공하도록 구성된 새 메서드와 동일합니다.

[MediaProjectionConfig#createConfigForDefaultDisplay()](https://developer.android.com/reference/android/media/projection/MediaProjectionConfig#createConfigForDefaultDisplay()) 전체 화면 캡처만 허용하거나 거부하도록 사용자를 제한할 수도 있습니다.

또한 Android 14는 MediaProjection 콜백에 두 가지 새로운 메서드를 도입하여, 캡처된 콘텐츠의 크기가 변경될 때(사용자가 멀티 윈도우 모드 크기를 변경할 때 발생할 수 있음) 업데이트를 받고 캡처된 콘텐츠가 표시될 때 업데이트를 받습니다. 이는 사용자가 다른 창에서 여전히 공유 콘텐츠를 볼 수 있는 경우, 공유 콘텐츠를 표시하지 않도록 캡처 앱에서 화면 공간을 절약하는 데 유용할 수 있습니다.


Health Connect를 사용하면 앱이 사용자 건강 데이터를 위한 단일 on-device repository를 가질 수 있습니다. 이를 통해 사용자는 한 곳에서 데이터를 보고, 개인 정보 제어를 구성하고, 좋아하는 앱 간에 데이터를 공유할 수 있습니다.

Android 14부터 Health Connect는 Google Play 시스템 업데이트를 통해 시스템 설정에 통합된 개인정보 보호 기능을 통해 플랫폼에 내장됩니다. 이를 통해 Health Connect를 자주 업데이트할 수 있으며 Android 14부터 앱 간에 건강 데이터를 연결하기 위해 Android 기기에서 기본 on-device 상태 저장소로 Health Connect를 사용할 수 있습니다.

Health Connect 및 Wear OS의 건강 서비스를 위한 기타 향후 기능에 대해 자세히 알아보려면 What's New in Android Health를 확인하세요. ✅


비밀번호가 엉망입니다. Android 14는 앱과 사용자가 비밀번호 및 기타 낚시 가능한 인증 방법을 안전하게 대체하는 업계 표준 기반의 새로운 인증 형식인 passkey를 사용하여 비밀번호 없는 세상으로 전환하도록 돕습니다.

passkey는 생체 인식 확인 또는 화면 잠금 해제와 같은 친숙한 패턴을 활용하여 사용자에게 더 빠른 서명과 경험을 제공하고 로그인 비율을 높일 수 있습니다. 그리고 가장 좋은 점은 passkey는 사용자가 원하는 곳 어디에서나 앱에 액세스할 수 있도록 하며 모바일 플랫폼과 브라우저에서 지원됩니다.

Android의 Credential Manager는 (암호 및 federated sign-in과 같은) 기존 로그인 방법과 passkey를 위한 통합 인터페이스와 개발자를 위한 통합 API로 통합하여 인증 처리를 더 쉽게 만듭니다.

현재 알파 버전인 새로운 Jetpack Credential Manager 라이브러리는 Android 4.4 이상에서 지원되며 암호 키는 Android 5 이상에서 지원됩니다.

사용자 자격 증명을 passkey로 등록하기 위해 앱은 credential 저장소에 credential 생성 메서드를 호출합니다. 이렇게 하면 생성된 passkey가 사용자의 비밀번호 관리자에 저장되고 공개키 credential 정보가 credential 객체로 앱에 반환됩니다. 이제 사용자가 passkey를 만들었으므로 앱에 로그인할 때 passkey를 사용하여 인증할 수 있습니다.

암호 키를 만들고 사용자를 인증하는 방법을 이해하려면 Reduce Reliance on Passwords and Android Apps with Passkey Support를 확인하세요. ✅


Android용 Privacy Sandbox는 광고 품질을 유지하면서 모바일 장치 사용자의 개인 정보 보호 표준을 높이는 데 중점을 두어 광고 지원 앱의 번창하는 생태계를 계속 지원할 수 있습니다. 시작하는 데 사용할 수 있는 두 가지 프로그램이 있습니다. 최신 기능을 위한 developer preview 또는 보다 안정적인 환경을 위한 beta program입니다.

우리는 프로덕션에서 솔루션을 요구하지 않고 Privacy Sandbox의 영향을 테스트하는 데 도움이 되는 새로운 도구를 출시했으며 베타 릴리스에 대한 Jetpack 지원을 추가하여 Privacy Sandbox와의 통합을 더 쉽게 만들었습니다. https://developer.android.com/jetpack/androidx/releases/privacysandbox-ads

프로젝트에 Jetpack 종속성을 추가한 후, API를 호출할 때 obtain 함수를 사용하여 런타임에 Privacy Sandbox의 availability를 확인할 수 있습니다. Privacy Sandbox는 웹 및 모바일 플랫폼에서 함께 작동하여 귀중한 데이터 통찰력을 제공하고 보다 정확한 기여를 수행할 수 있습니다.

attribution across web and app은 현재 Chrome 및 Android 플랫폼에서 사용할 수 있습니다. 웹에서 속성을 구현할 때 request header를 사용하여 OS level 지원이 가능한지 확인한 다음, attribution을 수행하도록 OS에 위임할 수 있습니다. 이렇게 하면 앱에서 발생한 conversion이 웹에 표시되는 광고에 기여할 수 있으며 그 반대의 경우도 가능합니다.

Privacy Sandbox의 새로운 기능, 크로스 웹 및 앱 어트리뷰션 작동 방식, 6월에 출시되는 새로운 등록 프로세스에 대해 자세히 알아보려면 Getting Started with Attribution Reporting10 Things to Know about Privacy Sandbox on Android을 확인하세요. ✅ ✅

fornewid commented 1 year ago

Form Factors

What's new across tablets, foldables, ChromeOS, Wear OS, TV, and Cars

Android는 휴대전화에서 태블릿, 폴더블, 노트북, 자동차, TV, 시계에 이르기까지 그 어느 때보다 더 많은 유형의 기기에서 실행되고 있으며 모든 기기를 위한 몇 가지 흥미로운 새 기능이 있습니다. 우리가 오늘 발표한 Pixel Fold는 곧 출시될 Pixel Tablet과 함께 성장하는 대화면 Android 기기 제품군에 합류합니다. 이러한 폼 팩터는 task bar 및 stylus에 대한 플랫폼의 개선을 통해 사용자가 더 쉽게 멀티태스킹할 수 있도록 합니다.

더 넓은 범위로 화면 크기와 configuration이 가능한 것은 앱이 이전에 설정한 일부 가정을 깨뜨릴 수 있습니다. 특히 모든 앱에 영향을 미치는 두 가지 핵심 영역인 앱 호환성 모드카메라가 있습니다.

첫째, 사용자는 모든 앱을 multi-window 모드로 전환할 수 있으며 앱 configuration에 관계없이 장치를 가로 또는 세로로 회전할 수 있습니다. 앱이 고정된 방향으로 제한되거나 크기를 조정할 수 없다고 선언하면 앱 호환성 모드로 전환되고 시스템에서 레터박스 처리됩니다.

activity orientation을 해제하고 기본적으로 크기를 조정하여 앱에서 사용 가능한 모든 공간을 사용하여 레터박스를 방지하는 것이 좋습니다. 크기 조정 및 orientation 해제를 더 쉽게 하기 위해, 구성 변경을 올바르게 처리하고 UI 상태를 저장하여 사용자에게 훌륭한 경험을 제공하는 방법에 대한 설명서도 개선했습니다.

두 번째 핵심 영역은 카메라와 관련이 있습니다. 새로운 폴더블 기기와 레터박스를 사용하면 UI의 종횡비 및 방향이 카메라 센서의 종횡비 및 방향과 일치한다고 가정하는 것이 더 이상 유효하지 않습니다. 그렇게 가정하면 미리보기가 회전되거나 늘어날 수 있습니다.

카메라 Preview용 Jetpack 라이브러리(CameraX 및 Camera2 모두)가 있으며 방향 및 장치 변경에 필요한 논리를 처리하는 데 도움이 됩니다.

Building a premium Android Camera experinence은 종횡비 문제를 자세히 다루고 폴더블 기기가 커버 스크린으로 기본 카메라 센서에서 사진을 찍는 데 사용할 수 있는 몇 가지 새로운 후면 디스플레이 API도 소개합니다. ✅

폰을 넘어서서 앱을 잘 작동하게 하는 방법에 대한 일반적인 개요를 보려면, Developing High-quality Apps for Large Screens and Foldables을 확인하세요. ✅


기존 multi-activity 앱의 경우, activity embedding은 둘 이상의 activity를 나란히 표시할 수 있도록 하여 적응형 레이아웃을 구현하는 쉬운 방법입니다. 이것은 최소한의 아키텍처 및 코드 리팩토링으로 XML을 통해 구성되며 activity embedding이 지원되지 않을 때 기존 동작을 변경하지 않습니다.

다른 신뢰할 수 있는 애플리케이션의 활동을 포함할 수 있도록 cross-app activity embedding을 위한 새로운 API도 있습니다.

Activity Embedding: large screen layout for multi-activity apps 세션은 eBay, Temu 및 WhatsApp과 같은 앱이 activity embedding을 구현하는 데 사용하는 API 및 구성 옵션에 대한 개요를 제공합니다. ✅

대형 화면은 또한 태블릿, 크롬북 및 기타 데스크톱 장치에서 키보드, 마우스 및 게임 패드를 활용할 수 있는 게임에 좋은 기회를 제공합니다.

Level Up! Build Great Games for Large Screens에서 게임이 실행되는 다양한 폼 팩터를 가장 잘 처리하기 위한 특정 팁과 함께 이러한 모든 장치에서 앱을 사용할 수 있는지 확인하는 방법을 알아보세요. ✅


앞서 언급한 health 업데이트 외에도 Wear OS 2에 대한 더 많은 발표가 있습니다. Wear OS 3 출시 이후 일관된 업데이트로 플랫폼을 개선하기 위해 노력해 왔으며, 그 결과 현재 시계의 배터리 수명과 기능이 향상되었습니다. 그리고 올해 후반에 새로운 Wear OS 버전이 출시됨에 따라 차세대 시계를 위해 훨씬 더 향상된 기능을 제공할 것입니다.

Wear OS에서 앱이 어떻게 보이는지 영감을 주기 위해 Wear OS 품질 가이드라인을 충족하는 영감을 주는 화면 갤러리를 게시하고 있습니다. 또한 코드 최적화 및 배터리 성능을 관리하는 Wear OS용 watch face를 구축하는 새로운 방법인 새로운 watch face format을 발표합니다.

Wear OS 앱에서 사용할 수 있는 서비스와 각 서비스에 가장 적합한 사용 사례를 알아보려면 How to Build High-quality Experiences on Wear OS을 시청하세요. ✅


광범위하게 개발할 수 있는 새로운 카테고리의 앱에 대한 Android Automotive OS 업데이트가 있습니다. 비디오 앱은 Android Automotive를 실행하는 주차된 차량에서 실행할 수 있습니다. 이는 모바일 앱을 구동하는 거의 동일한 코드로 수행할 수 있으므로, 폴더블 및 태블릿에 대한 대형 화면 최적화는 내장된 자동차 화면의 사용자 경험도 개선할 것입니다.

What's New with Android for Cars을 확인하여 Android Auto 및 Android Automotive OS 모두에 대한 전체 업데이트를 확인하세요. ✅


여러 폼 팩터에서 빌드하는 데 도움이 되도록 Jetpack Glance가 현재 베타 버전임을 발표하게 되어 기쁩니다. Jetpack Compose의 선언적 구문을 사용하여 remote views로 직접 작업하는 복잡성을 추상화하여 다양한 폼 팩터에 대한 적응형 위젯 개발을 용이하게 합니다.

Glance를 사용하여 위젯을 빌드하는 예를 보려면 Building for the Future of Android를 살펴보세요. ✅

fornewid commented 1 year ago

Jetpack Compose

What's new in Android's mordern toolking for building native UI

Jetpack Compose는 네이티브 UI를 빌드하기 위한 Android의 최신 툴킷입니다. 작년 10월에 첫 번째 Compose BOM을 출시한 이후로 우리는 새로운 기능, 버그 수정, 성능 개선을 위해 노력하고 있으며 UI를 구축하는 모든 곳에 Compose를 제공하고 있습니다.

Compose의 초기 릴리스는 모바일 개발에 중점을 두었고, 지난 7월에는 Wear OS용 Compose를 출시하여 Android의 최신 도구 키트를 시계에 최적화된 UI와 함께 다른 플랫폼으로 가져왔습니다.

이제 TV용 Compose는 알파 버전으로 제공되므로 더 적은 코드로 네이티브 TV 앱을 더 쉽고 효율적으로 빌드할 수 있습니다.

상단 및 측면 navigation, featured carousel, 스크롤 가능한 컨테이너 등을 포함하여 TV에 최적화된 구성요소 라이브러리를 제공합니다. focusability와 같은 TV 전용 usecase도 지원하고 있습니다. 이러한 구성 요소는 쉽게 customizing 할 수 있으므로 원하는 디자인과 일치하는 앱을 빌드할 수 있습니다. Compose for TV에 대한 의견을 기다리겠습니다.

Compose for TV API 및 TV의 Android용 기타 업데이트에 대한 전체 둘러보기는 What's New with TV and Intro to Compose 토크를 확인하세요. ✅

모바일, 웨어, TV용 Compose는 모두 동일한 런타임 및 기본 시스템을 사용합니다. 즉, 동일한 테스트 API, 미리보기 및 Layout Inspector와 같은 Android Studio 도구를 사용할 수 있으며 세 플랫폼 모두 내부에서 성능 최적화의 이점을 볼 수 있습니다.


지난 10월, 우리는 Modifier를 새롭고 더 효율적인 시스템으로 이전하기 시작했습니다. 텍스트만 해도 이 작업으로 인해 2023년 5월 배포에서 평균 22%의 성능 향상이 있었고 이러한 개선 사항은 전반적으로 적용됩니다. 이것의 가장 좋은 점은 Modifier를 사용하는 방식을 변경할 필요가 없다는 것입니다. 이러한 이점을 확인하려면 Compose 버전을 업데이트하기만 하면 됩니다.

최신 이모티콘 버전에 대한 지원과 같이 텍스트의 많은 개선 사항도 적용되어 이제 사용자가 훨씬 더 표현력을 발휘할 수 있습니다. 또한 Outlining 텍스트, 하이픈 지원, 줄 바꿈 동작 구성과 같은 사용자 지정 기능을 소개하고, 버그도 수정되었습니다.

복잡한 디자인 사용 사례를 지원하기 위해 새로운 레이아웃도 도입되었습니다.

새로운 Pager 레이아웃을 사용하면 ViewPager 및 View와 유사하게 콘텐츠를 수평 또는 수직으로 넘길 수 있고,

새로운 Flow 레이아웃을 사용하면 단락의 텍스트 줄과 같이 콘텐츠를 수직 또는 수평 흐름으로 정렬할 수 있습니다.

Glide 및 Google Maps와 같은 라이브러리에서 Compose에 대한 지원이 추가되어 Compose 내에서 이러한 라이브러리를 더 쉽게 통합할 수 있습니다.


Material Design의 최신 버전인 Material 3에 대해 이야기해 봅시다. Compose Material 3의 최신 버전인 버전 1.1은 bottom sheet, date 및 time picker, search bar, tooltip 등과 같은 요청이 많았던 새로운 구성 요소를 제공합니다.

Build Modern Android Apps with Material You for Compose에서 새로운 개선 사항 및 업데이트에 대해 자세히 알아보세요. ✅ 여기에서 M3에 추가된 새 구성 요소, M2에서 마이그레이션하는 방법 및 Material 3의 접근성에 대해 알아봅니다.


Android Studio Giraffe에는 Compose 도구 개선 사항, 기본적으로 활성화되는 Live Edit와 같은 기능, Compose API에 대한 애니메이션 미리보기 지원을 통해 훨씬 더 빠르게 반복할 수 있습니다.

Android Studio Hedgehog의 Canary 버전에서 디버거에 Compose 상태 정보 표시, multi-preview 템플릿, visual lint, 미리보기용 Accessibility Test Framework 지원과 같은 새로운 기능은 모두 더 나은 앱을 빌드하는 데 도움이 되는 새로운 도구입니다.

I/O에서 Compose에 대해 자세히 알아보려면 Jetpack Compose debugging에 대한 이야기를 놓치지 마세요. ✅

이 강연에서는 앱의 문제를 디버깅하고 수정하는 방법에 대한 mental framework를 다룹니다. 해결하려는 문제를 정의하고, 테스트를 작성하여 문제를 재현하고, Compose 상태 정보를 표시하는 새로운 디버거와 같은 도구를 사용하여 가정을 검증하고, 궁극적으로 직면한 문제를 해결하는 방법을 보여줍니다.

fornewid commented 1 year ago

Foreground Services

What's new in Android 14

Android 14를 대상으로 하는 앱은 새로운 type-specific 포그라운드 서비스 권한과 함께 포그라운드 서비스를 실행하기 위해 Type을 선언해야 합니다.

foreground service type을 지정하면 지원되는 포그라운드 서비스 사용 사례를 명확히 하는 데 도움이 됩니다. 매니페스트에 새로운 유형별 권한 및 필수 포그라운드 서비스 유형을 추가하는 방법은 위와 같습니다.

포그라운드 서비스 권한 및 유형의 전체 목록을 포함하여 백그라운드에서 실행하는 방법에 대한 자세한 내용은 Building for the Future of Android를 확인하세요. ✅

fornewid commented 1 year ago

Machine Learning

What's new in Android 14

먼저 ML Kit입니다. 앱에서 일반적인 ML 사용 사례를 지원하는 production-ready machine learning API 세트입니다. 두 가지 새로운 API인 Face MeshDocument Scanner와 함께 기존 API에 대한 Android 14의 최신 업데이트를 확인하세요.

더 나은 제어를 위해, Android의 custom ML stack을 사용하여 자체 ML 모델을 앱에 가져오고 APK 크기를 줄일 수 있습니다.

ML 고충을 해결하는 데 도움이 되는 세 가지 주요 업데이트를 만들었습니다. 특히 새로운 Acceleration Service는 현재 베타 버전입니다. 런타임 시 모델에 대한 최적의 하드웨어 가속 구성을 찾는 데 도움이 되도록 이 새로운 API를 만들었습니다.

자세한 내용은 Build Smarter Android Apps with On-device Machine Learning를 확인하세요. ✅

fornewid commented 1 year ago

ART 14

Android Runtime의 최신 버전인 ART 14에서는 Java 17 지원 및 새로운 garbage collector와 같은 개선 사항을 도입하여 코드 크기를 10% 줄이고 peak heap memory를 최대 50%까지 줄였습니다.

지난 몇 년 동안 우리는 업데이트 가능성(=updateability)에도 투자해 왔습니다. 예를 들어 현재 ART 버전인 ART 13에서는 Android 12 기기를 업데이트할 수 있으므로 앱 시작 시간이 최대 30% 향상됩니다.

업데이트 가능성(=updateability)에 투자하여, Google 시스템 업데이트를 통해 시간이 지남에 따라 기기를 개선함으로써 Android 생태계를 더욱 지속 가능하게 만들고 있습니다. ART 14를 사용하면 Android 12 이상을 실행하는 기기에서 최신 ART 기능을 받을 수 있으며 이를 통해 전 세계적으로 10억 대 이상의 기기에 혜택을 줄 것으로 예상합니다.

fornewid commented 1 year ago

Kotlin

ART에서 지원하는 언어 중 하나는 제가 개인적으로 가장 좋아하는 Kotlin입니다. Kotlin은 공식적으로 지원되는 언어가 되었기 때문에 개발이 더 빠르고 솔직히 훨씬 더 재미있어졌습니다.

What's New in Kotlin for Android에서 Kotlin에 대한 최신 업데이트를 확인하세요. ✅

이 강연에서는 빌드 속도를 두 배 더 빠르게 할 수 있는 새로운 K2 컴파일러,

빌드 파일에서 Kotlin을 사용할 수 있도록 Kotlin 스크립트에 대한 Android Studio 지원,

kapt 대신 Kotlin Symbol Processing을 사용하도록 마이그레이션할 때의 이점,

여러 플랫폼에서 Kotlin을 지원하기 위한 지속적인 노력 등을 알아봅니다.

fornewid commented 1 year ago

Predictive Back

Android 13부터 gesture navigation을 개선하기 위해 predictive back이 동작하게 만들었니다. 사용자가 뒤로 스와이프할 때 어디로 가는지 미리 볼 수 있어 더 높은 품질의 경험을 제공하고 사용자가 실수로 앱을 떠나는 것을 방지할 수 있습니다.

Android 14에서는 cross-activity 애니메이션과 함께 predictive 애니메이션을 앱에 추가하고 많은 머티리얼 구성요소를 기본적으로 지원합니다.

Android 14에서 이전하는 데 도움이 되는 한 가지 멋진 점은 개별 activity를 선택할 수 있으므로 먼저 앱에 가장 중요한 여정을 이전하는 데 집중할 수 있다는 것입니다.

opt-in하면 앱에 Home으로 돌아가는 애니메이션과 cross-activity 애니메이션이 모두 제공됩니다. AndroidX activity 종속성을 최신 버전으로 업그레이드하고 Compose용 BackHandler 또는 View용 onBackPressed Dispatcher와 함께 onBackPressed 콜백을 사용하기만 하면 됩니다.

더 많은 migration 방법과 애니메이션 실행 방법을 보려면 Building for the Future of Android를 확인하세요. ✅


아름답고 현대적인 앱을 만드는 데 도움을 드리고자 여러 폼 팩터에서 Android용 디자인을 이해하고 스타터 키트를 다운로드할 수 있는 중앙 집중식 장소인 developer.android.com에 완전히 새로운 디자인 허브를 출시합니다.

이것은 시작에 불과합니다.


Android 14는 HDR 10비트 압축 스틸 이미지에 대한 지원을 추가하여 사진을 찍을 때 센서에서 더 많은 정보를 유지하여 더 높은 품질의 이미지를 제공합니다. 커버할 수 있는 색상이 더 많기 때문에 포스트에서 편집할 때 사용자가 더 유연하게 작업할 수 있습니다. 또한 울트라 HDR을 위해 이전 버전과 호환되는 JPEG 형식을 설계했습니다.


더 많은 미디어 업데이트에서 Jetpack Media3 라이브러리의 안정적인 1.0 버전이 최근 출시되었습니다. 여기에는 HDR 비디오를 편집하고 SDR까지 톤 매핑을 위한 API가 포함되어 있습니다.

비디오 편집 및 트랜스코딩 요구 사항에 맞는 Transformer 모듈을 확인하십시오.

Media3는 ExoPlayer 및 MediaSession처럼 이전 버전과 호환되고 사용자 지정이 가능하며 사용하기 쉬운 친숙한 API의 최신 버전을 찾을 수 있는 곳이기도 합니다. 이 API로 업데이트하면, 리치 미디어 환경을 더 쉽게 구축할 수 있습니다.

예를 들어, 업데이트된 MediaSession API를 사용하면 재생 상태 및 메타데이터를 최신 상태로 유지하기 쉬워져 Android Auto, Wear OS 및 Android TV와 같은 플랫폼과 더 높은 품질의 통합이 가능합니다.

더 많은 기능과 변경 사항은 High-quality Android Media ExperiencesHow to Build High-quality Camera Experiences을 확인하세요. ✅ ✅

fornewid commented 1 year ago

Personalization

Android 14에서는 더 개인적이고 관련성 높은 앱을 만드는 데 도움이 되는 더 많은 API 및 도구 업데이트를 제공합니다.


아랍어, 힌디어 또는 스페인어와 같은 성별 언어에서는 언급되는 사람의 성별에 따라 단어가 변형되거나 변경됩니다. 기본 억양은 종종 남성적이지만 다른 성별과 관련이 덜 느껴질 수 있습니다. 따라서 Android 14에서는 여성형, 남성형 및 중립형 대안과 같은 새로운 성별 한정 문자열 리소스 생성을 지원하는 Grammatical Inflection API를 추가합니다.

이러한 변경 사항 및 Android Studio를 구성하고 앱이 사용자와 더 관련이 있는지 확인하는 방법에 대한 자세한 내용은 Building for Future of Android를 확인하세요. ✅


앱이 정보를 공유하는 방법에 대한 customization 변경 사항이 적용되어 앱과 사용자의 관련성이 높아집니다.


Android 14에는 최대 200%까지 비선형 글꼴 크기 조정이 추가되어 사용자 기본 설정에 따라 읽기 어려운 작은 텍스트보다 더 느린 속도로 큰 텍스트를 확장합니다. 즉, 정적인 scaled pixel 계산을 피하고 TypedValue 메서드를 사용하여 scaled pixel과 pixel 단위 간에 변환해야 합니다.


Android 14에는 다양한 새로운 접근성 API가 도입되어 민감한 데이터의 가시성을 접근성 서비스로 제한하는 API를 포함하여 사용자를 보호하고 TalkBack을 개선하는 데 도움이 되며 앱의 UI 요소가 창이 처음 나타날 때 접근성 포커스를 요청할 수 있도록 합니다. UI 요소에서 음성 안내 지원 알림 빈도를 지정할 수 있습니다. 이는 타이머나 비디오 progress bar와 같이 자주 업데이트되는 요소에 유용할 수 있습니다.

What's New in Android Accessibility에서는 앱의 잠재적인 접근성 문제를 식별하는 데 도움이 되는 새로운 Visual Lint 도구와 같이 Android 14의 변경 사항에 대해 자세히 설명합니다. ✅

fornewid commented 1 year ago

Tools

도구 이야기가 나왔으니 말인데, Android Studio Preview 버전에는 고품질 앱을 빌드하는데 도움되는 훨씬 더 많은 도구가 도입되었습니다. Android Studio Giraffe는 새로운 device explorer, 빌드 스크립트에 Kotlin 스크립트를 사용하는 옵션 추가, 새 프로젝트에 기본적으로 버전 카탈로그 사용 등의 기능을 추가합니다.

또한 Giraffe에는 시각적 혼란을 줄여 코드에 집중할 수 있도록 새롭게 개선된 UI가 있습니다. 설정 페이지에서 이를 확인하도록 선택할 수 있습니다.


차세대 Canary 빌드인 Android Studio Hedgehog에는 새롭고 흥미로운 도구가 추가되었습니다. 예를 들어, 코딩 및 모범 사례 학습을 돕는 새로운 AI 도우미인 Studio Bot, 새로운 Gradle 플러그인으로 baseline profile에 대한 향상된 지원, App Quality Insights 등에서 훨씬 더 유용한 비정상 종료 인사이트를 얻을 수 있습니다.

Hedgehog에서 제가 가장 좋아하는 새로운 기능은 Studio Bot입니다. Studio Bot은 IDE 내에 모두 통합된 대화형 AI의 기능을 제공합니다. 따라서 Jetpack Compose에서 목록을 작성하는 방법을 보여달라는 질문을 할 수 있으며 Studio Bot은 코드 스니펫과 기능에 대한 설명으로 응답합니다. 꽤 깔끔하죠?

App Quality Insights는 이미 IDE 내에서 Firebase Crashlytics 문제를 보여줌으로써 비정상 종료를 해결하는 데 도움이 됩니다. Android Vitals 통합이 추가되어 이제 다양한 기기의 충돌 데이터에 액세스하여 충돌을 일으킬 수 있는 원인에 대한 더 많은 컨텍스트를 제공함으로써 더 깊은 통찰력을 얻을 수 있습니다.

Baseline Profile은 이미 시작 시간을 개선하고 버벅거림을 줄이며 전반적으로 앱의 UI 성능을 향상시킵니다.

Android Gradle Plugin 8을 사용하면, Baseline Profile 효율성을 더욱 개선하여 포함된 규칙이 안정적으로 보장되도록 했습니다. R8과 dex 재정렬을 활성화하는 새로운 개발을 통해, 이제 App Startup 시간 중에 약 60% 더 개선된 것을 볼 수 있습니다. 이는 Baseline Profile을 사용한 이전 App Startup 시간의 두 배 향상입니다.

Dex 재정렬은 Startup Baseline Profile을 사용하여 시작에 필요한 모든 코드를 기본 classes.dex 파일에 추가하고 모든 비시작 코드를 외부로 이동하여 앱의 dex 파일을 최적화하는 방식으로 작동합니다. App Startup과 별개로 전체적으로 UI 성능이 최대 40% 향상된 것으로 측정되었습니다.

AGP 8을 사용하면 여러 소스 Baseline Profile을 보유할 수 있으므로 유지 관리가 더 쉬워집니다. Android Studio Hedgehog의 새로운 Baseline Profile Gradle 플러그인 및 Baseline Profile 모듈 템플릿은 앱용 Baseline Profile을 생성하여 Baseline Profile을 자동으로 추가하는 데도 도움이 됩니다.

고품질 앱을 더 빠르게 빌드하는 데 도움이 되는 새로운 도구에 대해 자세히 알아보려면 What's New in Android Development Tools을 확인하세요. ✅ 여기에서 지난 I/O 이후 출시된 도구의 분석과 Android Studio의 새로운 기능 데모를 볼 수 있습니다.

fornewid commented 1 year ago

Architecture

모범 사례를 따르고 강력한 앱을 빌드하는 데 도움이 되도록 Jetpack 라이브러리 및 문서 페이지를 계속 업데이트하고 있습니다.

Kotlin Multiplatform은 Android와 iOS 간에 비즈니스 로직을 공유할 수 있습니다. Kotlin 멀티플랫폼을 사용하는 경우 멀티플랫폼에서 사용할 수 있는 Annotations, Collections 및 DataStore와 같은 일부 Jetpack 라이브러리를 만들어 앱을 빌드할 수 있도록 도와드립니다.


config changes를 처리하기 위한 모범 사례와 같은 새로운 아키텍처 지침을 계속 업데이트하고 추가합니다. 이러한 지침은 코드를 쉽게 유지 관리, 확장 및 테스트할 수 있도록 코드를 구성하는 권장 접근 방식이 포함되어 있습니다.

아키텍처 모범 사례에 대해 자세히 알아보려면 Saving UI State on Android에 대한 이야기를 확인하세요. ✅

Android에서 UI 상태 저장은 Configuration이 변경되는 동안, 시스템에서 리소스를 회수해야 하는 경우, 예기치 않은 앱 종료 등 앱이 UI 상태를 잃을 수 있는 다양한 방법을 살펴봅니다.

사용자가 앱으로 돌아올 때 상태가 올바르게 복원되도록 다양한 시나리오에서 상태 저장을 처리하는 모범 사례에 대해 알아보세요.

fornewid commented 1 year ago

Testing

테스트 작성은 코드가 예상대로 작동하는지 확인하는 데 중요합니다.

paging-test 라이브러리는 새로운 테스트 API를 도입하여 페이징된 데이터를 표시하는 UI에 대한 Test Case를 작성할 수 있습니다.

테스트 모범 사례에 대해 자세히 알아보려면 Saving UI State on AndroidHow to Test Across All Screen Sizes and Scalable UI Testing Solutions이라는 두 가지 세션을 확인하세요. ✅ ✅


Android Studio에는 이미 여러 유형의 기기에서 앱이 현재 어떻게 작동하는지 확인하기 위한 데스크톱, 폴더블 및 크기 조정 가능한 에뮬레이터가 있습니다. 모든 화면 크기에서 테스트하는 방법에서 무엇을 테스트하고 이러한 에뮬레이터를 자동화된 테스트와 결합하는 방법을 배울 수 있습니다.

Scalable UI Testing에서 폼 팩터 전체에서 UI 테스트를 보다 효과적으로 만드는 방법을 알아보세요. ✅

테스트에서 가상 기기를 제어하고 구성 변경을 동기식으로 트리거할 수 있는 새로운 Espresso device API에 대해 알아봅니다.

다음으로 다양한 가상 및 물리적 기기에서 테스트 실행을 원활하게 확장할 수 있는, Firebase Test lab에 대한 지원이 추가된, Gradle-managed device를 알아보고,

마지막으로 여러 화면 크기에서 코드 변경에 대한 시각적 피드백을 얻을 수 있도록 Compose Preview를 host-side 스크린샷 테스트로 변환하는 방법입니다.