В новом выпуске понимаем и улучшаем производительность SwiftUI, решаем проблему «деградации» YouTube на Android, определяем потолок в разработке, разбираем большую ложь чистой архитектуры, смотрим на рост цифровой веры и многое другое. Заходите!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
 iOS
 iOS
• Понимаем и улучшаем производительность SwiftUI
• Автоматическое отслеживание изменений в UIKit и AppKit: функция, о которой Apple забыла упомянуть
• Крупные автопроизводители отказываются от CarPlay Ultra
• How to support Dynamic Type accessibility in SwiftUI
 How to support Dynamic Type accessibility in SwiftUI
• Sparkle: Distribution apps in- and out of the Mac App Store
 Sparkle: Distribution apps in- and out of the Mac App Store
• Adding Icon Composer icons to Xcode
 Adding Icon Composer icons to Xcode
• Apple’s On-Device Foundation Model Is Here… But Is It Any Good?
 Apple’s On-Device Foundation Model Is Here… But Is It Any Good?
• Embedding Godot games in iOS apps is easy now
 Embedding Godot games in iOS apps is easy now
• Decoding Swift types that require additional data
 Decoding Swift types that require additional data
• VIPER vs TCA: What Large iOS Teams Actually Use
 VIPER vs TCA: What Large iOS Teams Actually Use
• Sendable in Swift: The Silent Killer of Race Conditions
 Sendable in Swift: The Silent Killer of Race Conditions
• Why I Stopped Using Structs for Everything in Swift
 Why I Stopped Using Structs for Everything in Swift
• SwiftUI Search API (Searchable): All We Need to Know All In One
 SwiftUI Search API (Searchable): All We Need to Know All In One
• Grouping Liquid Glass components using glassEffectUnion on iOS 26
 Grouping Liquid Glass components using glassEffectUnion on iOS 26
• Designing custom UI with Liquid Glass on iOS 26
 Designing custom UI with Liquid Glass on iOS 26
• My App Crashed Only in Production
 My App Crashed Only in Production
• Schedule a countdown timer with AlarmKit
 Schedule a countdown timer with AlarmKit
• Redux in SwiftUI: When Web Patterns Meet Apple’s Declarative World
 Redux in SwiftUI: When Web Patterns Meet Apple’s Declarative World
• SwiftUI State Machines Explained: Manage Complex UI States the Right Way
 SwiftUI State Machines Explained: Manage Complex UI States the Right Way
• Creating Custom Property Wrappers in Swift: Reduce Boilerplate Code
 Creating Custom Property Wrappers in Swift: Reduce Boilerplate Code
• SwiftUI Shimmer Loading Animation: Complete Implementation Guide
 SwiftUI Shimmer Loading Animation: Complete Implementation Guide
• Build a mobile app using the Home APIs on iOS
 Build a mobile app using the Home APIs on iOS
• Dependency Injection in iOS Explained (with SwiftUI)
 Dependency Injection in iOS Explained (with SwiftUI)
• Custom Animated Segmented Control Using SwiftUI
 Custom Animated Segmented Control Using SwiftUI
• Getting Started with Apple’s Foundation Models Framework (On-Device AI Demo!)
 Getting Started with Apple’s Foundation Models Framework (On-Device AI Demo!)
• OAuthKit — event-driven авторизация на Swift
 OAuthKit — event-driven авторизация на Swift
• ComponentsKit — набор красивых компонентов UIKit и SwiftUI
 ComponentsKit — набор красивых компонентов UIKit и SwiftUI
 Android
 Android
• NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android
• Есть ли «потолок» в [Android] разработке — обсуждение на Reddit
• Пишем 3D-игру для ретро-устройств весом в 600Кб…
• Как Blinkit решил загадку производительности Android-приложения с помощью Droid Dex
• Эффекты в Jetpack Compose, лежащие на поверхности
• Включаем VoLTE на Pixel 9
• Настраиваем CI/CD Android-проекта, часть 3. Автоматизация публикации версий в Play Store
• Сеньоры с LinkedIn или доверяй, но проверяй. Как мы докатились до такого?
• Как мы случайно ускорили релизную сборку в два раза
• Эталонный пример Android приложения от Google
• M*** присоединилась к Kotlin Foundation
• Boost Android Development with Gemini CLI in 5 Minutes
 Boost Android Development with Gemini CLI in 5 Minutes
• Passkeys & Credential Manager in Android
 Passkeys & Credential Manager in Android
• Initial exploration of using Koog for developing Kotlin based AI agents
 Initial exploration of using Koog for developing Kotlin based AI agents
• Top announcements to know from Google Play at I/O ‘25
 Top announcements to know from Google Play at I/O ‘25
• Get ready for the next generation of gameplay powered by Play Games Services
 Get ready for the next generation of gameplay powered by Play Games Services
• Reducing App Size: Proguard, R8, App Bundles & Resource Shrinking
 Reducing App Size: Proguard, R8, App Bundles & Resource Shrinking
• Kotlin: 6 Advanced Flow Features You Must know
 Kotlin: 6 Advanced Flow Features You Must know
• Everyday Challenges of an Android Developer — Skeleton Loaders: The Illusion of Speed
 Everyday Challenges of an Android Developer — Skeleton Loaders: The Illusion of Speed
• How I Optimize My Android App from 15MB to under <2MB
 How I Optimize My Android App from 15MB to under <2MB
• Managing state across navigation in Jetpack Compose
 Managing state across navigation in Jetpack Compose
• Custom Scene Strategy in Navigation 3 — Make Your App Flow Your Way
 Custom Scene Strategy in Navigation 3 — Make Your App Flow Your Way
• Best Practices of Retrofit and OkHttp in Android Development
 Best Practices of Retrofit and OkHttp in Android Development
• Context parameters in Kotlin 2.2
 Context parameters in Kotlin 2.2
• Exploring Kotlin (native) compilation
 Exploring Kotlin (native) compilation
• Migrating to Jetpack Compose Navigation 3
 Migrating to Jetpack Compose Navigation 3
• Android Studio Narwhal Feature Drop
 Android Studio Narwhal Feature Drop
• SIGSEGV to SIGBUS: The Truth Behind Android’s Scariest Native Crashes
 SIGSEGV to SIGBUS: The Truth Behind Android’s Scariest Native Crashes
• How I Built Seamless Watch ↔ Phone Handover in Wear OS
 How I Built Seamless Watch ↔ Phone Handover in Wear OS
• Embedded Layout Inspector
 Embedded Layout Inspector
• Enable Google Pay in Android WebView
 Enable Google Pay in Android WebView
• Build your own NES Emulator with Kotlin
 Build your own NES Emulator with Kotlin
• Implementing Compose Hot Reload
 Implementing Compose Hot Reload
• IoT development with Kotlin
 IoT development with Kotlin
• Coroutines and Structured Concurrency in Ktor
 Coroutines and Structured Concurrency in Ktor
• Klibs.io — the dream of creating a Kotlin Package Index
 Klibs.io — the dream of creating a Kotlin Package Index
• Test APIs Without Leaving Android Studio
 Test APIs Without Leaving Android Studio
• Jetpack Android Starter — шаблон современного Android-приложения
 Jetpack Android Starter — шаблон современного Android-приложения
• Kizzy — менеджер Rich Presence для Discord на Kotlin
 Kizzy — менеджер Rich Presence для Discord на Kotlin
 Кроссплатформа
 Кроссплатформа
• 2D-скролл во Flutter
• Вы не поняли extension types в Dart
• Демо-интервью по Flutter с Middle-разработчиком (+ все собеседования)
• Why Liquid Glass Is Making Developers Rethink Flutter
 Why Liquid Glass Is Making Developers Rethink Flutter
