В новом дайджесте обсуждаем костыли поддержки 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 15 на SwiftUI
• Кодогенерация: кому нужна и как настроить
• SwiftUI: алхимия приложений — превращаем идеив реальность
• Тактики ускорения билда: матиз, кобальт, камри 3.5
• SwiftUI: Custom TabBar + animation
• Малоизвестные представления SwiftUI
• Множественное число в текстовых представлениях SwiftUI с помощью склонения
• Используем диалог подтверждения в SwiftUI
• Приложения без статуса трейдера будут удаляться из App Store в ЕС
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• 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 получит больше приложений
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• CodeStyle на Flutter-проектах: базовые принципы и правила — шаблон на все случаи жизни
• Дружим RabbitMQ и Flutter/Dart
• Альтернатива Firebase Dynamic Links на KMP
•

•

•

•

•

•

•

•


• Как iPhone заставил UX и интерфейс в авто меняться и почему концерны до сих пор не могут оправиться от этого?
• 30 уроков от 30 лучших продуктовых лидеров
• Как начать тестировать подписки в Google Play и App Store
• Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов
• Основы DevEx: ищем, куда исчезает время программистов
• Заменяем облака домашним сервером — Selfhosting, homelab
• 20% вакансий в Интернете на самом деле существует
• Генеральный директор Sonos Патрик Спенс покидает свой пост после неудачного запуска приложения
•

•

•

•

•


• Маркетологи в мобайле: Иван Останков (Островок)
• Создатель Gas и tbh сделал приложение для исчезающих фотографий в iMessage
• JOY Ads: UGC как система
• Pixelfed — децентрализованная альтернатива Нельзяграм
• Приложения для здорового питания в России 2024
• Самые скачиваемые и зарабатывающие приложения в мире в декабре 2024
• Рынок корпоративных мобильных приложений России. История, участники, тренды
• Gamelight превысила цели по D30 ROAS на 246% для Sunshine Island от Stillfront Group
• В преддверии бана TikTok, количество изучающих китайский в Duolingo выросло на 216%
•


• Небольшая переделка одного устройства
• Двухкомнатная квартира в новостройке: как сделать ее и красивой, и умной?
• Практическое обучение с подкреплением: от забав с MuJoCo'м до битв на арене
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.