Перейти к содержимому
Все записи

#engineering

39 записей с тегом engineering.

MFKAPPS 4 мин чтения

Room TypeConverters в 2026 году: как хранить enum'ы, даты и списки, не повреждая схему

Практическое руководство по Room TypeConverters на Android — enum'ы, Instant/LocalDate и списки — а также ошибки, которые превращают конвертер в незаметный баг повреждения данных.

#android #engineering #room
MFKAPPS 4 мин чтения

R8 и ProGuard для Kotlin, Room и Compose: сбой, который случается только в релизе

Почему приложение Android на Room + Compose идеально работает в debug и падает в продакшене, и какие именно правила keep R8/ProGuard ловят это раньше пользователя.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

In-App Review API в Android: как просить оценку, не раздражая пользователя

Практическое руководство по In-App Review API от Google — как он на самом деле работает, когда его запускать и почему обычный попап «оцените нас» незаметно портит вашу оценку в Play Store.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Ярлыки приложений Android и плитка быстрых настроек: логирование воды без открытия приложения

Практическое руководство по динамическому ShortcutManager API и TileService в Android — как позволить действию в один тап полностью обойти приложение, и о подводных камнях, на которых спотыкается большинство реализаций.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

Типы foreground-сервисов в Android в 2026 году: как выбрать тот, что реально подходит вашей функции

Практическое руководство по ограничениям типов foreground-сервисов Android — dataSync, mediaPlayback, specialUse, shortService — и как выбрать правильный, не получив ни принудительной остановки, ни отказа в проверке.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

StateFlow против SharedFlow в Jetpack Compose: моделируем UI-состояние без бага повторного воспроизведения

Когда использовать StateFlow, а когда SharedFlow в Compose ViewModel — и баг одноразового события, который возникает, если их перепутать.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

Индексы базы данных Room в 2026 году: находим по-настоящему медленный запрос и исправляем его

Практическое руководство по индексированию базы Room/SQLite на Android — чтение EXPLAIN QUERY PLAN, добавление @Index без угадывания и ошибки, которые незаметно сводят индекс на нет.

#android #engineering #room
MFKAPPS 4 мин чтения

@Relation в Room: запрос данных «один ко многим» на Android без N+1-запросов

Практическое руководство по аннотации @Relation в Room — моделирование данных «один ко многим», таких как категории и записи, без N+1-запросов и ручных join'ов.

#android #engineering #room
MFKAPPS 4 мин чтения

Типобезопасная навигация в Jetpack Compose: маршруты как данные, а не строки

Как заменить строковые маршруты Compose Navigation сериализуемыми Kotlin-объектами — типобезопасные аргументы, вложенные графы и deep links, переживающие рефакторинг.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

Live Updates в Android 16: таймер фокусировки Mintly теперь на экране блокировки

Практическое руководство по уведомлениям Android 16, ориентированным на прогресс — сегменты ProgressStyle, продвинутые постоянные уведомления и что они дают работающему таймеру Pomodoro.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

Каналы уведомлений Android в 2026 году: как задать уровни важности, которые пользователи не отключат

Практическое руководство по каналам уведомлений Android — уровни важности, группы каналов, почему настройки замораживаются после создания и как мигрировать, не потеряв доверие пользователя.

#android #engineering #notifications
MFKAPPS 4 мин чтения

Paging 3 и Room: как сохранить плавность растущего списка транзакций в Android-приложении в 2026

Как постранично загружать список транзакций на Room с помощью Jetpack Paging 3, чтобы годы данных оставались плавными в Compose — без RemoteMediator, без сети, просто правильно устроенная локальная база данных.

#android #engineering #room
MFKAPPS 4 мин чтения

Переход Android на страницы памяти 16 КБ: что реально ломается и как проверить свой APK

Google теперь требует, чтобы Android-приложения поддерживали страницы памяти 16 КБ. Что это значит на практике, почему ломаются именно нативные библиотеки и как проверить, что у тебя всё в порядке.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Структурированная конкурентность в Android в 2026: области видимости, отмена и утечки, которых она не допускает

