728x90
사용자의 앱이 최신 버전인지를 판단하여 필요에 따라 플레이스토어에서 업데이트를 요구할 수 있는 로직이 필요했다.
마침 Android에서 제공하는 AppUpdateManagerFactory가 존재했다.
Google Play Core 라이브러리에서 제공하는데, 그중 앱 업데이트를 관리하는 Class이다.
Immediate Update와 Flexible Update 2가지 기능이 있다.
Immediate Update (즉시 업데이트): 사용자가 앱을 실행하는 동안 앱 업데이트를 강제로 진행할 수 있습니다. 이것은 보안 패치나 중요한 업데이트를 빠르게 전파하고 사용자 경험을 향상하기 위해 사용됩니다.
Flexible Update (유연한 업데이트): 사용자에게 업데이트를 유도하면서, 사용자에 의해 선택적으로 업데이트를 다운로드 및 설치할 수 있게 합니다. 이를 통해 사용자에게 업데이트를 강제로 요구하지 않고, 더 유연한 업데이트 전략을 적용할 수 있습니다.
val appUpdateManager = AppUpdateManagerFactory.create(this)
val appUpdateInfoTask = appUpdateManager.appUpdateInfo
인스턴스를 생성하여 appUpdateInfo를 요청한다.
appUpdateInfoTask.addOnCompleteListener { updateTask ->
if (!updateTask.isSuccessful) {
//TODO: 정보 가져오기에 실패한 경우 처리
return@addOnCompleteListener
}
val onMarketVersion = updateTask.result.availableVersionCode()
if (onMarketVersion > nowVersionCode) {
//TODO: 업데이트가 필요한 경우 UI 처리
} else {
//TODO: 이미 최신 버전일 경우 UI 처리
}
}
정보를 모종의 이유로 가져오기에 실패한 경우, 업데이트가 필요한 경우, 이미 최신 버전일 경우에 따라 각각에 맞는 UI 처리를 진행해주었다.
availableVersionCode()는 플레이스토어에 등록되어 있는 최신 버전 코드 값을 반환한다.
728x90