오늘날 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 체크리스트와 테스트를 확인하여 대화면에 적합한 앱을 만들기 위한 모든 요구사항을 준수하는지 살펴보고, 대화면으로 향하는 여정의 다음 단계를 준비하시기 바랍니다.