Практическое руководство по структурированной конкурентности Kotlin в Android — viewModelScope против lifecycleScope, почему отмена распространяется, и какие утечки корутин это тихо предотвращает.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Recomposition в Jetpack Compose: что на самом деле его вызывает и почему я перестал гадать

Практическое руководство по recomposition в Jetpack Compose в 2026 году — стабильность типов, нестабильные лямбды, ключи LazyColumn и чтение отчёта метрик компилятора.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Полнотекстовый поиск в Room: добавляем мгновенный поиск в local-first Android-приложение в 2026

Практическое руководство по поддержке FTS4 в Room на Android — создание виртуальной таблицы поиска, синхронизация через триггеры и почему FTS5 требует ручной миграции.

#android #engineering #room
MFKAPPS 5 мин чтения

Шифрование базы данных Room в 2026: SQLCipher, Keystore и миграция без потери данных

Практическое руководство по шифрованию базы данных Room/SQLite в состоянии покоя на Android с помощью SQLCipher — управление ключами через Keystore, разовая миграция и реальная цена по производительности.

#android #engineering #privacy
MFKAPPS 4 мин чтения

Резервное копирование локальных данных в Android в 2026 году: экспорт через SAF, Auto Backup и восстановление, которому можно доверять

Как local-first приложения для Android резервируют данные пользователя без сервера: экспорт/импорт через SAF, Auto Backup for App Data и восстановление, которое проверяет данные перед перезаписью.

#android #engineering #privacy
MFKAPPS 5 мин чтения

Тестирование local-first Android-приложения в 2026 году: Room, Flow и Compose UI-тесты, которые ловят реальные баги

Практическая стратегия тестирования для local-first Android-приложений в 2026 году — DAO-тесты с Room в памяти, Turbine для Flow и те немногие Compose UI-тесты, которые действительно стоит писать.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Биометрическая аутентификация в Android в 2026 году: BiometricPrompt, Keystore и блокировка local-first приложения

Практическое руководство по androidx.biometric в Android — BiometricPrompt, ключи на основе CryptoObject, резервный вариант с учётными данными устройства и ошибки, из-за которых проверка отпечатка не защищает ничего.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

Доступность на Android в 2026 году: чек-лист по TalkBack и семантике Compose, который реально работает

Практический чек-лист по доступности Android на 2026 год — TalkBack, семантика Compose, размер зон касания и тестовый прогон, который я делаю на каждом экране перед релизом.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Health Connect в Android в 2026 году: как читать и писать данные, не отказываясь от local-first

Практическое руководство по API Health Connect в Android в 2026 году — разрешения, фоновое чтение и почему local-first-приложениям стоит относиться к нему как к опциональному источнику, а не как к истине.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Edge-to-edge и predictive back в Android в 2026 году: что теперь обязательно и как не сломать интерфейс

Edge-to-edge теперь обязателен для API 35+, а predictive back стал жестом по умолчанию. Практическое руководство по insets в Compose, WindowInsets и PredictiveBackHandler.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

Jetpack DataStore в 2026 году: переход с SharedPreferences без потери ни одной настройки

Практическое руководство по переходу с SharedPreferences на Jetpack DataStore на Android — асинхронные ловушки, путь миграции, сохраняющий существующие значения, и как это протестировать.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Сканирование штрихкодов с ML Kit на Android в 2026 году: как Stocky добавляет товар в кладовую меньше чем за секунду

Практическое руководство 2026 года по сканированию штрихкодов на устройстве с ML Kit и CameraX: настройка форматов, офлайн-поиск товара и математика частичного расхода в приложении для кладовой.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

Миграции баз данных Room в 2026 году: как менять схему, не теряя ни одной строки

Практическое руководство по миграциям баз данных Room на Android — AutoMigration, написанные вручную объекты Migration и как протестировать миграцию до того, как её найдут ваши пользователи.

#android #engineering #room
MFKAPPS 4 мин чтения

Baseline Profiles в Android: что на самом деле влияет на время холодного запуска в 2026 году

Практическое руководство по Android Baseline Profiles — генерация через Macrobenchmark, подключение в Gradle, честное измерение выигрыша и ещё три вещи, которые сильнее влияют на холодный запуск.

