오늘날 Android가 지원되는 수십억 개의 기기 중 휴대폰은 일부에 불과합니다. 태블릿, 폴더블, 심지어 노트북과 데스크톱도 Android 앱을 지원하므로 이제는 여러분의 앱이 다양한 폼 팩터에서 구동하는 것을 확인할 수 있습니다.
이 글에서는 앱에 대화면을 지원하는 방법과 그것이 중요한 이유를 알아보겠습니다. 화면 방향 변경, 화면비, 적응형 레이아웃을 정확히 설정하는 게 어려울 수 있지만, 대화면과 다양한 폼 팩터를 통해 이용자에게 선사할 멋지고 새로운 모습의 앱을 떠올려 보시기 바랍니다.
Google Play는 대화면 맞춤형 앱을 주력으로, 이용자가 기기를 최대한 활용해 고품질 앱과 게임을 쉽게 탐색하고 이용할 수 있도록 주요 변경사항을 도입하고자 합니다. 또한, Android 12L에서는 기기 제조업체가 앱의 선호하는 방향 요청을 재정의할 수 있습니다. 해당 내용과 기타 변경사항은 여기에서 확인하실 수 있습니다.
모든 화면을 지원하는 일은 복잡하고 어려운 일이므로, 이를 실행하기 위해서는 맞춤형 전략이 필요합니다. 그래서 저희는 앱에 대화면을 지원하는 기준을 3단계로 세분화했습니다. 가장 기본 단계인 Tier 3(대화면 준비)에서는 앱이 모든 노출 영역에서 전체 화면을 매끄럽게 지원해야 합니다. 다음 Tier 2(대화면 최적화)에서는 대화면에 맞게 앱을 최적화해야 합니다. 즉 앱이 최적화된 레이아웃을 갖추고 외부 입력 지원 수준을 강화해야 합니다. 마지막으로, 최고 단계인 Tier 1(대화면 차별화)에서는 앱이 완전히 차별화된 대화면 경험을 제공해야 합니다.
이 글에서는 Tier 3를 기준으로 앱을 대화면에 맞추는 방법을 설명해 드리고, 대화면 최적화가 중요한 이유를 알아보겠습니다.
Tier 3는 앱을 대화면 기기에 맞추기 위한 가장 기본 단계입니다. 이 가이드라인을 통해 앱 요구사항을 충족하고 이용자가 중요한 앱 흐름을 따라올 수 있도록 준비하시기 바랍니다.
세로 모드의 휴대폰과 가로 모드의 대화면
구성 변경 처리는 항상 Android 앱 개발의 주춧돌이었지만 대화면 기기에서는 특히 더 중요합니다. 앞서 언급했듯이 이용자는 항상 앱의 방향을 재정의할 수 있지만 개발자가 관심을 가져야 할 구성 변경은 이뿐만이 아닙니다. 대화면 환경에서는 물리적 키보드 연결과 창 크기 조정 등 더 많은 예외가 발생합니다. 새로운 폼 팩터가 계속 나오는 상황에서 이용자가 꼭 스마트폰을 손에 쥐는 것과 동일한 방법으로 다양한 폼 팩터 기기를 잡으라는 법은 없습니다. 가장 먼저 고려해야 할 점은 앱이 비정상 종료되지 않도록 하는 것입니다. 즉, 스크롤 위치와 텍스트 필드에 입력된 텍스트를 포함하여 앱은 구성 변경 중에 원래 상태를 유지해야 합니다. 미디어 재생 역시 구성 변경이 시작될 때 중단되었던 지점부터 계속 재생되어야 합니다.
이를 달성하기 위한 방법에는 여러 가지가 있습니다. 상태를 유지하고 UI로 푸시해 주는 ViewModel 클래스가 존재하지만, 이 작업은 다른 API로도 해결할 수 있습니다.
여러 폼 팩터, 특히 대화면 기기에서는 이용자가 한 번에 하나의 앱만 실행하지 않습니다. 앞으로는 대화면에서 여러 앱을 동시에 실행하는 것이 새로운 표준이 될 테니, 미리 준비하시기 바랍니다.
멀티 윈도우 모드를 지원하기 위해서는 앱의 라이프사이클을 주의깊게 처리해야하며, 예기치 않은 리소스 손실 문제를 다뤄야 할 수도 있어 까다롭지만, 이 또한 대화면으로 향하는 여정의 중요한 단계입니다.
멀티 윈도우 지원 문서를 확인하여 멀티 윈도우와 다중 재개 문제를 순조롭게 해결하시기 바랍니다.
접거나 펼친 기기의 카메라 방향
카메라 기능은 이 여정에서 매우 중요한 부분이자, 가장 어려운 문제 중 하나입니다. 이용자는 가능한 모든 방향과 창 크기, 심지어 폴더블 상태에서도 카메라를 사용합니다. 여러분은 테이블 모드와 같은 고유 기능이나, 누구도 떠올린 적 없는 다른 요소를 통해 이용자에게 색다른 경험을 제공하실 수 있습니다.
이용자에게 가장 중요한 것은 카메라에서 미리보기를 바르게 표시하고 올바른 방향과 화면비로 미디어를 재생하는 능력입니다. 이와 관련해 저희의 도움을 받으실 수 있습니다. 카메라 앱에서 크기 조절이 가능한 노출 영역을 지원하는 데 도움이 되는 Codelab을 새로 출시했으며, 하위 수준 API에 액세스할 필요가 없을 경우 사용 가능한 CameraX도 있습니다. 시작하기 전 ExoPlayer를 사용한 미디어 스트리밍에 관한 Codelab과 Media Projection API에 대한 가이드도 확인해 보시기 바랍니다.
키보드, 트랙패드, 스타일러스펜이 있는 Android 태블릿
대화면 폼 팩터로 인해 이용자에게 전례 없이 많은 옵션이 주어지고 있습니다. 예를 들어, 새로 출시되는 많은 태블릿에는 키보드와 트랙패드가 함께 제공됩니다. 이용자가 외부 블루투스 키보드를 사용하기 위해 더 큰 화면을 선택하는 경우도 있는데, 이때 앱을 다시 실행하지 않고도 가상 키보드와 물리적 키보드 사이를 손쉽게 오갈 수 있는 능력이 중요합니다.
마우스 및 키보드 탐색도 마찬가지로 중요합니다. 앞서 언급한 상황에서, 터치 기능이 지원되지 않는 Chromebook과 같은 제품에서는 이용자가 마우스나 키보드를 유일한 입력 소스로 사용해야 할 수도 있습니다.
이러한 모든 가능성과 그 밖의 다양한 내용을 탐색하려면 Android 개발자 웹사이트에서 외부 입력 처리를 확인하시기 바랍니다.
다양한 화면에서 최고의 앱 경험을 선사하는 것은 개발자로서 어려운 과정이지만, 더욱 견고하고 접근하기 쉬운 대화면 폼 팩터용 앱을 만들 기회가 되기도 합니다.Tier 3 체크리스트와 테스트를 확인하여 대화면에 적합한 앱을 만들기 위한 모든 요구사항을 준수하는지 살펴보고, 대화면으로 향하는 여정의 다음 단계를 준비하시기 바랍니다.
작성자: Juan Sebastian Oviedo (Senior Product Manager)
원문은 여기서 확인하실 수 있으며 블로그 리뷰에는 엄재웅(GDE)님이 참여해주셨습니다.
이번 Google I/O 2022에서 Android 스튜디오 Dolphin 베타와 Electric Eel Canary의 최신 기능을 소개해드렸는데, 현재 두 가지 모두 다운로드 가능합니다. 개발자 여러분께서 Android 앱을 만드는 동안에 생산성도 함께 높이길 원한다는 피드백을 주셨기에, 개발 경험을 더욱 빠르고 유익하게 개선하는 데 중점을 두었습니다.
Android 스튜디오 Dolphin 베타에서는 베타 채널에서 사용할 수 있는 기능과 개선 사항을 정식 버전에 가까운 품질로 경험할 수 있습니다.
더 많은 최신 기능은 Canary 채널의 Android 스튜디오 Electric Eel에서 미리 경험할 수 있습니다.
이 기능들은 피드백을 통해 개선된 후 정식 채널에 탑재될 예정이니 사용해 보시기 바랍니다.
Android 개발자 도구에 관한 새로운 소식 세션에서 기능 시연도 확인할 수 있습니다.
다음은 Android 스튜디오 Dolphin의 새로운 주요 기능 및 개선 사항 목록입니다.
Compose 애니메이션 조정 - 모든 애니메이션을 한 번에 확인하고 애니메이션 미리보기에서 조정합니다. 특정 애니메이션을 일시정지할 수도 있습니다.
Compose 애니메이션 조정
Compose 다중 미리보기 Annotation - 여러 미리보기 정의가 포함된 Annotation 클래스를 정의하고, 해당 새 Annotation을 사용하여 미리보기를 한 번에 생성합니다. 이 새로운 Annotation을 사용하면 모든 컴포저블을 개별적으로 반복하여 정의하지 않아도 여러 기기와 글꼴, 테마를 동시에 미리 볼 수 있습니다.
다중 미리보기 Annotation
Layout Inspector의 Compose 재구성 횟수 - Layout Inspector에서 Compose 앱의 재구성 횟수를 확인할 수 있습니다. 재구성 횟수와 건너뛰기 횟수는 구성 요소 트리와 속성 패널에서 선택하여 볼 수 있습니다. 여기서 자세히 확인해보세요.
Compose 재구성 횟수
Wear OS 에뮬레이터 페어링 어시스턴트 - Wear OS 에뮬레이터 페어링 어시스턴트로 기기 관리도구에서 Wear 기기를 확인하고 시계 에뮬레이터 여러 개를 휴대폰 한 대와 페어링할 수 있습니다. 또한 Android 스튜디오는 종료 후에도 페어링을 기억하기 때문에 기기 페어링을 매번 반복할 필요가 없습니다.
Wear OS 에뮬레이터 페어링 어시스턴트
Wear OS 에뮬레이터 사이드 툴바 - Wear 전용 에뮬레이터 버튼에는 메인 버튼, 손바닥 버튼, 회전 버튼이 있어 물리적 버튼과 유사하게 사용할 수 있습니다.
Wear OS 에뮬레이터 사이드 툴바
Wear OS 영역 바로 시작하기 - Wear OS 카드, 시계 모드, 정보 표시에 대한 실행/디버그 구성을 생성하고 Android 스튜디오에서 바로 시작할 수 있습니다.
Wear OS의 새로운 실행/디버그 구성 유형
Logcat V2 - 완전히 새롭게 구축한 Logcat으로 로그를 더 쉽게 파싱하고 쿼리 및 추적할 수 있습니다. Logcat V2에는 유용한 정보를 더 쉽게 스캔할 수 있는 서식 지정 기능과 더 많은 내용을 한눈에 추적할 수 있는 화면 분할 기능, 로그 필터링을 위한 강력한 구문이 새롭게 포함되었습니다. 자세히 알아보세요.
Logcat V2
Gradle Managed Devices - 앱 구축 과정에서 자동화된 테스트에 필요한 가상 기기를 설명하면, 나머지 작업은 Gradle에서 처리합니다. Gradle은 계측 테스트를 진행하는 동안, SDK 다운로드부터 기기 프로비저닝 및 설정, 테스트 실행 및 해제에 이르기까지, 가상 기기의 수명 주기를 관리합니다. 아울러 스냅샷 관리, 테스트 캐싱 및 테스트 샤딩과 같은 지능형 기능을 적용하여 효율적이고 빠르며 일관된 테스트 실행을 보장합니다. Gradle Managed Devices는 완전히 새로운 유형인 자동 테스트 기기를 도입해 자동화된 테스트에 기기를 최적화하여 테스트 실행 중 CPU 및 메모리 사용량을 크게 절감할 수 있습니다. 여기에서 자세히 확인해보세요.
Gradle Managed Devices
다음은 Android 스튜디오 Electric Eel의 새로운 주요 기능 및 개선 사항 목록입니다.
Live Edit - Android 스튜디오에서 컴포저블 코드를 변경하고 Compose 미리보기와 에뮬레이터 또는 실제 기기에서 해당 변경 사항을 즉시 확인할 수 있습니다. Live Edit은 옵트인 기능으로 Android 스튜디오 설정에서 활성화할 수 있습니다. 여기서 자세히 살펴보세요.
에뮬레이터의 Live Edit
미리보기의 Live Edit
SDK 정보 - 작성자가 만료로 표시한 SDK/라이브러리는 Google Play SDK Index에 Lint 경고를 표시합니다. 앱을 Play Console에 제출할 때 문제가 발생하지 않도록 개발 과정에서 만료된 종속성 버전을 업데이트하시기 바랍니다.
Google Play SDK Index 정보
Firebase Crashlytics의 앱 품질 정보 - Android 스튜디오 및 로컬 소스 코드 컨텍스트 내에서 Crashlytics가 보고한 문제를 발견하고 조사 및 해결할 수 있습니다. 이러한 통합으로 비정상 종료에서 코드로(혹은 코드에서 비정상 종료로) 이동할 때 불편함을 줄이고, 로컬에서 문제를 재현하는 데 도움이 되도록 각 비정상 종료의 중요한 컨텍스트 데이터를 표시합니다.
Firebase Crashlytics의 앱 품질 정보
크기 조절이 가능한 에뮬레이터 - 실행 중인 단일 에뮬레이터 인스턴스로 대표적 참조 기기 간에 빠르게 전환하여 다양한 애플리케이션 레이아웃 상태를 신속하게 테스트할 수 있습니다. 기기 관리도구자의 "기기 만들기" 흐름에서 "크기 조절 가능" 유형을 선택하여 이러한 에뮬레이터를 만들 수 있습니다.
크기 조절이 가능한 에뮬레이터
시각적 Lint 작업 - 레이아웃 유효성 검사 패널을 열어 다양한 기기에서 레이아웃 문제를 발견하고 수정합니다(예: 더 큰 태블릿에서 버튼이 화면 밖에 숨겨진 경우). 레이아웃을 자동으로 실행하여 다양한 크기의 화면에서 시각적 Lint 문제를 확인할 수 있습니다.
시각적 Lint 작업
에뮬레이션된 블루투스 - 가상 블루투스로 두 개의 휴대폰 에뮬레이터를 검색하고 연결할 수 있습니다. 이 기능은 시스템 이미지 T(API 33)와 함께 Android Emulator 31.3.8 이상에서 사용할 수 있습니다. 앞으로 비콘 및 심박수 모니터와 같은 가상 주변 기기의 샘플 생성과 블루투스 기능 통합 테스트를 추가로 지원할 계획입니다!
에뮬레이션된 블루투스로 두 개의 Android 에뮬레이터 페어링
기기 미러링 - 기기 디스플레이를 Android 스튜디오에 직접 스트리밍하여 개발 과정에서 중단 횟수를 최소화합니다. 기기 미러링으로 스튜디오의 Running Devices 창에서 실제 기기와 상호 작용할 수 있습니다. 이 기능을 활성화하려면 Preferences > Experimental로 이동하여 Device Mirroring을 선택한 다음, 기능이 활성화되면 기기를 연결하고 Running Devices 창을 열어 디스플레이 스트리밍을 시작하세요.
기기 미러링
요약하자면, Android 스튜디오 Dolphin 베타에서는 다음과 같은 새로운 기능과 개선 사항을 정식 버전에 가까운 품질로 제공합니다.
Jetpack Compose
Wear OS
개발 도구
Android 스튜디오 Electric Eel Canary에서는 다음과 같은 새로운 기능과 개선 사항을 경험할 수 있습니다.
Google Play 및 Firebase
대화면
현재 Android 스튜디오 Dolphin 베타와 Electric Eel Canary는 모두 다운로드 가능합니다. 이 가이드라인에 따라 현재 Android 스튜디오 정식 버전과 함께 설치할 수 있습니다. 베타 버전의 품질도 정식 버전과 거의 비슷하지만, 여전히 버그가 남아 있을 수 있습니다. 문제점을 발견한 경우 저희에게 알려주시면 바로 수정하겠습니다. 마찬가지로, 이번 Canary 버전에서도 문제를 발견하거나 기능에 대한 피드백이 있다면 알려주시기 바랍니다.
문제점에 대해 피드백을 전달해주시고 기능을 요청해 주셔서 진심으로 감사드립니다. Twitter와 Medium에서 Android 스튜디오 개발팀을 팔로우하실 수 있습니다.
자세한 내용은 미리보기 출시 노트에서 확인해 보시기 바랍니다.
작성자: Florina Muntenescu, Huyen Tue Dao (#TheAndroidShow 공동 진행자)
이 글의 원문은 여기서 확인하실 수 있습니다.
#TheAndroidShow의 새로운 에피소드를 확인하세요! 이번 에피소드에서는 Jetpack Compose와 Android 13, Android 태블릿 업데이트와 관련한 비하인드 스토리를 공개합니다.
#TheAndroidShow에서는 먼저 Android의 네이티브 UI 빌드를 위한 최신 툴킷인 Jetpack Compose에 대해 알려드립니다. 저희는 지난달에 향상된 초점 처리, 터치 대상 크기 조정, ImageVector 캐싱, Android 12 스트레치 오버스크롤 지원 등 새로운 기능이 포함된 Jetpack Compose 1.1을 출시했습니다. Compose 1.1은 다수의 이전 실험용 API를 공개 버전으로 전환하고, 최신 버전의 Kotlin을 지원합니다. 또한, 애니메이션 빌드에 참여한 엔지니어 Doris Liu와 함께 애니메이션 세계의 비하인드 스토리를 소개하겠습니다. 그리고 Compose를 채택한 Twitter가 어떻게 새 기능을 구현하는 시간을 절반으로 단축했는지 들어보겠습니다!
다음으로, 이번 주에 발표된 태블릿 관련 최신 소식입니다. 12L 기능이 AOSP에 공식으로 출시됐으며, 앞으로 몇 주에 걸쳐 모든 Pixel 지원 기기에 배포될 예정입니다. 12L은 2억 5천만여 개에 이르는 대화면 Android 기기에서 Android 12의 성능을 한층 더 향상시킵니다. 대화면 사용자가 드래그 앤 드롭으로 화면 분할 모드를 시작할 수 있는 새로운 작업 표시줄 뿐만 아니라, 알림 창과 잠금 화면의 새로운 대화면 레이아웃, 앱을 위해 개선된 호환성 모드도 이번 업데이트에 포함됩니다. 자세한 정보는 여기에서 확인할 수 있습니다.
12L은 올해 말 업데이트를 통해 삼성전자, Lenovo, Microsoft의 태블릿 및 폴더블 기기에 탑재될 예정입니다. 반드시 다양한 크기와 방향에서 앱의 화면 분할 모드를 테스트하고, 해당 사항이 있을 경우 새로운 호환성 모드 변경 사항을 확인하시기 바랍니다. 개발자를 위한 12L에 대한 자세한 내용은 여기에서 살펴보실 수 있습니다.
저희는 태블릿, Chromebook, 폴더블 기기 등 대화면을 Android의 미래를 위한 핵심 지표로 삼아, 최고의 사용 환경 조성에 필요한 도구를 계속해서 제공할 계획입니다. 대화면에 맞게 최적화를 시작하는 방법에 대해 자세히 알아보고 대화면용 개발자 리소스를 꼭 확인하세요.
Android 개발자 관계 담당자 Maru Ahues Bouza와의 대화로 에피소드를 마무리하며, Android 13과 올해 Android에서 선보일 다양한 경험에 대해서 말씀드리겠습니다.
자세한 사항은 #TheAndroidShow에서 바로 확인할 수 있으니 지금 YouTube로 시청해주세요!
전 세계 Android 유저들은 다양한 디바이스를 통해 개발자 여러분의 앱을 사용하고 있습니다. 태블릿, 폴더블, Chrome OS 등 Android 대화면 기기 수는 2억 5천만 개가 넘으며, 2023년까지 폴더블은 약 3천만 대, Android 태블릿은 약 4억 대 이상 활용될 것으로 예상됩니다.
이같이 수요가 증가함에 따라 유저들은 소셜 네트워킹 및 게임 플레이에서 멀티 태스킹부터 여러 작업 수행에 이르기까지, 대화면을 그 어느 때보다 다양한 방식으로 사용하고 있습니다.
Google Play는 유저들이 대화면 기기를 더 편리하고 알차게 활용할 수 있도록, 대화면에 최적화된 게임과 앱을 더 찾기 쉽게 만들고자 Google Play 스토어에 많은 변화를 도입하고 있습니다.
이번 블로그 게시물에서는 여러분의 앱을 대화면에 맞게 최적화할 수 있도록 총 4단계로 최적화 단계를 소개합니다. 대화면 최적화로 유저 경험을 대폭 개선한 개발자들의 성공사례를 살펴보고, 디자인 가이드 및 Android 12L 주요 기능을 통해 앱 화면을 효율적으로 디자인 및 테스트 하는 방법도 확인해보시기 바랍니다.
어떤 유저 경험을 제공해야할 지 고민이시라면, 왓챠 등 다양한 글로벌 파트너사의 최적화 사례를 확인해보세요. 왓챠는 테이블탑 모드와 드래그 앤 드롭 기능을 적용해 2021년 올해를 빛낸 앱의 ‘베스트 폴더블 앱’을 수상했으며 ‘더 넓어진 화면으로, 더 새롭게’ 라는 주제로 Google Play 스토어 상단에 소개되어 태블릿 및 폴더블 유저들을 위해 새롭게 추가된 기능을 선보였습니다.
"Android 대화면 기기의 출시와 판매가 점차 늘어나고 있고 폴더블 기기 역시 이제는 유저들에게 플래그십 레벨의 경험과 가치를 주고 있다고 판단했기 때문에, 대화면 최적화를 통해 계속해서 확대되는 유저들을 대상으로 유의미한 경험 개선이 가능할 것이라고 확신했습니다.”
- 송재우, WATCHA INC., 안드로이드 팀장
그 외에도, 전세계 많은 유저들로부터 사랑받는 파트너사들의 대화면 최적화 기능을 간략히 소개해드립니다.
Basic, Better, Best 3단계의 대화면 최적화 단계를 참고하여 앱 품질을 점검하고, 머티리얼 디자인 가이드라인을 통해 다양한 화면 크기에 맞춰 앱 화면을 효율적으로 디자인해보세요.
대화면에 특화된 Android 12 버전인 Android 12L의 주요 기능을 살펴보고, 다양한 폼팩터 상에서 최적의 사용자 경험을 지원하는 Jetpack WindowManager의 업데이트를 확인해보세요.