• Flutter’s Biggest Problems: What Google Doesn’t Want You to Know
 Flutter’s Biggest Problems: What Google Doesn’t Want You to Know
• Why Cross-Platform Teams Are Shifting to Native — With Case Studies That Might Surprise You
 Why Cross-Platform Teams Are Shifting to Native — With Case Studies That Might Surprise You
• Kotlin’s Funeral Has Been Announced? Apple’s Master Plan Behind Swift for Android
 Kotlin’s Funeral Has Been Announced? Apple’s Master Plan Behind Swift for Android
• “Expect Actual” Mechanism in Kotlin Multiplatform Explained
 “Expect Actual” Mechanism in Kotlin Multiplatform Explained
• Secrets, Certificates, Local Storage: The Three Risks Every App Ships With
 Secrets, Certificates, Local Storage: The Three Risks Every App Ships With
• Duolingo + KMP: A Case Study in Developer Productivity
 Duolingo + KMP: A Case Study in Developer Productivity
• Koin Annotations In Compose Multiplatform — Beginner’s Guide to Compile-Time Dependency Injection
 Koin Annotations In Compose Multiplatform — Beginner’s Guide to Compile-Time Dependency Injection
• StringBuffer (Technique of the Week)
 StringBuffer (Technique of the Week)
• Store — решение для работы с данными на Kotlin Multiplatform
 Store — решение для работы с данными на Kotlin Multiplatform
 Разработка
 Разработка
• Чистая архитектура — это большая ложь, в которую мы продолжаем верить
• Бенчмарк ИИ-помощников в устранении сбоев мобильных приложений
• BDUI: эволюция динамических интерфейсов
• Как чек-лист на внутреннем портале убил 70% вопросов о релизах — без автоматизации и бюджета
• Открытый и опасный: как снизить риски open-source в приложениях
• Применение KISS для архитектуры автотестов
• Будущее инструментов разработки и опенсорса
• Вычисления на GPU — CUDA, NVidia, AMD
• What is free trial abuse — and how can you stop it?
 What is free trial abuse — and how can you stop it?
• Don’t Be Ashamed to Say «I Don’t Know»
 Don’t Be Ashamed to Say «I Don’t Know»
• When a PM takes over engineering
 When a PM takes over engineering
• Challenging projects every programmer should try
 Challenging projects every programmer should try
• 14 logic-driven UI design tips to improve any interface
 14 logic-driven UI design tips to improve any interface
• Saying bye to 4px spacing and hello to Fibonacci
 Saying bye to 4px spacing and hello to Fibonacci
 Аналитика, маркетинг и монетизация
 Аналитика, маркетинг и монетизация
• Самые скачиваемые и зарабатывающие приложения в России в июне 2025
• Sri Mandir получает новые инвестиции по мере роста цифровой веры
• VK Реклама представила ИИ редактор рекламных текстов
• Мобильные прилы + EdTech = $$$. Разбор ниши
• Squad Busters 2.0 and mo.co: What We Learned from Supercell’s Experimental Era
 Squad Busters 2.0 and mo.co: What We Learned from Supercell’s Experimental Era
 AI, Устройства, IoT
 AI, Устройства, IoT
• «Тупой ИИ» с нами надолго. Почему в новых моделях больше галлюцинаций
• Как я пять раз переделывал умный дом — и выкинул половину ненужного
• Новый навык в ИИ — не промпты, а контекст инжиниринг
• GPS в городских джунглях: почему навигатор «прыгает» между небоскрёбами
• Навсегда избавляемся от дребезга и дружим микроконтроллер с кнопкой
• Что не пишут в документации Kotlin Contracts: тёмные закоулки и пасхалки
• Спасаем умный дом на KNX: как быть, если интегратор залочил оборудование
• Нейросеть приближается к опыту профессионального дерматолога
• Доход Cluely удвоился за неделю, но конкуренты наступают
• Умная камера Petlibro использует ИИ для распознавания и описания движений питомцев
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
 iOS
 iOS• Понимаем и улучшаем производительность SwiftUI
