В этом выпуске конкатенация против интерполяции, дизайн-система для мобильных устройств и 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, где еще больше материалов для мобильных разработчиков.

• Конкатенация против интерполяции текста в 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
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Все знают, какие приложения установлены на вашем телефоне
• Как мы сделали дизайн-систему для мобильных устройств и 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 в Великобритании
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Dart/Flutter — применяя zero/empty объекты ко всему
• Реализация простого SSE клиента на Dart
• Kotlin в GitHub Actions. Расширяем горизонты KMP
• Как я перестал бояться и полюбил компилятор Dart
•

•

•

•

•

•

•

•

•

•

•


• Как работать в разработке в условиях спада
• Разработка топ мобильной игры в соло, с нуля, без бюджета, без движка, без знания языка программирования. Начало
• Это весело и забавно… пока ваш босс не узнает про вайб-кодинг
• Нет никакого вайб-инжиниринга
• Пишем игру на LUA для часов Xiaomi Redmi Watch 4.Часть 1. Знакомство с экосистемой Xiaomi
• Отказоустойчивая распределённая архитектура для UX-аналитики
• Avito UX meetup: взаимодействие, метрики и мемы
• Полный обзор новой операционной системы HarmonyOS Next. Получилось ли?
• Профессия: cистемный аналитик
• Открытое алгоритмическое собеседование
•

•

•

•

•

•

•

•


• Протестируйте уродливый пейвол: вот почему вам стоит это сделать
• Тим Суини назвал Apple и Google «бандитскими» компаниями
• Skylight — альтернатива TikTok, созданная на основе Bluesky
• Новая игра Tinder проверяет ваши навыки флирта с ИИ-персонажами
• Apple Invites не разрушили рынок, а создали его заново
• Инди-геймдев и A/B тесты: совместить несовместимое
•


• Открываем instruct-версию YandexGPT 5 Lite
• Блокбастер на коленке с НЛО, коровами и Ван Даммом. Тестируем нейросети для видео
• Пилим игровой мультиплеерный сервер на базе esp32: завершение. Портируем игру на esp32
• Что вам нужно знать, если вы решили внедрить LLM
• Как мы пишем ML-приложения с использованием паттерна пайплайнов
• Дистанционное управление шлагбаумом с помощью MTC Exolve и GSM модуля
• Что скрывает тупой пульт в вашем умном доме
• «ИИ-агенты для начинающих» — бесплатный курс Microsoft
• Train & Weather Tracker with Raspberry Pi & E-Ink
•

← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.