Android Weekly

Android Weekly #-602 "필요기능? 앱의 기기별 사용 가능성 증가"

베블렌 2023. 12. 25. 15:17

12월 4주차에는 

 

 

https://android-developers.googleblog.com/2023/12/increase-your-apps-availability-across-device-types.html

 

Increase your app’s availability across device types

Automate tracking feature requirements and maximize availability with badging.

android-developers.googleblog.com

 

 

 

소개

이 글은 앱의 사용 가능성을 다양한 기기 유형에 걸쳐 확장하는 방법에 대해 설명합니다. 주요 내용은 불필요한 기능 요구사항을 제거하여 앱의 접근성을 높이고, 기능 요구사항을 자동으로 추적하여 앱의 가용성을 극대화하는 방법입니다.

 

내용

    1. <uses-feature> 및 <uses-permission> 이해하기:
      • 앱 매니페스트의 <uses-feature>는 앱이 특정 하드웨어 또는 소프트웨어 기능에 의존하는지를 명시합니다. 기본적으로 이 기능은 필수로 설정됩니다. 그러나 기능을 선택적으로 만들려면 android:required="false" 속성을 추가해야 합니다.
      • 구글 플레이는 이러한 선언을 사용하여 앱의 이용 가능성을 필터링합니다. 디바이스가 필수 기능을 지원하지 않으면 해당 디바이스에서 앱을 다운로드할 수 없습니다.
      • <uses-permission> 또한 특정 기능 요구사항을 암시할 수 있습니다. 예를 들어, CAMERA나 BLUETOOTH와 같은 권한은 해당 하드웨어 기능을 암시적으로 요구합니다.
    2. 암시적 기능 요구사항:
      • 시스템은 모든 모듈과 의존성을 병합한 후 필요한 기능을 결정합니다. 이는 개발자에게 항상 명확하지 않을 수 있습니다. 의존성이나 권한 변경으로 새롭게 필요한 기능이 도입될 수 있습니다.
    3. 다양한 안드로이드 디바이스에서의 앱 이용 가능성:
      • 안드로이드 디바이스는 휴대폰, 접이식 기기, 태블릿, 노트북, 자동차, TV, 시계 등으로 다양해졌습니다. 모든 디바이스가 전화 서비스, 터치스크린, 카메라 같은 표준 기능을 갖춘 것은 아닙니다.
      • 런타임 권한으로 인한 기대치가 변경되었습니다; 사용자는 특정 하드웨어에 대한 접근을 거부하고 앱과 다른 방식으로 상호작용을 선택할 수 있습니다.
    4. 앱 설계 고려사항:
      • 앱은 자동 초점 카메라나 특정 카메라 방향과 같은 기능을 엄격하게 요구하지 않아야 합니다. 하드웨어 기능에 대한 대안을 제공하고 다양한 입력 방식(키보드 및 마우스 등)을 지원하는 것이 권장됩니다.
      • 가로 및 세로 방향을 모두 지원해야 하며, 특정 방향을 엄격하게 요구해서는 안 됩니다.
    5. 앱의 필수 기능 결정하기:
      • aapt2 도구를 사용하여 APK에 대한 정보, 특히 명시적 및 암시적으로 필요한 기능에 대한 정보를 출력할 수 있습니다. 이는 플레이 스토어의 필터링 로직과 일치합니다.
    6. 앱 이용 가능성 높이기:
      • 대부분의 앱은 하드웨어 및 소프트웨어 기능을 엄격하게 요구하지 않아야 합니다. 사용자가 그 기능을 사용할 것이라는 보장이 없으며, 사용자들은 앱의 모든 부분을 자신이 원하는 방식으로 사용할 수 있기를 기대합니다. 기능을 필요로 하지 않도록 대체 방안을 제공함으로써 앱의 이용 가능성을 높입니다. - 기존 <uses-feature> 태그에 android:required="false"를 추가하거나 더 이상 사용하지 않는 기능의 태그를 전체적으로 제거함으로써 기능을 선택적으로 만들 수 있습니다.
    7. CI 및 배지를 통한 회귀 방지:
      • 빌드 시스템의 일부로 앱 기능 결정 과정을 자동화함으로써 실수로 새로운 기능 요구사항을 추가하여 디바이스 이용 가능성을 줄이는 회귀를 방지할 수 있습니다. 이는 aapt2의 배지 출력을 텍스트 파일에 저장하고 CI를 사용하여 기능 또는 권한 변경을 검증하는 것을 포함합니다.
      • 앱 변형에 대한 CI 작업으로 generateReleaseBadging, updateReleaseBadging, checkReleaseBadging 등을 설정할 수 있으며, 이를 통해 기능 요구사항을 관리 및 검증할 수 있습니다.
    8. CI 자동화 배지:
      • 빌드 시스템의 일부로 앱 기능 결정 과정을 자동화함으로써 실수로 새로운 기능 요구사항을 추가하여 디바이스 이용 가능성을 줄이는 회귀를 방지할 수 있습니다. 이는 aapt2의 배지 출력을 텍스트 파일에 저장하고 CI를 사용하여 기능 또는 권한 변경을 검증하는 것을 포함합니다.

정리

앱의 전체 기능에 필수적이지 않은 경우, 기능을 선택적으로 만들어 가능한 한 많은 디바이스와 사용자에게 앱을 제공할 수 있도록 해야한다는 글입니다. 보통 프로젝트 단계에서는 가로세로나 권한 요구를 엄격하게 하고 들어가는 경우가 많아 다시 생각해보는 글이였습니다.

이번주는 연말 마지막이여서 그런지 weekly 2개다 마땅한 글이 없었습니다.

 

 

 

https://androidweekly.net/

 

Android Weekly - Free weekly Android & Kotlin development newsletter

Android Weekly - Free weekly Android & Kotlin development newsletter

androidweekly.net