• Автоматическое отслеживание изменений в UIKit и AppKit: функция, о которой Apple забыла упомянуть
• Крупные автопроизводители отказываются от CarPlay Ultra
•
 How to support Dynamic Type accessibility in SwiftUI
 How to support Dynamic Type accessibility in SwiftUI•
 Sparkle: Distribution apps in- and out of the Mac App Store
 Sparkle: Distribution apps in- and out of the Mac App Store•
 Adding Icon Composer icons to Xcode
 Adding Icon Composer icons to Xcode•
 Apple’s On-Device Foundation Model Is Here… But Is It Any Good?
 Apple’s On-Device Foundation Model Is Here… But Is It Any Good?•
 Embedding Godot games in iOS apps is easy now
 Embedding Godot games in iOS apps is easy now•
 Decoding Swift types that require additional data
 Decoding Swift types that require additional data•
 VIPER vs TCA: What Large iOS Teams Actually Use
 VIPER vs TCA: What Large iOS Teams Actually Use•
 Sendable in Swift: The Silent Killer of Race Conditions
 Sendable in Swift: The Silent Killer of Race Conditions•
 Why I Stopped Using Structs for Everything in Swift
 Why I Stopped Using Structs for Everything in Swift•
 SwiftUI Search API (Searchable): All We Need to Know All In One
 SwiftUI Search API (Searchable): All We Need to Know All In One•
 Grouping Liquid Glass components using glassEffectUnion on iOS 26
 Grouping Liquid Glass components using glassEffectUnion on iOS 26•
 Designing custom UI with Liquid Glass on iOS 26
 Designing custom UI with Liquid Glass on iOS 26•
 My App Crashed Only in Production
 My App Crashed Only in Production•
 Schedule a countdown timer with AlarmKit
 Schedule a countdown timer with AlarmKit•
 Redux in SwiftUI: When Web Patterns Meet Apple’s Declarative World
 Redux in SwiftUI: When Web Patterns Meet Apple’s Declarative World•
 SwiftUI State Machines Explained: Manage Complex UI States the Right Way
 SwiftUI State Machines Explained: Manage Complex UI States the Right Way•
 Creating Custom Property Wrappers in Swift: Reduce Boilerplate Code
 Creating Custom Property Wrappers in Swift: Reduce Boilerplate Code•
 SwiftUI Shimmer Loading Animation: Complete Implementation Guide
 SwiftUI Shimmer Loading Animation: Complete Implementation Guide•
 Build a mobile app using the Home APIs on iOS
 Build a mobile app using the Home APIs on iOS•
 Dependency Injection in iOS Explained (with SwiftUI)
 Dependency Injection in iOS Explained (with SwiftUI)•
 Custom Animated Segmented Control Using SwiftUI
 Custom Animated Segmented Control Using SwiftUI•
 Getting Started with Apple’s Foundation Models Framework (On-Device AI Demo!)
 Getting Started with Apple’s Foundation Models Framework (On-Device AI Demo!)•
 OAuthKit — event-driven авторизация на Swift
 OAuthKit — event-driven авторизация на Swift•
 ComponentsKit — набор красивых компонентов UIKit и SwiftUI
 ComponentsKit — набор красивых компонентов UIKit и SwiftUI Android
 Android• NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android
