Room TypeConverters в 2026 году: как хранить enum'ы, даты и списки, не повреждая схему
Практическое руководство по Room TypeConverters на Android — enum'ы, Instant/LocalDate и списки — а также ошибки, которые превращают конвертер в незаметный баг повреждения данных.
R8 и ProGuard для Kotlin, Room и Compose: сбой, который случается только в релизе
Почему приложение Android на Room + Compose идеально работает в debug и падает в продакшене, и какие именно правила keep R8/ProGuard ловят это раньше пользователя.
In-App Review API в Android: как просить оценку, не раздражая пользователя
Практическое руководство по In-App Review API от Google — как он на самом деле работает, когда его запускать и почему обычный попап «оцените нас» незаметно портит вашу оценку в Play Store.
Ярлыки приложений Android и плитка быстрых настроек: логирование воды без открытия приложения
Практическое руководство по динамическому ShortcutManager API и TileService в Android — как позволить действию в один тап полностью обойти приложение, и о подводных камнях, на которых спотыкается большинство реализаций.
Типы foreground-сервисов в Android в 2026 году: как выбрать тот, что реально подходит вашей функции
Практическое руководство по ограничениям типов foreground-сервисов Android — dataSync, mediaPlayback, specialUse, shortService — и как выбрать правильный, не получив ни принудительной остановки, ни отказа в проверке.
StateFlow против SharedFlow в Jetpack Compose: моделируем UI-состояние без бага повторного воспроизведения
Когда использовать StateFlow, а когда SharedFlow в Compose ViewModel — и баг одноразового события, который возникает, если их перепутать.
Индексы базы данных Room в 2026 году: находим по-настоящему медленный запрос и исправляем его
Практическое руководство по индексированию базы Room/SQLite на Android — чтение EXPLAIN QUERY PLAN, добавление @Index без угадывания и ошибки, которые незаметно сводят индекс на нет.
@Relation в Room: запрос данных «один ко многим» на Android без N+1-запросов
Практическое руководство по аннотации @Relation в Room — моделирование данных «один ко многим», таких как категории и записи, без N+1-запросов и ручных join'ов.
Типобезопасная навигация в Jetpack Compose: маршруты как данные, а не строки
Как заменить строковые маршруты Compose Navigation сериализуемыми Kotlin-объектами — типобезопасные аргументы, вложенные графы и deep links, переживающие рефакторинг.
Live Updates в Android 16: таймер фокусировки Mintly теперь на экране блокировки
Практическое руководство по уведомлениям Android 16, ориентированным на прогресс — сегменты ProgressStyle, продвинутые постоянные уведомления и что они дают работающему таймеру Pomodoro.
Каналы уведомлений Android в 2026 году: как задать уровни важности, которые пользователи не отключат
Практическое руководство по каналам уведомлений Android — уровни важности, группы каналов, почему настройки замораживаются после создания и как мигрировать, не потеряв доверие пользователя.
Paging 3 и Room: как сохранить плавность растущего списка транзакций в Android-приложении в 2026
Как постранично загружать список транзакций на Room с помощью Jetpack Paging 3, чтобы годы данных оставались плавными в Compose — без RemoteMediator, без сети, просто правильно устроенная локальная база данных.
Переход Android на страницы памяти 16 КБ: что реально ломается и как проверить свой APK
Google теперь требует, чтобы Android-приложения поддерживали страницы памяти 16 КБ. Что это значит на практике, почему ломаются именно нативные библиотеки и как проверить, что у тебя всё в порядке.
Структурированная конкурентность в Android в 2026: области видимости, отмена и утечки, которых она не допускает
Практическое руководство по структурированной конкурентности Kotlin в Android — viewModelScope против lifecycleScope, почему отмена распространяется, и какие утечки корутин это тихо предотвращает.
Recomposition в Jetpack Compose: что на самом деле его вызывает и почему я перестал гадать
Практическое руководство по recomposition в Jetpack Compose в 2026 году — стабильность типов, нестабильные лямбды, ключи LazyColumn и чтение отчёта метрик компилятора.
Полнотекстовый поиск в Room: добавляем мгновенный поиск в local-first Android-приложение в 2026
Практическое руководство по поддержке FTS4 в Room на Android — создание виртуальной таблицы поиска, синхронизация через триггеры и почему FTS5 требует ручной миграции.
Шифрование базы данных Room в 2026: SQLCipher, Keystore и миграция без потери данных
Практическое руководство по шифрованию базы данных Room/SQLite в состоянии покоя на Android с помощью SQLCipher — управление ключами через Keystore, разовая миграция и реальная цена по производительности.
Резервное копирование локальных данных в Android в 2026 году: экспорт через SAF, Auto Backup и восстановление, которому можно доверять
Как local-first приложения для Android резервируют данные пользователя без сервера: экспорт/импорт через SAF, Auto Backup for App Data и восстановление, которое проверяет данные перед перезаписью.
Тестирование local-first Android-приложения в 2026 году: Room, Flow и Compose UI-тесты, которые ловят реальные баги
Практическая стратегия тестирования для local-first Android-приложений в 2026 году — DAO-тесты с Room в памяти, Turbine для Flow и те немногие Compose UI-тесты, которые действительно стоит писать.
Биометрическая аутентификация в Android в 2026 году: BiometricPrompt, Keystore и блокировка local-first приложения
Практическое руководство по androidx.biometric в Android — BiometricPrompt, ключи на основе CryptoObject, резервный вариант с учётными данными устройства и ошибки, из-за которых проверка отпечатка не защищает ничего.
Доступность на Android в 2026 году: чек-лист по TalkBack и семантике Compose, который реально работает
Практический чек-лист по доступности Android на 2026 год — TalkBack, семантика Compose, размер зон касания и тестовый прогон, который я делаю на каждом экране перед релизом.
Health Connect в Android в 2026 году: как читать и писать данные, не отказываясь от local-first
Практическое руководство по API Health Connect в Android в 2026 году — разрешения, фоновое чтение и почему local-first-приложениям стоит относиться к нему как к опциональному источнику, а не как к истине.
Edge-to-edge и predictive back в Android в 2026 году: что теперь обязательно и как не сломать интерфейс
Edge-to-edge теперь обязателен для API 35+, а predictive back стал жестом по умолчанию. Практическое руководство по insets в Compose, WindowInsets и PredictiveBackHandler.
Jetpack DataStore в 2026 году: переход с SharedPreferences без потери ни одной настройки
Практическое руководство по переходу с SharedPreferences на Jetpack DataStore на Android — асинхронные ловушки, путь миграции, сохраняющий существующие значения, и как это протестировать.
Сканирование штрихкодов с ML Kit на Android в 2026 году: как Stocky добавляет товар в кладовую меньше чем за секунду
Практическое руководство 2026 года по сканированию штрихкодов на устройстве с ML Kit и CameraX: настройка форматов, офлайн-поиск товара и математика частичного расхода в приложении для кладовой.
Миграции баз данных Room в 2026 году: как менять схему, не теряя ни одной строки
Практическое руководство по миграциям баз данных Room на Android — AutoMigration, написанные вручную объекты Migration и как протестировать миграцию до того, как её найдут ваши пользователи.
Baseline Profiles в Android: что на самом деле влияет на время холодного запуска в 2026 году
Практическое руководство по Android Baseline Profiles — генерация через Macrobenchmark, подключение в Gradle, честное измерение выигрыша и ещё три вещи, которые сильнее влияют на холодный запуск.
Jetpack Glance в 2026 году: как создать виджет для главного экрана, который никогда не врёт о ваших данных
Практическое руководство по виджетам Jetpack Glance на Android — состояние, обработка нажатий и ловушка квоты обновлений, из-за которой виджеты показывают устаревшие данные.
Разработка календаря приверженности OldSchool: превращаем отметки о приёме в надёжный день
Месячный календарь приверженности выглядит как одна цветная точка на день. Вот модель событий, правила дневного статуса и математика своевременности — всё на устройстве.
Как устроен Subly: календарная математика за датами продления подписок
Предсказать дату следующего списания по подписке кажется тривиальным — пока не столкнёшься с биллингом в конце месяца, високосными годами и переходом из пробного периода. Вот как Subly решает это прямо на устройстве.
Разработка Mintly: как удержать точность таймера фокуса, когда Android хочет убить процесс
У работающего таймера Pomodoro проблема с надёжностью сложнее, чем у одноразового напоминания. Вот как Mintly переживает режим Doze, гибель процесса и дрейф при выключенном экране благодаря foreground-сервису и времени окончания по системным часам.
Разработка Granyn: трекер бюджета без входа в банк, всего на трёх таблицах
Как Granyn отслеживает расходы в разных валютах и распознаёт повторяющиеся счета, не подключая ни одного банковского аккаунта — схема Room под капотом и компромиссы, которые она навязывает.
Правильные действия в уведомлениях Android: отметить приём дозы без открытия приложения
Практическое руководство по кнопкам действий в уведомлениях Android — PendingIntent, ограничение activity-трамплина, goAsync() и безопасное обновление состояния Room.
Как я делал Stocky: предсказать, что заканчивается на вашей кухне — прямо на устройстве
Как Stocky превращает скан штрихкода и немного истории использования в список покупок, который появляется прежде, чем у вас что-то закончится — и вся математика, и все данные остаются на вашем телефоне.
OCR с приоритетом приватности на Android: как Subly читает счета без облака
Практическое руководство 2026 года по OCR на устройстве под Android с ML Kit Text Recognition — настройка, код и приёмы извлечения полей, которые держат данные пользователей вне ваших серверов.
Надёжные напоминания на Android в 2026 году: WorkManager, точные будильники и новые правила батареи
Как в 2026 году выпускать напоминания на Android, которые действительно срабатывают — WorkManager против AlarmManager, SCHEDULE_EXACT_ALARM, POST_NOTIFICATIONS и причуды производителей, которые всё ещё кусаются.
Local-first на Android в 2026 году: SQLite, Room и хранение пользовательских данных на устройстве
Руководство 2026 года по созданию local-first приложений для Android на Room и SQLite — проектирование схемы, миграции, WAL, экспорт и когда (и когда не стоит) добавлять синхронизацию.
Как я выпускаю Android-приложения в одиночку в 2026 году
Реальный сквозной план запуска Android-приложения на Kotlin + Compose в одиночку в 2026 году — рамки, разработка, страница в Play Store и скучные детали, которые решают, выйдете ли вы вообще.