Почему используешь версию Android 9.0 в проектах

Ответ

Android 9.0 (Pie) — это стабильная версия с широкой поддержкой (более 85% устройств). Она включает важные фичи:

  • Adaptive Battery — оптимизация энергопотребления
  • BiometricPrompt — унифицированный API для биометрии
  • Security patches — актуальные исправления

Пример использования BiometricPrompt:

val biometricPrompt = BiometricPrompt(activity, executor, object : BiometricPrompt.AuthenticationCallback() {  
    override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {  
        // Auth success  
    }  
})  
val promptInfo = BiometricPrompt.PromptInfo.Builder()  
    .setTitle("Auth required")  
    .build()  
biometricPrompt.authenticate(promptInfo)  

Минимальная версия (minSdk) выбирается под аудиторию, но 9.0 — хороший баланс между функциональностью и покрытием.

Ответ 18+ 🔞

Слушай, вот реально интересная тема про Android 9.0, она же Pie. Это, можно сказать, уже классика, но какая ёпта стабильная! На ней до сих пор сидит овердохуища устройств — больше 85%, представляешь? Это ж не просто так.

Вот смотри, что там за фишки были, которые реально жизнь упростили. Во-первых, Adaptive Battery. Эта штука умная, она смотрит, какими приложениями ты редко пользуешься, и не даёт им нагло жрать батарею фоном. Просто берёт и ограничивает их, хитрая жопа. Батарея стала жить дольше, и это факт.

А во-вторых, главная вещь — BiometricPrompt. Раньше был пиздец: каждый производитель лепил свой API для отпечатка или распознавания лица. Один — так, другой — эдак. Доверия к этой системе было, блядь, ноль. А тут пришёл Google и сказал: «Хватит это терпеть!». Сделали единый, красивый API. Теперь пишешь один код, и он работает на всём — и на сканере отпечатка, и на Face ID. Красота же!

Вот, смотри, как это выглядит в коде, простой пример:

val biometricPrompt = BiometricPrompt(activity, executor, object : BiometricPrompt.AuthenticationCallback() {
    override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
        // Ура, пользователь подтвердил личность
    }
})
val promptInfo = BiometricPrompt.PromptInfo.Builder()
    .setTitle("Требуется авторизация")
    .build()
biometricPrompt.authenticate(promptInfo)

Чисто, аккуратно, без костылей. И не надо думать, Samsung у тебя или Xiaomi.

Ну и конечно, Security patches — исправления безопасности приходили регулярно. Не то чтобы это всех спасало, но хоть какое-то спокойствие.

Теперь главный вопрос: какую минимальную версию (minSdk) ставить? Тут, чувак, надо смотреть на свою аудиторию. Если делаешь приложение для госучреждений, где сидят на древних кирпичах, то придется опускаться ниже. Но если цель — нормальный охват без головной боли, то Android 9.0 — это идеальный баланс. Функциональности уже дохуя, а покрытие аудитории всё ещё почти полное. Выбирая её, ты отрезаешь совсем уж древний хлам, но не теряешь полстраны пользователей. Мудрое решение, ядрёна вошь!