• Есть ли «потолок» в [Android] разработке — обсуждение на Reddit
• Пишем 3D-игру для ретро-устройств весом в 600Кб…
• Как Blinkit решил загадку производительности Android-приложения с помощью Droid Dex
• Эффекты в Jetpack Compose, лежащие на поверхности
• Включаем VoLTE на Pixel 9
• Настраиваем CI/CD Android-проекта, часть 3. Автоматизация публикации версий в Play Store
• Сеньоры с LinkedIn или доверяй, но проверяй. Как мы докатились до такого?
• Как мы случайно ускорили релизную сборку в два раза
• Эталонный пример Android приложения от Google
• M*** присоединилась к Kotlin Foundation
•
 Boost Android Development with Gemini CLI in 5 Minutes
 Boost Android Development with Gemini CLI in 5 Minutes•
 Passkeys & Credential Manager in Android
 Passkeys & Credential Manager in Android•
 Initial exploration of using Koog for developing Kotlin based AI agents
 Initial exploration of using Koog for developing Kotlin based AI agents•
 Top announcements to know from Google Play at I/O ‘25
 Top announcements to know from Google Play at I/O ‘25•
 Get ready for the next generation of gameplay powered by Play Games Services
 Get ready for the next generation of gameplay powered by Play Games Services•
 Reducing App Size: Proguard, R8, App Bundles & Resource Shrinking
 Reducing App Size: Proguard, R8, App Bundles & Resource Shrinking•
 Kotlin: 6 Advanced Flow Features You Must know
 Kotlin: 6 Advanced Flow Features You Must know•
 Everyday Challenges of an Android Developer — Skeleton Loaders: The Illusion of Speed
 Everyday Challenges of an Android Developer — Skeleton Loaders: The Illusion of Speed•
 How I Optimize My Android App from 15MB to under <2MB
 How I Optimize My Android App from 15MB to under <2MB•
 Managing state across navigation in Jetpack Compose
 Managing state across navigation in Jetpack Compose•
 Custom Scene Strategy in Navigation 3 — Make Your App Flow Your Way
 Custom Scene Strategy in Navigation 3 — Make Your App Flow Your Way•
 Best Practices of Retrofit and OkHttp in Android Development
 Best Practices of Retrofit and OkHttp in Android Development•
 Context parameters in Kotlin 2.2
 Context parameters in Kotlin 2.2•
 Exploring Kotlin (native) compilation
 Exploring Kotlin (native) compilation•
 Migrating to Jetpack Compose Navigation 3
 Migrating to Jetpack Compose Navigation 3•
 Android Studio Narwhal Feature Drop
 Android Studio Narwhal Feature Drop•
 SIGSEGV to SIGBUS: The Truth Behind Android’s Scariest Native Crashes
 SIGSEGV to SIGBUS: The Truth Behind Android’s Scariest Native Crashes•
 How I Built Seamless Watch ↔ Phone Handover in Wear OS
 How I Built Seamless Watch ↔ Phone Handover in Wear OS•
 Embedded Layout Inspector
 Embedded Layout Inspector•
 Enable Google Pay in Android WebView
 Enable Google Pay in Android WebView•
 Build your own NES Emulator with Kotlin
 Build your own NES Emulator with Kotlin•
 Implementing Compose Hot Reload
 Implementing Compose Hot Reload•
 IoT development with Kotlin
 IoT development with Kotlin•
 Coroutines and Structured Concurrency in Ktor
 Coroutines and Structured Concurrency in Ktor•
 Klibs.io — the dream of creating a Kotlin Package Index
 Klibs.io — the dream of creating a Kotlin Package Index•
 Test APIs Without Leaving Android Studio
 Test APIs Without Leaving Android Studio•
 Jetpack Android Starter — шаблон современного Android-приложения
 Jetpack Android Starter — шаблон современного Android-приложения•
 Kizzy — менеджер Rich Presence для Discord на Kotlin
 Kizzy — менеджер Rich Presence для Discord на Kotlin Кроссплатформа
 Кроссплатформа• 2D-скролл во Flutter