#android #engineering #kotlin
MFKAPPS 5 мин чтения

Jetpack Glance в 2026 году: как создать виджет для главного экрана, который никогда не врёт о ваших данных

Практическое руководство по виджетам Jetpack Glance на Android — состояние, обработка нажатий и ловушка квоты обновлений, из-за которой виджеты показывают устаревшие данные.

#android #engineering #kotlin
MFKAPPS 4 мин чтения

Разработка календаря приверженности OldSchool: превращаем отметки о приёме в надёжный день

Месячный календарь приверженности выглядит как одна цветная точка на день. Вот модель событий, правила дневного статуса и математика своевременности — всё на устройстве.

#android #engineering #room
MFKAPPS 4 мин чтения

Как устроен Subly: календарная математика за датами продления подписок

Предсказать дату следующего списания по подписке кажется тривиальным — пока не столкнёшься с биллингом в конце месяца, високосными годами и переходом из пробного периода. Вот как Subly решает это прямо на устройстве.

#android #engineering #subscriptions
MFKAPPS 4 мин чтения

Разработка Mintly: как удержать точность таймера фокуса, когда Android хочет убить процесс

У работающего таймера Pomodoro проблема с надёжностью сложнее, чем у одноразового напоминания. Вот как Mintly переживает режим Doze, гибель процесса и дрейф при выключенном экране благодаря foreground-сервису и времени окончания по системным часам.

#android #engineering #mobile
MFKAPPS 4 мин чтения

Разработка Granyn: трекер бюджета без входа в банк, всего на трёх таблицах

Как Granyn отслеживает расходы в разных валютах и распознаёт повторяющиеся счета, не подключая ни одного банковского аккаунта — схема Room под капотом и компромиссы, которые она навязывает.

#android #engineering #privacy
MFKAPPS 4 мин чтения

Правильные действия в уведомлениях Android: отметить приём дозы без открытия приложения

Практическое руководство по кнопкам действий в уведомлениях Android — PendingIntent, ограничение activity-трамплина, goAsync() и безопасное обновление состояния Room.

#android #engineering #notifications
MFKAPPS 3 мин чтения

Как я делал Stocky: предсказать, что заканчивается на вашей кухне — прямо на устройстве

Как Stocky превращает скан штрихкода и немного истории использования в список покупок, который появляется прежде, чем у вас что-то закончится — и вся математика, и все данные остаются на вашем телефоне.

#android #engineering #privacy
MFKAPPS 7 мин чтения

OCR с приоритетом приватности на Android: как Subly читает счета без облака

Практическое руководство 2026 года по OCR на устройстве под Android с ML Kit Text Recognition — настройка, код и приёмы извлечения полей, которые держат данные пользователей вне ваших серверов.

#android #engineering #privacy
MFKAPPS 4 мин чтения

Как я создавал Hydrame: умные напоминания без занудства

Приложение-напоминалка живёт или умирает благодаря своим уведомлениям. Рассказываю, как я спроектировал уведомления Hydrame, чтобы они мягко подталкивали вас — и подстраивались под ваш день, а не боролись с ним.

#hydrame #engineering #ux
MFKAPPS 7 мин чтения

Надёжные напоминания на Android в 2026 году: WorkManager, точные будильники и новые правила батареи

Как в 2026 году выпускать напоминания на Android, которые действительно срабатывают — WorkManager против AlarmManager, SCHEDULE_EXACT_ALARM, POST_NOTIFICATIONS и причуды производителей, которые всё ещё кусаются.

#android #engineering #mobile
MFKAPPS 7 мин чтения

Local-first на Android в 2026 году: SQLite, Room и хранение пользовательских данных на устройстве

Руководство 2026 года по созданию local-first приложений для Android на Room и SQLite — проектирование схемы, миграции, WAL, экспорт и когда (и когда не стоит) добавлять синхронизацию.

#android #engineering #privacy
MFKAPPS 3 мин чтения

Преимущество local-first приложений в приватности

Самые приватные данные — те, которые вы вообще не собираете. Local-first — это не просто выбор архитектуры, а самая простая политика конфиденциальности, какая только бывает.

#privacy #engineering