В этом выпуске конкатенация против интерполяции, дизайн-система для мобильных устройств и TV, применение zero/empty объектов, игра на LUA для часов Xiaomi Redmi Watch 4, уродливые пейволы, навыки флирта с ИИ-персонажами и многое другое. Заходите!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS
• Конкатенация против интерполяции текста в SwiftUI
• Как правильно организовать проект c модульной архитектурой в iOS-разработке
• Документируем код с помощью DocC
• Google AI Studio: макеты Figma -> iOS приложение на Gemini 2.5 Experimental
• Воспроизведение и редактирование видео с AVFoundation. Часть 1. Ассеты простые
• Обзор Copilot в Xcode на SwiftUI
• Одна билд-система, чтоб править всеми
• Влияние Swift Runtime на производительность приложения
• Разрабатываем CLI-инструменты на Swift
• Бразилия расследует деятельность Apple и App Tracking Transparency
• Вышел swiftly 1.0
• Apple работает над масштабным обновлением приложения Health
• SwiftUI Grid, LazyVGrid, LazyHGrid Explained with Code Examples
•
Building a dependency injection framework
•
Fast & Fluid: Integrating Rust egui into SwiftUI
•
Profiling apps using Instruments
•
ModelActor is Just Weird
•
How Trendyol Achieved 70% Faster Build Time with iOS App Revamp
•
Presenting an Inspector with SwiftUI
•
SwiftUI Craftsmanship: State Management
•
The Dark Side of Apple Development: Why Developers Are Struggling On Apple’s Increasingly Hostile Platforms
•
Say Goodbye to dismiss: A State-Driven Path to More Maintainable SwiftUI
•
Create a Custom Single Select Button in SwiftUI
•
Transform your LLM into an Xcode project copilot
•
Region-Specific Language Control: Implementing Forced Localization in iOS Apps
•
New in Swift 6.1: Test Scoping Traits
•
Disable Interactive Dismissal of Navigation Zoom Transition
•
Localizing Apple UI in 2025
•
Monitoring iOS apps
•
SwiftUI in UIKit?! Watch Me Inject Animations into a UIKit App
•
SwiftUI Animation Bugs? Here’s How I Fixed Them!
•
Animated Dialogs Like Family App Using SwiftUI
•
Creating an Over Top View in SwiftUI: A Unique Way to Present Edit Views
•
Swift Protocols — An Introduction
•
VDAnimation — декларативные анимации для SwiftUI
•
DriftCheck — обнаружение утечек памяти
Android
• Все знают, какие приложения установлены на вашем телефоне
• Как мы сделали дизайн-систему для мобильных устройств и TV
• Жизнь после отвала eMMC: Загружаем Android с MicroSD
• Lissen: как я красивый плеер для аудиокниг писал
• Как я писал проводник для Wear OS и что из этого вышло
• Разбираем чистую архитектуру в Android: от а до я
• Изучайте многомодульную архитектуру в Compose как можно скорее
• Валидация полей формы в Android приложении и не только
• Поддержка webextensions под Андроид, вторая серия
• BundledSQLiteDriver: новый взгляд на SQLite в Android и Kotlin Multiplatform
• Как мы разработали свой фреймворк SingleState-навигации на Android
• Танцы вокруг дерева семантики: UI-тесты Compose-экранов
• Многомодульность — ответы на вопросы с экспертами
• Как работает Android Work Profile
• Разбор кода магазина приложений
• Google внедряет сторонний биллинг в Google Play в Великобритании
•
APK vs AAB: How We Deliver Android Apps
•
Android Architecture — Fetchers update
•
Home sweet home: some thoughts on storing files
•
Make WebViews edge-to-edge
•
Media3 1.6.0 — what’s new?
•
Local Database: Comparing Realm, SQLDelight, and Room
•
Simplifying Dependency Injection in Android Jetpack Compose with Hilt
•
Profile & Benchmark Android Builds
•
Understanding Dispatchers: Main and Main.immediate
•
Hybrid Encryption in Android: Secure Communication Between Mobile and Backend Systems
•
Why Kotlin’s callbackFlow can cause memory leak (And How to Fix It!)
•
Android Builds: Simple Recipes to Enhance Developer Productivity
•
Enhancing app performance in Android
•
Anatomy of the SDK Runtime
•
No more Manual Koin Initialization — New Context Binding is Awesome
•
Android Builds: Simple Recipes to Enhance Developer Productivity
•
Gradle, Kotlin, Spring Skeleton — пример многомодульной сборки
•
Tack Android — красивый метроном для Android
•
AnimationSequence — последовательные анимации для Jetpack Compose
Кроссплатформа
• Dart/Flutter — применяя zero/empty объекты ко всему
• Реализация простого SSE клиента на Dart
• Kotlin в GitHub Actions. Расширяем горизонты KMP
• Как я перестал бояться и полюбил компилятор Dart
•
Exposing SwiftUI Views to React Native: An Integration Guide
•
Deep Dive into Haptics: Enhancing User Experience through Tactile Feedback
•
Develop Your Own Networking Client In Compose MultiPlatform
•
Shopping list and Compose Multiplatform
•
Build Gen AI Apps Fast with Firebase and Flutter: A Hands-On Starter Guide
•
Leveraging Dart FFI for high-performance ML in Flutter — a practical implementation
•
How to Implement Swipe Actions in Flutter with Slidable
•
Flutter Routing Done Right: A Scalable Approach
•
Using Platform-Specific APIs in KMP Apps
•
Flutter Belgium Meetup #23
•
The Ultimate React Native Course — Build Your First Mobile App in 2025
Разработка
• Как работать в разработке в условиях спада
• Разработка топ мобильной игры в соло, с нуля, без бюджета, без движка, без знания языка программирования. Начало
• Это весело и забавно… пока ваш босс не узнает про вайб-кодинг
• Нет никакого вайб-инжиниринга
• Пишем игру на LUA для часов Xiaomi Redmi Watch 4.Часть 1. Знакомство с экосистемой Xiaomi
• Отказоустойчивая распределённая архитектура для UX-аналитики
• Avito UX meetup: взаимодействие, метрики и мемы
• Полный обзор новой операционной системы HarmonyOS Next. Получилось ли?
• Профессия: cистемный аналитик
• Открытое алгоритмическое собеседование
•
Deploying a Swift Server App to Fly.io and Railway
•
Setting up a translation system for your Android and iOS app
•
How our Meditation App Broke Records Overnight, almost crashing our servers
•
WattWise: Terminal-Based Power Monitoring Using Smart Plugs
•
Making Uber’s ExperimentEvaluation Engine 100x Faster
•
The 13 software engineering laws
•
Full 2025 Backend Dev Crash Course for Beginners With Spring Boot (Kotlin, JWT Auth, MongoDB)
•
How to Survive in 2025 Tech Job Market?
Аналитика, маркетинг и монетизация
• Протестируйте уродливый пейвол: вот почему вам стоит это сделать
• Тим Суини назвал Apple и Google «бандитскими» компаниями
• Skylight — альтернатива TikTok, созданная на основе Bluesky
• Новая игра Tinder проверяет ваши навыки флирта с ИИ-персонажами
• Apple Invites не разрушили рынок, а создали его заново
• Инди-геймдев и A/B тесты: совместить несовместимое
•
Push Notifications Statistics (2025)
AI, Устройства, IoT
• Открываем instruct-версию YandexGPT 5 Lite
• Блокбастер на коленке с НЛО, коровами и Ван Даммом. Тестируем нейросети для видео
• Пилим игровой мультиплеерный сервер на базе esp32: завершение. Портируем игру на esp32
• Что вам нужно знать, если вы решили внедрить LLM
• Как мы пишем ML-приложения с использованием паттерна пайплайнов
• Дистанционное управление шлагбаумом с помощью MTC Exolve и GSM модуля
• Что скрывает тупой пульт в вашем умном доме
• «ИИ-агенты для начинающих» — бесплатный курс Microsoft
• Train & Weather Tracker with Raspberry Pi & E-Ink
•
Code DeepSeek V3 From Scratch in Python — Full Course
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS• Конкатенация против интерполяции текста в SwiftUI
• Как правильно организовать проект c модульной архитектурой в iOS-разработке
• Документируем код с помощью DocC
• Google AI Studio: макеты Figma -> iOS приложение на Gemini 2.5 Experimental
• Воспроизведение и редактирование видео с AVFoundation. Часть 1. Ассеты простые
• Обзор Copilot в Xcode на SwiftUI
• Одна билд-система, чтоб править всеми
• Влияние Swift Runtime на производительность приложения
• Разрабатываем CLI-инструменты на Swift
• Бразилия расследует деятельность Apple и App Tracking Transparency
• Вышел swiftly 1.0
• Apple работает над масштабным обновлением приложения Health
• SwiftUI Grid, LazyVGrid, LazyHGrid Explained with Code Examples
•
Building a dependency injection framework•
Fast & Fluid: Integrating Rust egui into SwiftUI•
Profiling apps using Instruments•
ModelActor is Just Weird•
How Trendyol Achieved 70% Faster Build Time with iOS App Revamp•
Presenting an Inspector with SwiftUI•
SwiftUI Craftsmanship: State Management•
The Dark Side of Apple Development: Why Developers Are Struggling On Apple’s Increasingly Hostile Platforms•
Say Goodbye to dismiss: A State-Driven Path to More Maintainable SwiftUI•
Create a Custom Single Select Button in SwiftUI•
Transform your LLM into an Xcode project copilot•
Region-Specific Language Control: Implementing Forced Localization in iOS Apps•
New in Swift 6.1: Test Scoping Traits•
Disable Interactive Dismissal of Navigation Zoom Transition•
Localizing Apple UI in 2025•
Monitoring iOS apps•
SwiftUI in UIKit?! Watch Me Inject Animations into a UIKit App•
SwiftUI Animation Bugs? Here’s How I Fixed Them!•
Animated Dialogs Like Family App Using SwiftUI•
Creating an Over Top View in SwiftUI: A Unique Way to Present Edit Views•
Swift Protocols — An Introduction•
VDAnimation — декларативные анимации для SwiftUI•
DriftCheck — обнаружение утечек памяти
Android• Все знают, какие приложения установлены на вашем телефоне
• Как мы сделали дизайн-систему для мобильных устройств и TV
• Жизнь после отвала eMMC: Загружаем Android с MicroSD
• Lissen: как я красивый плеер для аудиокниг писал
• Как я писал проводник для Wear OS и что из этого вышло
• Разбираем чистую архитектуру в Android: от а до я
• Изучайте многомодульную архитектуру в Compose как можно скорее
• Валидация полей формы в Android приложении и не только
• Поддержка webextensions под Андроид, вторая серия
• BundledSQLiteDriver: новый взгляд на SQLite в Android и Kotlin Multiplatform
• Как мы разработали свой фреймворк SingleState-навигации на Android
• Танцы вокруг дерева семантики: UI-тесты Compose-экранов
• Многомодульность — ответы на вопросы с экспертами
• Как работает Android Work Profile
• Разбор кода магазина приложений
• Google внедряет сторонний биллинг в Google Play в Великобритании
•
APK vs AAB: How We Deliver Android Apps•
Android Architecture — Fetchers update•
Home sweet home: some thoughts on storing files•
Make WebViews edge-to-edge•
Media3 1.6.0 — what’s new?•
Local Database: Comparing Realm, SQLDelight, and Room•
Simplifying Dependency Injection in Android Jetpack Compose with Hilt•
Profile & Benchmark Android Builds•
Understanding Dispatchers: Main and Main.immediate•
Hybrid Encryption in Android: Secure Communication Between Mobile and Backend Systems•
Why Kotlin’s callbackFlow can cause memory leak (And How to Fix It!)•
Android Builds: Simple Recipes to Enhance Developer Productivity•
Enhancing app performance in Android•
Anatomy of the SDK Runtime•
No more Manual Koin Initialization — New Context Binding is Awesome•
Android Builds: Simple Recipes to Enhance Developer Productivity•
Gradle, Kotlin, Spring Skeleton — пример многомодульной сборки•
Tack Android — красивый метроном для Android•
AnimationSequence — последовательные анимации для Jetpack Compose
Кроссплатформа• Dart/Flutter — применяя zero/empty объекты ко всему
• Реализация простого SSE клиента на Dart
• Kotlin в GitHub Actions. Расширяем горизонты KMP
• Как я перестал бояться и полюбил компилятор Dart
•
Exposing SwiftUI Views to React Native: An Integration Guide•
Deep Dive into Haptics: Enhancing User Experience through Tactile Feedback•
Develop Your Own Networking Client In Compose MultiPlatform•
Shopping list and Compose Multiplatform•
Build Gen AI Apps Fast with Firebase and Flutter: A Hands-On Starter Guide•
Leveraging Dart FFI for high-performance ML in Flutter — a practical implementation•
How to Implement Swipe Actions in Flutter with Slidable•
Flutter Routing Done Right: A Scalable Approach•
Using Platform-Specific APIs in KMP Apps•
Flutter Belgium Meetup #23•
The Ultimate React Native Course — Build Your First Mobile App in 2025
Разработка• Как работать в разработке в условиях спада
• Разработка топ мобильной игры в соло, с нуля, без бюджета, без движка, без знания языка программирования. Начало
• Это весело и забавно… пока ваш босс не узнает про вайб-кодинг
• Нет никакого вайб-инжиниринга
• Пишем игру на LUA для часов Xiaomi Redmi Watch 4.Часть 1. Знакомство с экосистемой Xiaomi
• Отказоустойчивая распределённая архитектура для UX-аналитики
• Avito UX meetup: взаимодействие, метрики и мемы
• Полный обзор новой операционной системы HarmonyOS Next. Получилось ли?
• Профессия: cистемный аналитик
• Открытое алгоритмическое собеседование
•
Deploying a Swift Server App to Fly.io and Railway•
Setting up a translation system for your Android and iOS app•
How our Meditation App Broke Records Overnight, almost crashing our servers•
WattWise: Terminal-Based Power Monitoring Using Smart Plugs•
Making Uber’s ExperimentEvaluation Engine 100x Faster•
The 13 software engineering laws•
Full 2025 Backend Dev Crash Course for Beginners With Spring Boot (Kotlin, JWT Auth, MongoDB)•
How to Survive in 2025 Tech Job Market?
Аналитика, маркетинг и монетизация• Протестируйте уродливый пейвол: вот почему вам стоит это сделать
• Тим Суини назвал Apple и Google «бандитскими» компаниями
• Skylight — альтернатива TikTok, созданная на основе Bluesky
• Новая игра Tinder проверяет ваши навыки флирта с ИИ-персонажами
• Apple Invites не разрушили рынок, а создали его заново
• Инди-геймдев и A/B тесты: совместить несовместимое
•
Push Notifications Statistics (2025)
AI, Устройства, IoT• Открываем instruct-версию YandexGPT 5 Lite
• Блокбастер на коленке с НЛО, коровами и Ван Даммом. Тестируем нейросети для видео
• Пилим игровой мультиплеерный сервер на базе esp32: завершение. Портируем игру на esp32
• Что вам нужно знать, если вы решили внедрить LLM
• Как мы пишем ML-приложения с использованием паттерна пайплайнов
• Дистанционное управление шлагбаумом с помощью MTC Exolve и GSM модуля
• Что скрывает тупой пульт в вашем умном доме
• «ИИ-агенты для начинающих» — бесплатный курс Microsoft
• Train & Weather Tracker with Raspberry Pi & E-Ink
•
Code DeepSeek V3 From Scratch in Python — Full Course← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