• Вы не поняли extension types в Dart
• Демо-интервью по Flutter с Middle-разработчиком (+ все собеседования)
•
 Why Liquid Glass Is Making Developers Rethink Flutter
 Why Liquid Glass Is Making Developers Rethink Flutter•
 Flutter’s Biggest Problems: What Google Doesn’t Want You to Know
 Flutter’s Biggest Problems: What Google Doesn’t Want You to Know•
 Why Cross-Platform Teams Are Shifting to Native — With Case Studies That Might Surprise You
 Why Cross-Platform Teams Are Shifting to Native — With Case Studies That Might Surprise You•
 Kotlin’s Funeral Has Been Announced? Apple’s Master Plan Behind Swift for Android
 Kotlin’s Funeral Has Been Announced? Apple’s Master Plan Behind Swift for Android•
 “Expect Actual” Mechanism in Kotlin Multiplatform Explained
 “Expect Actual” Mechanism in Kotlin Multiplatform Explained•
 Secrets, Certificates, Local Storage: The Three Risks Every App Ships With
 Secrets, Certificates, Local Storage: The Three Risks Every App Ships With•
 Duolingo + KMP: A Case Study in Developer Productivity
 Duolingo + KMP: A Case Study in Developer Productivity•
 Koin Annotations In Compose Multiplatform — Beginner’s Guide to Compile-Time Dependency Injection
 Koin Annotations In Compose Multiplatform — Beginner’s Guide to Compile-Time Dependency Injection•
 StringBuffer (Technique of the Week)
 StringBuffer (Technique of the Week)•
 Store — решение для работы с данными на Kotlin Multiplatform
 Store — решение для работы с данными на Kotlin Multiplatform Разработка
 Разработка• Чистая архитектура — это большая ложь, в которую мы продолжаем верить
• Бенчмарк ИИ-помощников в устранении сбоев мобильных приложений
• BDUI: эволюция динамических интерфейсов
• Как чек-лист на внутреннем портале убил 70% вопросов о релизах — без автоматизации и бюджета
• Открытый и опасный: как снизить риски open-source в приложениях
• Применение KISS для архитектуры автотестов
• Будущее инструментов разработки и опенсорса
• Вычисления на GPU — CUDA, NVidia, AMD
•
 What is free trial abuse — and how can you stop it?
 What is free trial abuse — and how can you stop it?•
 Don’t Be Ashamed to Say «I Don’t Know»
 Don’t Be Ashamed to Say «I Don’t Know»•
 When a PM takes over engineering
 When a PM takes over engineering•
 Challenging projects every programmer should try
 Challenging projects every programmer should try•
 14 logic-driven UI design tips to improve any interface
 14 logic-driven UI design tips to improve any interface•
 Saying bye to 4px spacing and hello to Fibonacci
 Saying bye to 4px spacing and hello to Fibonacci Аналитика, маркетинг и монетизация
 Аналитика, маркетинг и монетизация• Самые скачиваемые и зарабатывающие приложения в России в июне 2025
• Sri Mandir получает новые инвестиции по мере роста цифровой веры
• VK Реклама представила ИИ редактор рекламных текстов
• Мобильные прилы + EdTech = $$$. Разбор ниши
•
 Squad Busters 2.0 and mo.co: What We Learned from Supercell’s Experimental Era
 Squad Busters 2.0 and mo.co: What We Learned from Supercell’s Experimental Era AI, Устройства, IoT
 AI, Устройства, IoT• «Тупой ИИ» с нами надолго. Почему в новых моделях больше галлюцинаций
• Как я пять раз переделывал умный дом — и выкинул половину ненужного
• Новый навык в ИИ — не промпты, а контекст инжиниринг
• GPS в городских джунглях: почему навигатор «прыгает» между небоскрёбами
• Навсегда избавляемся от дребезга и дружим микроконтроллер с кнопкой
• Что не пишут в документации Kotlin Contracts: тёмные закоулки и пасхалки
• Спасаем умный дом на KNX: как быть, если интегратор залочил оборудование
• Нейросеть приближается к опыту профессионального дерматолога
• Доход Cluely удвоился за неделю, но конкуренты наступают
• Умная камера Petlibro использует ИИ для распознавания и описания движений питомцев
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
          