На этой неделе прошла I/O 2025 и главное на ней было посвящено ИИ, но и для Android-разработчиков есть много обновлений — новая навигация Jetpack Navigation 3, новые функции в Android Studio, обновления Google Play и т.д. Кроме этого новые релизы Flutter и Dart, плагин KMP для IntelliJ IDEA и Android Studio, большое обновление DivKit, тестирование без инцидентов в проде и многое другое. Заходите!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS
• Когда отладчик Swift лжет: скрытая стоимость компиляторных оптимизаций
• Работа в Aviasales, уход в сторону от iOS, поиск информации
• TOP 10 горячих клавиш для Xcode
• Swift Plugins: ускоряем сборку проекта
• Объединяем Combine и Swift Concurrency
•
SQLite Databases in App Group Containers: Just Don’t
•
Using Model Context Protocol in iOS apps
•
Let’s Build: PrettyPrint, a Better CLI Output
•
Institutional Purchases: Understanding and Detecting
•
Mesh gradients in SwiftUI
•
When the Swift Debugger Lies: The Hidden Cost of Compiler Optimizations
•
SwiftUI: Drawing with PencilKit. Basic To (A Little) Advance
•
What the Diff? Understanding SwiftUI’s Diffing Engine
•
Combining gestures and animations with SwiftUI
•
Exploring concurrency changes in Swift 6.2
•
Simplifying Dynamic Layouts with ViewThatFits in SwiftUI
•
Experience the Charm of Swift: One-Click DataFrame Export
•
Stop using Timer.publish in your SwiftUI views
•
Mastering Swift Concurrency
•
Unifying form validation using TCA
•
Graph-Based State Management in iOS Application
•
System Design: Design PullToRefresh for Large DataSets
•
The evolution of native engineering at Tripadvisor: Part 1
•
Colibri: The Fully Declarative And Turing-Complete Language Lurking Inside Swift’s Type System
•
10 Hidden Xcode Features That Will Boost Your Productivity
•
App Launch Time Optimization Techniques — iOS Development
•
Building Scrollable Tab View Using SwiftUI
•
How to Cancel a Task at anytime in Swift Concurrency
•
Mastering Custom Container Views in SwiftUI
•
SwiftUI — Task Management App UI
•
Rosalind — анализ артефактов Xcode
•
Xtool — кроссплатформенная замена Xcode
•
ErrorKit — сообщения об ошибках Swift, удобные для человека
Android
• Видим невидимое: контроль качества Android-библиотек через объектив AppTracer Lite SDK
• 10 трюков Jetpack Compose, о которых вы, вероятно, не знаете
• Мечтают ли андроиды о Robolectric? Разбираем фреймворк по косточкам
• Открываем Konfeature, нашу open-source библиотеку для удобной работы с Feature Flags
• Контракты в Kotlin или как заключить сделку с совестью
• Google I/O 2025. Что нового в Android
• Что нового в Jetpack Compose
• Что нового в Google Play
• Android Studio получает больше ИИ-функций
• Android XR получил модных партнеров и Android XR SDK Developer Preview 2
• Google анонсирует Jetpack Navigation 3
• Развеиваем мифы о Stability в Compose: оптимизации Strong Skipping
• Память в Android, утечки и OOM
• Взлом и защита Android-приложений
• Моментальный запуск: как VK Клипы работают с плейбэком видео на Android
•
Merge Your Computations
•
UI layer architecture for persistent UI elements
•
Implementing Passkeys in Android — A Full-Stack Guide
•
Eliminating Array Bounds Checks
•
Exploring Jetpack Compose for Widgets with Glance
•
Deep dive into annotations in Jetpack Compose
•
I Got an Offer from PayPal as an Android Developer — Here’s How I Cracked the Interview
•
How to Create a Custom Corner Badge in Jetpack Compose
•
Google Play personal account wasted 42 days of my life
•
Mastering ProGuard in Android Multi-Module Projects
•
Handling Backpressure in Kotlin Flows — buffer, conflate, collectLatest, debounce, sample and throttleFirst
•
Retrofit 3.0.0 is Here: Less Boilerplate, More Buzz
•
Material 3 Expressive Design: A New Era
•
Most Android Apps Break This One Clean Code Rule!
•
Build Sawa Community application using Android Studio, Kotlin, MVVM
•
KotlinConf 2025 Unpacked: Upcoming Language Features, AI-Powered Development, and Kotlin Multiplatform Upgrades
•
Building a Clean Domain-Driven Architecture in Android
•
Jetbrains releases an official LSP for Kotlin
•
What’s new in Android
•
What’s new in Google Play
•
What’s new in Android development tools
•
Adaptive Android development makes your app shine across devices
•
Seamless video capture, editing and playback with CameraX and Media3
•
Building differentiated apps for Android XR with 3D content
•
Unlock user productivity with desktop windowing and stylus support
•
Finding the perfect Gemini fit on Android
•
Best practices for using web in your Android apps
•
New in-car app experiences
•
Mastering text input in Compose
•
Build next-level UX with Material 3 Expressive
•
Android notifications and Live Updates
•
Google Home APIs, tools, and Gemini capabilities for your apps
•
How You Get Your Compose UI From Hundreds of Recompositions to Almost Zero
•
KotlinConf’25 – Day 1 Livestream (Feat. Keynote)
•
Gradle Configuration Cache: 2x faster, 4x smaller, and ready for Gradle 9.0
•
Jetpack Compose Design Patterns — лучшие паттерны проектирования
•
Androidify — конструктор ботов Android с новейшими технологиями
•
ZenTone — звуковой сигнал нужной частоты и громкости в Android
•
WikWok — Википедия в стиле TikTok
Кроссплатформа
• Новый плагин KMP для IntelliJ IDEA и Android Studio
• Нативная мощь: Flutter SDK на C++ ядре. Часть 1
• Как я пытался спасти аккаунт разработчика в Google Play и в итоге сделал крипто-приложение
• Flutter 3.32 — Что нового во Flutter?
• Dart 3.8 — что нового в Dart?
• KStorage — единый подход к key-value хранилищам на Kotlin Multiplatform
• Аналитика во Flutter-приложениях: Какие события отслеживать, примеры архитектур и настройка Firebase
• Generics в Dart
• Настраиваем навигацию во Flutter-приложении через AutoRoute
•
Inspect Flutter API Calls in Chrome DevTools
•
6 weeks into React Native dev. App works. I don’t.
•
Flutter Push Notifications: A Complete Guide (Android + iOS)
•
Dart & Flutter momentum at Google I/O 2025
•
A Pragmatic Guide to Migrating from Native to React Native (or choosing not to)
•
Flutter on ARMv6
•
Demystify KMP builds and structure
Разработка
• Нам не нужно больше приложений — нам нужны лучшие приложения
• Большое обновление DivKit: визуальный редактор, поддержка форм, аниматоры
• Stitch — новый ИИ-генератор дизайна от Google
• Это не шутка: чем «Аврора» уже круче Android
• Google I/O 2025 Keynote: ожидания vs реальность. И первые впечатления, конечно
• Тестирование без инцидентов в проде. Утопия или реальность?
• Стажировок мало, а джуны должны уметь всё: как становятся ИТ-специалистом в 2025 году
• Как тимлиду принимать сложные решения
• Язык программирования будущего – английский: визионерство, LLM, новая парадигма
• Как собеседовать мобильных инженеров? Системный дизайн спешит на помощь! (все собеседования)
• Проводим и проходим Mobile System Design-интервью
• Что такое Language Server Protocol и зачем он нужен
•
The Dumbest Move in Tech Right Now: Laying Off Developers Because of AI
•
Coding Without a Laptop — Two Weeks with AR Glasses and Linux on Android
Аналитика, маркетинг и монетизация
• Fortnite вернулся в App Store
• Spotify заявляет, что поддержка внешних платежей на iOS уже увеличила количество подписок
• Маркетологи в мобайле: Елена Зайцева (СМО Достависта)
•
Duolingo’s small UI switch that changes everything
AI, Устройства, IoT
• На входе аудио, на выходе — саммари. Собираем локальный транскрибатор из бесплатного софта
• Знакомьтесь, FRIDA. Открытая эмбеддинг-модель для русского языка
• Как я взломал миллионы умных весов через уязвимости в API и железе
• Умный дом без боли: интеграция нейросетей в Node-RED шаг за шагом
• E-paper Arduino термометр на ESP-IDF
• Умная квартира с видом на Енисей: есть ли смысл в XIOT?
• Хочу умный дом, умнее меня: история одного концепта
• OpenAI покупает компанию Джони Айва
• Vertex AI превращается в Firebase AI Logic
• Google выпустил приложение NotebookLM
• GitHub запустил нового ИИ-агента в Copilot
• OpenAI запускает Codex, агента по разработке, в ChatGPT
• MagicMirror — умное зеркало своими руками
•
How Google is accelerating code migrations with AI
•
How Pinterest Accelerates ML Feature Iterations via Effective Backfill
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS• Когда отладчик Swift лжет: скрытая стоимость компиляторных оптимизаций
• Работа в Aviasales, уход в сторону от iOS, поиск информации
• TOP 10 горячих клавиш для Xcode
• Swift Plugins: ускоряем сборку проекта
• Объединяем Combine и Swift Concurrency
•
SQLite Databases in App Group Containers: Just Don’t•
Using Model Context Protocol in iOS apps•
Let’s Build: PrettyPrint, a Better CLI Output•
Institutional Purchases: Understanding and Detecting•
Mesh gradients in SwiftUI•
When the Swift Debugger Lies: The Hidden Cost of Compiler Optimizations•
SwiftUI: Drawing with PencilKit. Basic To (A Little) Advance•
What the Diff? Understanding SwiftUI’s Diffing Engine•
Combining gestures and animations with SwiftUI•
Exploring concurrency changes in Swift 6.2•
Simplifying Dynamic Layouts with ViewThatFits in SwiftUI•
Experience the Charm of Swift: One-Click DataFrame Export•
Stop using Timer.publish in your SwiftUI views•
Mastering Swift Concurrency•
Unifying form validation using TCA•
Graph-Based State Management in iOS Application•
System Design: Design PullToRefresh for Large DataSets•
The evolution of native engineering at Tripadvisor: Part 1•
Colibri: The Fully Declarative And Turing-Complete Language Lurking Inside Swift’s Type System•
10 Hidden Xcode Features That Will Boost Your Productivity•
App Launch Time Optimization Techniques — iOS Development•
Building Scrollable Tab View Using SwiftUI•
How to Cancel a Task at anytime in Swift Concurrency•
Mastering Custom Container Views in SwiftUI•
SwiftUI — Task Management App UI•
Rosalind — анализ артефактов Xcode•
Xtool — кроссплатформенная замена Xcode•
ErrorKit — сообщения об ошибках Swift, удобные для человека
Android• Видим невидимое: контроль качества Android-библиотек через объектив AppTracer Lite SDK
• 10 трюков Jetpack Compose, о которых вы, вероятно, не знаете
• Мечтают ли андроиды о Robolectric? Разбираем фреймворк по косточкам
• Открываем Konfeature, нашу open-source библиотеку для удобной работы с Feature Flags
• Контракты в Kotlin или как заключить сделку с совестью
• Google I/O 2025. Что нового в Android
• Что нового в Jetpack Compose
• Что нового в Google Play
• Android Studio получает больше ИИ-функций
• Android XR получил модных партнеров и Android XR SDK Developer Preview 2
• Google анонсирует Jetpack Navigation 3
• Развеиваем мифы о Stability в Compose: оптимизации Strong Skipping
• Память в Android, утечки и OOM
• Взлом и защита Android-приложений
• Моментальный запуск: как VK Клипы работают с плейбэком видео на Android
•
Merge Your Computations•
UI layer architecture for persistent UI elements•
Implementing Passkeys in Android — A Full-Stack Guide•
Eliminating Array Bounds Checks•
Exploring Jetpack Compose for Widgets with Glance•
Deep dive into annotations in Jetpack Compose•
I Got an Offer from PayPal as an Android Developer — Here’s How I Cracked the Interview•
How to Create a Custom Corner Badge in Jetpack Compose•
Google Play personal account wasted 42 days of my life•
Mastering ProGuard in Android Multi-Module Projects•
Handling Backpressure in Kotlin Flows — buffer, conflate, collectLatest, debounce, sample and throttleFirst•
Retrofit 3.0.0 is Here: Less Boilerplate, More Buzz•
Material 3 Expressive Design: A New Era•
Most Android Apps Break This One Clean Code Rule!•
Build Sawa Community application using Android Studio, Kotlin, MVVM•
KotlinConf 2025 Unpacked: Upcoming Language Features, AI-Powered Development, and Kotlin Multiplatform Upgrades•
Building a Clean Domain-Driven Architecture in Android•
Jetbrains releases an official LSP for Kotlin•
What’s new in Android•
What’s new in Google Play•
What’s new in Android development tools•
Adaptive Android development makes your app shine across devices•
Seamless video capture, editing and playback with CameraX and Media3•
Building differentiated apps for Android XR with 3D content•
Unlock user productivity with desktop windowing and stylus support•
Finding the perfect Gemini fit on Android•
Best practices for using web in your Android apps•
New in-car app experiences•
Mastering text input in Compose•
Build next-level UX with Material 3 Expressive•
Android notifications and Live Updates•
Google Home APIs, tools, and Gemini capabilities for your apps•
How You Get Your Compose UI From Hundreds of Recompositions to Almost Zero•
KotlinConf’25 – Day 1 Livestream (Feat. Keynote)•
Gradle Configuration Cache: 2x faster, 4x smaller, and ready for Gradle 9.0•
Jetpack Compose Design Patterns — лучшие паттерны проектирования•
Androidify — конструктор ботов Android с новейшими технологиями•
ZenTone — звуковой сигнал нужной частоты и громкости в Android•
WikWok — Википедия в стиле TikTok
Кроссплатформа• Новый плагин KMP для IntelliJ IDEA и Android Studio
• Нативная мощь: Flutter SDK на C++ ядре. Часть 1
• Как я пытался спасти аккаунт разработчика в Google Play и в итоге сделал крипто-приложение
• Flutter 3.32 — Что нового во Flutter?
• Dart 3.8 — что нового в Dart?
• KStorage — единый подход к key-value хранилищам на Kotlin Multiplatform
• Аналитика во Flutter-приложениях: Какие события отслеживать, примеры архитектур и настройка Firebase
• Generics в Dart
• Настраиваем навигацию во Flutter-приложении через AutoRoute
•
Inspect Flutter API Calls in Chrome DevTools•
6 weeks into React Native dev. App works. I don’t.•
Flutter Push Notifications: A Complete Guide (Android + iOS)•
Dart & Flutter momentum at Google I/O 2025•
A Pragmatic Guide to Migrating from Native to React Native (or choosing not to)•
Flutter on ARMv6•
Demystify KMP builds and structure
Разработка• Нам не нужно больше приложений — нам нужны лучшие приложения
• Большое обновление DivKit: визуальный редактор, поддержка форм, аниматоры
• Stitch — новый ИИ-генератор дизайна от Google
• Это не шутка: чем «Аврора» уже круче Android
• Google I/O 2025 Keynote: ожидания vs реальность. И первые впечатления, конечно
• Тестирование без инцидентов в проде. Утопия или реальность?
• Стажировок мало, а джуны должны уметь всё: как становятся ИТ-специалистом в 2025 году
• Как тимлиду принимать сложные решения
• Язык программирования будущего – английский: визионерство, LLM, новая парадигма
• Как собеседовать мобильных инженеров? Системный дизайн спешит на помощь! (все собеседования)
• Проводим и проходим Mobile System Design-интервью
• Что такое Language Server Protocol и зачем он нужен
•
The Dumbest Move in Tech Right Now: Laying Off Developers Because of AI•
Coding Without a Laptop — Two Weeks with AR Glasses and Linux on Android
Аналитика, маркетинг и монетизация• Fortnite вернулся в App Store
• Spotify заявляет, что поддержка внешних платежей на iOS уже увеличила количество подписок
• Маркетологи в мобайле: Елена Зайцева (СМО Достависта)
•
Duolingo’s small UI switch that changes everything
AI, Устройства, IoT• На входе аудио, на выходе — саммари. Собираем локальный транскрибатор из бесплатного софта
• Знакомьтесь, FRIDA. Открытая эмбеддинг-модель для русского языка
• Как я взломал миллионы умных весов через уязвимости в API и железе
• Умный дом без боли: интеграция нейросетей в Node-RED шаг за шагом
• E-paper Arduino термометр на ESP-IDF
• Умная квартира с видом на Енисей: есть ли смысл в XIOT?
• Хочу умный дом, умнее меня: история одного концепта
• OpenAI покупает компанию Джони Айва
• Vertex AI превращается в Firebase AI Logic
• Google выпустил приложение NotebookLM
• GitHub запустил нового ИИ-агента в Copilot
• OpenAI запускает Codex, агента по разработке, в ChatGPT
• MagicMirror — умное зеркало своими руками
•
How Google is accelerating code migrations with AI•
How Pinterest Accelerates ML Feature Iterations via Effective Backfill← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.