В новом дайджесте обсуждаем костыли поддержки iOS 15 на SwiftUI и корутины Kotlin, приложения на Go и шаблон на все случаи жизни, 30 уроков от 30 лучших продуктовых лидеров, мест Snap в виде исчезающих фотографий в iMessage, переделку одного устройства и многое другое. Подключайтесь!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS
• Костыли, костыли и ещё раз костыли. Или поддержка iOS 15 на SwiftUI
• Кодогенерация: кому нужна и как настроить
• SwiftUI: алхимия приложений — превращаем идеив реальность
• Тактики ускорения билда: матиз, кобальт, камри 3.5
• SwiftUI: Custom TabBar + animation
• Малоизвестные представления SwiftUI
• Множественное число в текстовых представлениях SwiftUI с помощью склонения
• Используем диалог подтверждения в SwiftUI
• Приложения без статуса трейдера будут удаляться из App Store в ЕС
•
Adopting Swift 6 across the app codebase
•
Accessibility That Fits
•
Handle plurals in SwiftUI Text views with inflection
•
Swift 6: Typed Throws
•
Using Copilot to write a raindrop audio synthesizer using AVAudioEngine
•
Legacy Code Rescue: Taming a Thousand-Line View Controller
•
How to use cryptographic hash functions in CryptoKit for iOS security
•
Creating a Network Manager in SwiftUI with Clean Code Principles
•
Using Approval Tests to Bring Legacy Code Under Test
•
Exploring Tab View Styles in SwiftUI
•
SwiftUI Lists: Present rows of data explained with code examples
•
Bringing App Intents to Your SwiftUI App
•
Swift 6.0 Actors: Goodbye Race Conditions!
•
SwiftUI: Zipping Files
•
Managing Singletons in Memory in Swift
•
I’ve been doing this since 2009 and Apple has officially exhausted me
•
Design an Analytics Manager in iOS
•
How to organize TabView in SwiftUI using Composable Architecture
•
Apple Engineer Shows How To Build a SwiftUI Step Counter
•
Complete Document Scanner App
•
Working with C and C++ in Apple environment
•
sRouting — навигационный фреймворк для SwiftUI
•
Blueprint — декларативный UI-конструктор
Android
• Go в GUI, я создал
• Распространенные ошибки в шаблоне UseCase для Android
• Kotlin Coroutines под капотом: отмена корутин
• Корутины в Kotlin: делаем «Optimised Out» переменные видимыми
• Примеры использования File Templates для типовых сценариев, где требуется шаблонный код + Экспорт и импорт File Templates в IDE от Intellij
• Управление настройками с помощью Jetpack DataStore: Простой подход к сохранению данных разных типов
• Переезжаем с фрагментов на (De)compose
• Как устроена разработка в Яндекс.Клавиатуре
• Android + AI. Решаем задачи с умом
• В чем отличие между job и supervisor job — вопросы с собеседований
• Android Automotive получит больше приложений
•
How modifiers order affects Compose UI appearance
•
FilterChip Dropdown selector in Jetpack Compose
•
Top 3 Most Common Animations You Can Use in Your Jetpack Compose Project
•
Android Dynamic Animated SVGs (with Lottie Dynamic Properties)
•
5 steps to use Paging3 library with Jetpack Compose
•
How We Reduced the WINK+ Android App to Less Than 10MB
•
Reverse-Engineering the Compose Compiler Plugin: Intercepting the Frontend
•
DiffUtils, Myers’ Algorithm and Jetpack Compose
•
Getting Started with CameraX in Jetpack Compose
•
Exploring ViewModel Internals
•
From Junior to Senior: Evolving UseCases and ViewModel in Android Clean Architecture
•
Integrating Google ML Kit for Barcode Scanning in Jetpack Compose Android Apps
•
Handling One-Time Events in Jetpack Compose: Channels vs. SharedFlow
•
Tap to focus: Mastering CameraX Transformations in Jetpack Compose
•
Function, KFunction, KCallable, and all those other function types in Kotlin
•
5 Things You MUST Do Before Deploying Your App to Google Play (or you’ll regret it)
•
The Beginner to Industry-Ready Roadmap For Android & KMP Development In 2025
•
We fixed an inconsistency in Kotlin (non-local break & continue)
•
What are all of those Kotlin function types for?
•
MMKV — эффективное key-valu хранилище от Tencent
•
ViTune — музыкальный плеер для Android
•
Aspecto — идеальная сетка для Jetpack Compos/Multiplatform
Кроссплатформа
• CodeStyle на Flutter-проектах: базовые принципы и правила — шаблон на все случаи жизни
• Дружим RabbitMQ и Flutter/Dart
• Альтернатива Firebase Dynamic Links на KMP
•
Mastering Scrollable in Flutter
•
How to Release Your Flutter App on the Google Play Store
•
Mastering Flutter Testing: Integration Tests
•
Logging In Compose Multiplatform
•
Introducing Mirai — A Server Driven UI framework for Flutter
•
MVVM: Officially Recommended by Google for Flutter Development
•
10 Flutter Widgets Probably Haven’t Heard Of (But Should Be Using!)
•
Flutter Live Activity: From Development to Testing
Разработка
• Как iPhone заставил UX и интерфейс в авто меняться и почему концерны до сих пор не могут оправиться от этого?
• 30 уроков от 30 лучших продуктовых лидеров
• Как начать тестировать подписки в Google Play и App Store
• Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов
• Основы DevEx: ищем, куда исчезает время программистов
• Заменяем облака домашним сервером — Selfhosting, homelab
• 20% вакансий в Интернете на самом деле существует
• Генеральный директор Sonos Патрик Спенс покидает свой пост после неудачного запуска приложения
•
How to Choose the Right Database in a System Design Interview
•
How to build an AI side project using AI in 2025
•
Boosting Performance in a Diagramming App with Quadtrees and Binary Search on Path
•
Test-Driven Development with an LLM for Fun and Profit
•
The documentation problem in development
Аналитика, маркетинг и монетизация
• Маркетологи в мобайле: Иван Останков (Островок)
• Создатель Gas и tbh сделал приложение для исчезающих фотографий в iMessage
• JOY Ads: UGC как система
• Pixelfed — децентрализованная альтернатива Нельзяграм
• Приложения для здорового питания в России 2024
• Самые скачиваемые и зарабатывающие приложения в мире в декабре 2024
• Рынок корпоративных мобильных приложений России. История, участники, тренды
• Gamelight превысила цели по D30 ROAS на 246% для Sunshine Island от Stillfront Group
• В преддверии бана TikTok, количество изучающих китайский в Duolingo выросло на 216%
•
The price of your product is wrong
AI, Устройства, IoT
• Небольшая переделка одного устройства
• Двухкомнатная квартира в новостройке: как сделать ее и красивой, и умной?
• Практическое обучение с подкреплением: от забав с MuJoCo'м до битв на арене
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS• Костыли, костыли и ещё раз костыли. Или поддержка iOS 15 на SwiftUI
• Кодогенерация: кому нужна и как настроить
• SwiftUI: алхимия приложений — превращаем идеив реальность
• Тактики ускорения билда: матиз, кобальт, камри 3.5
• SwiftUI: Custom TabBar + animation
• Малоизвестные представления SwiftUI
• Множественное число в текстовых представлениях SwiftUI с помощью склонения
• Используем диалог подтверждения в SwiftUI
• Приложения без статуса трейдера будут удаляться из App Store в ЕС
•
Adopting Swift 6 across the app codebase•
Accessibility That Fits•
Handle plurals in SwiftUI Text views with inflection•
Swift 6: Typed Throws•
Using Copilot to write a raindrop audio synthesizer using AVAudioEngine•
Legacy Code Rescue: Taming a Thousand-Line View Controller•
How to use cryptographic hash functions in CryptoKit for iOS security•
Creating a Network Manager in SwiftUI with Clean Code Principles•
Using Approval Tests to Bring Legacy Code Under Test•
Exploring Tab View Styles in SwiftUI•
SwiftUI Lists: Present rows of data explained with code examples•
Bringing App Intents to Your SwiftUI App•
Swift 6.0 Actors: Goodbye Race Conditions!•
SwiftUI: Zipping Files•
Managing Singletons in Memory in Swift•
I’ve been doing this since 2009 and Apple has officially exhausted me•
Design an Analytics Manager in iOS•
How to organize TabView in SwiftUI using Composable Architecture•
Apple Engineer Shows How To Build a SwiftUI Step Counter•
Complete Document Scanner App•
Working with C and C++ in Apple environment•
sRouting — навигационный фреймворк для SwiftUI•
Blueprint — декларативный UI-конструктор
Android• Go в GUI, я создал
• Распространенные ошибки в шаблоне UseCase для Android
• Kotlin Coroutines под капотом: отмена корутин
• Корутины в Kotlin: делаем «Optimised Out» переменные видимыми
• Примеры использования File Templates для типовых сценариев, где требуется шаблонный код + Экспорт и импорт File Templates в IDE от Intellij
• Управление настройками с помощью Jetpack DataStore: Простой подход к сохранению данных разных типов
• Переезжаем с фрагментов на (De)compose
• Как устроена разработка в Яндекс.Клавиатуре
• Android + AI. Решаем задачи с умом
• В чем отличие между job и supervisor job — вопросы с собеседований
• Android Automotive получит больше приложений
•
How modifiers order affects Compose UI appearance•
FilterChip Dropdown selector in Jetpack Compose•
Top 3 Most Common Animations You Can Use in Your Jetpack Compose Project•
Android Dynamic Animated SVGs (with Lottie Dynamic Properties)•
5 steps to use Paging3 library with Jetpack Compose•
How We Reduced the WINK+ Android App to Less Than 10MB•
Reverse-Engineering the Compose Compiler Plugin: Intercepting the Frontend•
DiffUtils, Myers’ Algorithm and Jetpack Compose•
Getting Started with CameraX in Jetpack Compose•
Exploring ViewModel Internals•
From Junior to Senior: Evolving UseCases and ViewModel in Android Clean Architecture•
Integrating Google ML Kit for Barcode Scanning in Jetpack Compose Android Apps•
Handling One-Time Events in Jetpack Compose: Channels vs. SharedFlow•
Tap to focus: Mastering CameraX Transformations in Jetpack Compose•
Function, KFunction, KCallable, and all those other function types in Kotlin•
5 Things You MUST Do Before Deploying Your App to Google Play (or you’ll regret it)•
The Beginner to Industry-Ready Roadmap For Android & KMP Development In 2025•
We fixed an inconsistency in Kotlin (non-local break & continue)•
What are all of those Kotlin function types for?•
MMKV — эффективное key-valu хранилище от Tencent•
ViTune — музыкальный плеер для Android•
Aspecto — идеальная сетка для Jetpack Compos/Multiplatform
Кроссплатформа• CodeStyle на Flutter-проектах: базовые принципы и правила — шаблон на все случаи жизни
• Дружим RabbitMQ и Flutter/Dart
• Альтернатива Firebase Dynamic Links на KMP
•
Mastering Scrollable in Flutter•
How to Release Your Flutter App on the Google Play Store•
Mastering Flutter Testing: Integration Tests•
Logging In Compose Multiplatform•
Introducing Mirai — A Server Driven UI framework for Flutter•
MVVM: Officially Recommended by Google for Flutter Development•
10 Flutter Widgets Probably Haven’t Heard Of (But Should Be Using!)•
Flutter Live Activity: From Development to Testing
Разработка• Как iPhone заставил UX и интерфейс в авто меняться и почему концерны до сих пор не могут оправиться от этого?
• 30 уроков от 30 лучших продуктовых лидеров
• Как начать тестировать подписки в Google Play и App Store
• Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов
• Основы DevEx: ищем, куда исчезает время программистов
• Заменяем облака домашним сервером — Selfhosting, homelab
• 20% вакансий в Интернете на самом деле существует
• Генеральный директор Sonos Патрик Спенс покидает свой пост после неудачного запуска приложения
•
How to Choose the Right Database in a System Design Interview•
How to build an AI side project using AI in 2025•
Boosting Performance in a Diagramming App with Quadtrees and Binary Search on Path•
Test-Driven Development with an LLM for Fun and Profit•
The documentation problem in development
Аналитика, маркетинг и монетизация• Маркетологи в мобайле: Иван Останков (Островок)
• Создатель Gas и tbh сделал приложение для исчезающих фотографий в iMessage
• JOY Ads: UGC как система
• Pixelfed — децентрализованная альтернатива Нельзяграм
• Приложения для здорового питания в России 2024
• Самые скачиваемые и зарабатывающие приложения в мире в декабре 2024
• Рынок корпоративных мобильных приложений России. История, участники, тренды
• Gamelight превысила цели по D30 ROAS на 246% для Sunshine Island от Stillfront Group
• В преддверии бана TikTok, количество изучающих китайский в Duolingo выросло на 216%
•
The price of your product is wrong
AI, Устройства, IoT• Небольшая переделка одного устройства
• Двухкомнатная квартира в новостройке: как сделать ее и красивой, и умной?
• Практическое обучение с подкреплением: от забав с MuJoCo'м до битв на арене
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.