From c64fc4eb7d2e12d7b7efd74b57707f675a3f67fe Mon Sep 17 00:00:00 2001 From: Yuriy Elistratov Date: Fri, 14 Aug 2026 18:08:24 +0400 Subject: [PATCH] Updating set of used libraries --- radar/2026-08-12/appsflyer.md | 17 +++++++++++++++++ radar/2026-08-12/camerax.md | 8 ++++++++ radar/2026-08-12/compose_material_2.md | 9 +++++++++ radar/2026-08-12/compose_material_3.md | 9 +++++++++ radar/2026-08-12/ml_kit.md | 16 ++++++++++++++++ radar/2026-08-12/navigation_3.md | 16 ++++++++++++++++ radar/2026-08-12/renovate.md | 9 +++++++++ radar/2026-08-12/rive.md | 16 ++++++++++++++++ radar/2026-08-12/rmr_konfeature.md | 9 +++++++++ radar/2026-08-12/sentry.md | 8 ++++++++ radar/2026-08-12/turbine.md | 15 +++++++++++++++ 11 files changed, 132 insertions(+) create mode 100644 radar/2026-08-12/appsflyer.md create mode 100644 radar/2026-08-12/camerax.md create mode 100644 radar/2026-08-12/compose_material_2.md create mode 100644 radar/2026-08-12/compose_material_3.md create mode 100644 radar/2026-08-12/ml_kit.md create mode 100644 radar/2026-08-12/navigation_3.md create mode 100644 radar/2026-08-12/renovate.md create mode 100644 radar/2026-08-12/rive.md create mode 100644 radar/2026-08-12/rmr_konfeature.md create mode 100644 radar/2026-08-12/sentry.md create mode 100644 radar/2026-08-12/turbine.md diff --git a/radar/2026-08-12/appsflyer.md b/radar/2026-08-12/appsflyer.md new file mode 100644 index 0000000..4cd604a --- /dev/null +++ b/radar/2026-08-12/appsflyer.md @@ -0,0 +1,17 @@ +--- +title: AppsFlyer +ring: trial +quadrant: utilities +tags: [analytics] + +--- + +[Docs](https://dev.appsflyer.com/hc/docs/android-sdk-reference) | [Sources](https://github.com/AppsFlyerSDK/appsflyer-android-sdk) + +Платформа продуктовой аналитики: SDK один раз собирает in-app события, а сервис считает по ним воронки, удержание, когорты и сегменты пользователей. Ценность целиком упирается в качество разметки — без согласованной с продуктом схемы событий отчёты вырождаются в «сколько было установок». Взяли в Trial: как продуктовая аналитика сервис закрывает потребности, но выбор платформы почти всегда за заказчиком, поэтому дефолтом для всех проектов её не делаем. + +## Полезные ссылки + +- [In-app events](https://dev.appsflyer.com/hc/docs/android-send-in-app-events) +- [OneLink deep linking](https://dev.appsflyer.com/hc/docs/android-deep-linking) +- [Data collection and privacy](https://dev.appsflyer.com/hc/docs/android-data-collection) diff --git a/radar/2026-08-12/camerax.md b/radar/2026-08-12/camerax.md new file mode 100644 index 0000000..7892b78 --- /dev/null +++ b/radar/2026-08-12/camerax.md @@ -0,0 +1,8 @@ +--- +title: CameraX +ring: adopt +quadrant: libraries + +--- + +Переводим в Adopt: библиотека прошла проверку на реальных задачах — от сканирования документов и QR до съёмки медиа, совместимость с устройствами разных вендоров держит Google, привязка к `Lifecycle` снимает ручное управление состояниями камеры, а `ImageAnalysis` напрямую стыкуется с [ML Kit](/libraries/ml_kit/). diff --git a/radar/2026-08-12/compose_material_2.md b/radar/2026-08-12/compose_material_2.md new file mode 100644 index 0000000..d3327a4 --- /dev/null +++ b/radar/2026-08-12/compose_material_2.md @@ -0,0 +1,9 @@ +--- +title: Compose Material 2 +ring: hold +quadrant: libraries +tags: [UI] + +--- + +На новых проектах используем [Compose Material 3](/libraries/compose_material_3/) diff --git a/radar/2026-08-12/compose_material_3.md b/radar/2026-08-12/compose_material_3.md new file mode 100644 index 0000000..f5bffaa --- /dev/null +++ b/radar/2026-08-12/compose_material_3.md @@ -0,0 +1,9 @@ +--- +title: Compose Material 3 +ring: adopt +quadrant: libraries +tags: [UI] + +--- + +Переводим в Adopt: это актуальный подход к построению UI на [Compose](/languages-and-frameworks/compose/) — используем по умолчанию на всех новых проектах. diff --git a/radar/2026-08-12/ml_kit.md b/radar/2026-08-12/ml_kit.md new file mode 100644 index 0000000..8284caa --- /dev/null +++ b/radar/2026-08-12/ml_kit.md @@ -0,0 +1,16 @@ +--- +title: ML Kit +ring: trial +quadrant: libraries + +--- + +[Docs](https://developers.google.com/ml-kit) | [Sources](https://github.com/googlesamples/mlkit) + +Набор готовых on-device моделей от Google: распознавание текста, сканирование штрихкодов и QR, детекция лиц, сегментация, перевод. Закрывает типовые «умные» фичи без своей модели, работает на устройстве — без сети и без отправки изображений на сервер, и напрямую стыкуется с [CameraX](/libraries/camerax/) через `ImageAnalysis`. + +## Полезные ссылки + +- [Text recognition v2](https://developers.google.com/ml-kit/vision/text-recognition/v2/android) +- [Google Code Scanner](https://developers.google.com/ml-kit/vision/barcode-scanning/code-scanner) — готовый UI сканера без своих permissions на камеру +- [CameraX+ML Kit для распознавания номера карты в действии](https://habr.com/ru/company/redmadrobot/blog/544318/) diff --git a/radar/2026-08-12/navigation_3.md b/radar/2026-08-12/navigation_3.md new file mode 100644 index 0000000..a948077 --- /dev/null +++ b/radar/2026-08-12/navigation_3.md @@ -0,0 +1,16 @@ +--- +title: Navigation 3 +ring: trial +quadrant: libraries +tags: [navigation] + +--- + +[Docs](https://developer.android.com/guide/navigation/navigation-3) | [Sources](https://github.com/androidx/androidx/tree/androidx-main/navigation3) + +Навигационная библиотека Jetpack, спроектированная под Compose: бэкстеком владеет приложение — это обычный наблюдаемый список типизированных ключей, который рендерит `NavDisplay`. В отличие от [Jetpack Navigation](/libraries/google_navigation/), где стек спрятан за `NavController`, переход становится операцией над списком, поэтому нестандартные сценарии (deeplink в середину стека, замена стека после авторизации, несколько панелей на планшете) выражаются напрямую и проверяются юнит-тестами. Взяли в Trial: библиотека еще недостаточно опробована на рабочих проектах. + +## Полезные ссылки + +- [Navigation 3 recipes](https://github.com/android/nav3-recipes) +- [Migrating to Navigation 3](https://developer.android.com/guide/navigation/navigation-3/migration) diff --git a/radar/2026-08-12/renovate.md b/radar/2026-08-12/renovate.md new file mode 100644 index 0000000..9fc32aa --- /dev/null +++ b/radar/2026-08-12/renovate.md @@ -0,0 +1,9 @@ +--- +title: Mend Renovate +ring: adopt +quadrant: utilities +tags: [quality control, CI] + +--- + +Переводим в Adopt: подход себя оправдал — обновления приезжают небольшими порциями в виде готовых MR'ов, за поиск новых версий отвечает робот, а не человек, поэтому задача «обновить зависимости» перестала копиться до состояния болезненного рефакторинга. diff --git a/radar/2026-08-12/rive.md b/radar/2026-08-12/rive.md new file mode 100644 index 0000000..2c476f8 --- /dev/null +++ b/radar/2026-08-12/rive.md @@ -0,0 +1,16 @@ +--- +title: Rive +ring: trial +quadrant: libraries +tags: [UI] + +--- + +[Docs](https://rive.app/docs/runtimes/android/android) | [Sources](https://github.com/rive-app/rive-android) + +Редактор и рантайм интерактивной векторной анимации: `.riv`-файл содержит стейт-машину с состояниями и переходами, которую собирает дизайнер, а приложение только передаёт входные значения. За счёт этого сложные интерактивные анимации не приходится склеивать кодом из нескольких файлов, как в Lottie, а правка сводится к новому файлу без изменений в коде. Взяли в Trial: результат заметно дешевле в поддержке, но рантайм тянет нативные библиотеки и растит APK, а дизайнер должен работать именно в Rive — экспорта «как есть» из Figma нет. + +## Полезные ссылки + +- [Rive State Machine](https://rive.app/docs/editor/state-machine/state-machine) +- [Rive Android Compose usage](https://rive.app/docs/runtimes/android/compose) diff --git a/radar/2026-08-12/rmr_konfeature.md b/radar/2026-08-12/rmr_konfeature.md new file mode 100644 index 0000000..534cffc --- /dev/null +++ b/radar/2026-08-12/rmr_konfeature.md @@ -0,0 +1,9 @@ +--- +title: RMR Konfeature +ring: adopt +quadrant: libraries +tags: [RMR libs] + +--- + +Переводим в Adopt: библиотека закрыла свою задачу на проектах — все фича-тогглы объявлены в одном месте с типом, значением по умолчанию и описанием вместо строковых ключей, разбросанных по коду, источник значений подменяется ([Firebase Remote Config](/utilities/firebase_remote_config/), локальный сторедж, заглушка в тестах), а интеграция с [RMR Debug Panel](/libraries/rmr_debug_panel/) позволяет тестировщику переключать фичи на устройстве без пересборки. diff --git a/radar/2026-08-12/sentry.md b/radar/2026-08-12/sentry.md new file mode 100644 index 0000000..b131fd4 --- /dev/null +++ b/radar/2026-08-12/sentry.md @@ -0,0 +1,8 @@ +--- +title: Sentry +ring: adopt +quadrant: utilities + +--- + +Переводим в Adopt: на проектах, где Google-сервисы недоступны или заказчик требует хранить данные в своём контуре, Sentry стал основным вариантом вместо [Firebase Crashlytics](/utilities/firebase_crashlytics/) — есть self-hosted, работает без GMS, кроме крашей собирает обработанные исключения, ANR и performance-трейсы, а Gradle-плагин сам загружает mapping-файлы. diff --git a/radar/2026-08-12/turbine.md b/radar/2026-08-12/turbine.md new file mode 100644 index 0000000..0cd0a28 --- /dev/null +++ b/radar/2026-08-12/turbine.md @@ -0,0 +1,15 @@ +--- +title: Turbine +ring: trial +quadrant: libraries +tags: [unit testing] + +--- + +[Docs](https://cashapp.github.io/turbine/docs/1.x/) | [Sources](https://github.com/cashapp/turbine) + +Небольшая библиотека для тестирования `Flow` из [kotlinx.coroutines](/libraries/kotlinx.coroutines/): вместо ручного `launch`/`cancel` и сбора эмиссий в список тест пишется последовательно через `awaitItem()`, `awaitComplete()`, `awaitError()`, а неразобранные события роняют тест, а не проходят молча. Хорошо ложится на проверку состояния `ViewModel` и не конфликтует с [Kotest assertions](/libraries/kotest-assertion/). Взяли в Trial: тесты на `Flow` становятся заметно чище, но опыта пока не на всех проектах. + +## Полезные ссылки + +- [Testing Kotlin flows on Android](https://developer.android.com/kotlin/flow/test)