AOS 인앱 업데이트는 두가지 방법을 제공함.
유연한(권장) 업데이트 (Flexible Update)
****“원활한 상태 모니터링 기능과 함께 백그라운드 다운로드 및 설치를 제공하는 사용자 환경입니다. 이 UX는 사용자가 업데이트를 다운로드하는 동안 앱을 사용할 수 있는 경우에 적합합니다. 예를 들어 사용자에게 앱의 핵심 기능과는 크게 상관없는 새 기능을 사용해 보도록 유도하고자 할 때 사용할 수 있습니다.”
앱을 실행시키면 업데이트 여부를 파악해 다이얼로그를 보여줍니다. 업데이트를 클릭하게 되면 백그라운드에서 업데이트가 진행되며 업데이트가 끝나면 사용자에게 완료 메시지를 보여줍니다. 여기서 사용자가 앱을 다시 시작할지 말지 선택하게 됩니다. 이렇게 플레이 스토어로 이동하지 않고 업데이트 여부를 사용자가 선택할 수 있게 하여 앱에 대한 사용자 경험을 계속 유지시켜 줄 수 있습니다.
앱을 업데이트하면서 앱을 이용할 수 있습니다.
약간의 UI 조정 또는 성능 업그레이드를 제공하는 경우 권장하는 방법입니다.
즉시(필수) 업데이트 (Immediate Update)
“앱을 계속 사용하려면 사용자가 앱을 업데이트하고 다시 시작해야 하는 전체 화면 사용자 환경입니다. 이 UX는 업데이트가 앱을 계속 사용하는 데 중요한 경우에 가장 적합합니다. 사용자가 즉시 업데이트를 수락하면 Google Play가 업데이트 설치 및 앱 다시 시작을 처리합니다.”
앱을 실행시키면 업데이트를 권하는 전체화면이 나옵니다. 이 화면에서 뒤로가기를 통해 이전화면 으로 넘어갈 수 있지만 Flexible 보다는 사용자에게 업데이트를 더 요구하는 방법입니다. 플레이 스토어로 이동하지 않고 해당 화면에서 진행되며 업데이트가 완료되면 앱이 재실행됩니다.
앱을 업데이트하는 도중에는 앱을 이용할 수 없습니다.
보안 패치와 같은 중요한 업데이트가 있는 경우 권장하는 방법입니다.
문서) https://developer.android.com/guide/playcore/in-app-updates/kotlin-java#kts
업데이트를 해야한다고 알릴 수 있는 두 가지 신호 (업데이트 사용 가능 여부 확인)
Staleness
Play 스토어를 통해 사용자에게 업데이트 알림이 전송된 후, 장치가 업데이트를 사용할 수 있음을 인식한 시간을 확인합니다. 이는 업데이트의 흐름을 결정하는 데 도움이 됩니다. 사용자가 업데이트를 수행하지 않은 기간을 확인하여, 일정한 시간이 지나면 업데이트를 유연하게 시작하거나 즉시 요청할 수 있습니다. 예를 들어, 사용자가 업데이트 릴리스 후 이전 30일 동안 앱을 업데이트하지 않은 경우 Flexible이 트리거되고, 90일보다 긴 경우 Immediate이 트리거됩니다. 이러한 방법을 통해 사용자의 장치가 업데이트를 사용할 수 있는 상태인지를 판단하여 적절한 업데이트 전략을 선택할 수 있습니다.
Priority(우선순위)
0에서 5사이의 정수를 제공하여 각 릴리스에서 업데이트의 중요도를 지정합니다. (5가 가장 높은 우선순위) 앱을 업데이트하기 위해 적절한 업데이트 흐름(Immediate 또는 Flexible) 이 시작됩니다.
Google Play Console 을 통해 업데이트의 우선순위 를 설정할 수 있는 방법은 없고 Google Play 개발자 API 를 사용해야 합니다 .
5: 즉시 표시(중요 업데이트에 권장)
4: 5일 후 즉시 표시 및 3일 후 유연성 표시
3: 30일 후 즉시 표시, 15일 후 유연 표시(성능 업데이트 권장)
2: 90일 후 즉시 표시 및 30일 후 유연성 표시(마이너 업데이트 권장)
1: 항상 유연성 표시
0: 업데이트에 영향 없음 흐름
문서 [https://developer.android.com/guide/playcore/in-app-updates/kotlin-java?hl=ko&_gl=1*hgk97z*_up*MQ.._gaMTYwODA5MTg3OS4xNzE1NjczNTUw*_ga_6HH9YJMN9MMTcxNTY3MzU0OS4xLjAuMTcxNTY3MzU1MC4wLjAuMA..#update-priority](https://developer.android.com/guide/playcore/in-app-updates/kotlin-java?hl=ko&_gl=1*hgk97z*_up*MQ.._gaMTYwODA5MTg3OS4xNzE1NjczNTUw_ga_6HH9YJMN9M*MTcxNTY3MzU0OS4xLjAuMTcxNTY3MzU1MC4wLjAuMA..#update-priority)
https://developer.android.com/guide/playcore/in-app-updates/kotlin-java?hl=ko