Новый большой дайджест после праздничного перерыва — архитектурный линтинг и Material 3 Expressive, тёмные уголки обфускации и Compose Multiplatform для iOS, типобезопасная передача результатов, сломанные OTP и открытые конечные точки, UI-дизайн с ChatGPT и многое другое. Заходите!



Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.

iOS

• Архитектурный линтинг для Swift: часть 4
• Используем Core Motion в SwiftUI-приложении
• XCUITest для начинающих: как сделать тестирование iOS красивым с Allure
• GPT, DeepSeek и Qwen: идеальные unit-тесты в эхо-камере
• Новые функции доступности Apple для iPhone, iPad, Mac и Apple Vision Pro
• Учим Metal и image processing лишь бы не верстать на iOS
• Race Condition: проблема гонки потоков — что это и как избежать?
• Под капотом iOS-крешей
• TextField с автодополнением
• SwiftUI-навигация: просто, нативно и декларативно
• Удивительный мир внутри .ipa
• Core Motion framework в финансовых приложениях
• Scheduling notifications with time, calendar, and location triggers in iOS
• Adding dependencies to binary Swift packages
• Concurrency-Safe Testing in Swift 6.1 with @TaskLocal and Test Scoping
• Knowing when the battle is lost with XCUITests
• Demystifying Picture in Picture on iOS
• SwiftUI View Model Ownership
• Regular Expressions in Swift
• Formatting data inside SwiftUI Text views
• Vibe Xcoding your apps
• Optimized mathematical computations in Swift
• Customizing an App Intent
• SwiftUI Picker With Optional Selection
• Debug crashes in iOS using MetricKit
• Synthesizing text into speech
• Demystifying SwiftUI’s .ignoredByLayout()
• Default isolation with Swift 6.2
• The Power of KeyPath in SwiftUI
• Matrix3D: Large Photogrammetry Model
• Using ScrollViewReader for Programmatic Scrolling in SwiftUI: A Tutorial
• Change a map viewpoint with MapKit
• Ultimate Guide to Dependency Injection for Modular iOS app
• Create a Simple Theming Architecture with SwiftUI
• Resizable ScrollView Header | Scroll To Hide Header — SwiftUI
• SwiftUI Theme Switcher in 3 Minutes – Light & Dark Mode Made Easy
• Building emoji reactions in 5 minutes with SwiftUI
• Customized Paywall using Native SwiftUI StoreKit APIs
• Apple Engineer Shows How To Build a SwiftUI Sleep Tracker
• 3 Ways to Initialize @State in SwiftUI
• Apple’s Widget Backdoor
• SwiftOpenAI — пакет Swift для взаимодействия с публичным API OpenAI
• ProgressUI — кастомизируемые и анимированные индикаторы прогресса для SwiftUI
• Prefire — библиотека тестирования на основе Xcode Preview

Android

• Руководство по потреблению памяти Android Studio
• Типобезопасная передача результатов между экранами в Compose с Jetpack Navigation
• Google анонсирует дизайн Material 3 Expressive
• Мастерство фокусов на Compose (часть 2): как работает запрос фокуса
• Прячем код по-настоящему: тёмные уголки обфускации R8 и ProGuard
• ML KIT — Современное решение для сканирования в Android приложениях
• Jetpack Compose 1.8 уже здесь — и он меняет правила игры
• Подготовьте свои Android-приложения для страницы памяти в 16 КБ
• Тестирование Compose по-новому: простота, надежность, гибкость
• Путешествие к центру Композиции
• Scout: новый фреймворк для ускоренного и безболезненного управления зависимостями
• Компиляторные плагины: модификация и анализ Сompose
• Как я code coverage внедрял да Gradle plugin для baseline писал
• Stale Data & Leaks were killing my Kotlin apps for 5 years. Here’s the fix.
• Does Junie Create Accessible Android Apps?
• Simpler Gradle plugin loading
• Blazing fast app uninstalls for lazy Android Devs
• Kotlin’s Builder Functions: A Better Way to Create Lists, Maps, Strings & Sets
• Building delightful Android camera and media experiences
• Fast Feedback: Winning Back 60% of Our CI Time
• Effective Strategies for Testing Asynchronous Kotlin Code
• Compose UI Performance Secrets (Part 1): 5 Core Optimizations Every Developer Should Know
• Compose UI Performance Secrets (Part 2): 5 Advanced Techniques for Ultra-Smooth Apps
• Using movableContentOf for shared transitions in Jetpack Compose
• How to Use Firebase Remote Config in Server: Dynamic Control and AI Parameter Management
• Securing Android: Behind a few seconds of payment transaction …
• Why is Modern Android Development So Hard?
• How to Run Local LLM (AI) in Android Studio
• Avoid using Array in the data class constructor in Kotlin
• Modern Android App Architecture with Clean Code Principles (2025 Edition)
• Start building with Material 3 Expressive
• Imperative vs Declarative in Android — The Real Difference
• Tooltips in Compose Material 3
• Builder & Factory patterns in Kotlin — A Walk-Through Object
• The navigation drawer is being deprecated in the Material 3 expressive update
• The Android Show: I/O Edition
• Now in Android: 116 – Google I/O, Gemini, and Jetpack Compose 1.8
• What’s new in Android Studio Meerkat Feature Drop
• Android Testing Strategies
• Tools and patterns for scalable Android app testing
• 5 Anti-Patterns With Coroutines & Flows You MUST Avoid!
• How Kotlin is Powering TV Broadcasts Worldwide
• Android & Kotlin Development Masterclass – Full Course
• Build your App from Scratch without Material 3 Color System
• Compose Unstyled — набор дизайн-компонентов Compose
• Haze — размытие глассморфизма для Compose
• Night Clock — минималистичные часы для Android

Кроссплатформа

• Compose Multiplatform для iOS стабилен и ждет ваших приложений
• Когда JavaScript недостаточно: Практика разработки нативных модулей для React Native
• Kotlin Multiplatform vs Compose Multiplatform: отличия, способы создания и как запустить на iOS
• Готов ли Compose iOS к продакшену?
• Implementing DataStore in Kotlin Multiplatform Projects
• I use this clean architecture setup for all my Flutter projects — finally made it public
• Flutter Tips
• Flutter Isolates: Multithreading Made Easy in Dart
• 5 React Native Truths I Wish I Knew Before Building 10+ Apps
• The Ultimate Guide to Flutter’s Most Useful Packages
• ​​Kotlin Multiplatform: Have your code and eat it too
• MCP Explained for Flutter Developers: Everything You Should Know

Разработка

• Как сломанные OTP и открытые конечные точки могут превратить приложение для знакомств в кошмар
• UI-дизайн с ChatGPT 4o
• Left Shift Testing: как выстроить процесс, чтобы тесты реально помогали
• Как мы в YouGile сделали голосовые круче, чем Telegram. Их полюбят даже хейтеры
• Идеальный процесс взаимодействия аналитика и мобильного разработчика
• Первый проект на HarmonyOS — мой плейлист для старта с нуля
• История одного редизайна. Экран карты в мобильном приложении ОТП Банка
• Погружаемся в пуши. Создаём свою альтернативу сервисам рассылки Push
• Разработчик HarmonyOS Next про ArkTS и HarmonyOS
• Язык программирования Groovy: JVM языки, Java, Kotlin, Gradle, DSL
• Как работают нейроинтерфейсы: киборги, Neuralink, brain-computer interface
• Figma выпускает новые инструменты с искусственным интеллектом для создания сайтов, прототипов приложений и маркетинговых ресурсов
• Learning to Think in an AI World: 5 Lessons for Novice Programmers
• Dumb Leadership Mistakes I’ve Made
• Write the most clever code you possibly can
• When SOLID breaks: Choose CLARITY
• Good vs Great Animations
• Duolingo Just Ended The Term “UX Design”
• Design Messenger — Mobile System Design Mock Interview
• C++ Course: Build an Audio Plugin

Аналитика, маркетинг и монетизация

• Сравнение конверсий IAP и веб платежей в iOS-приложении
• Приложения для знакомств сделали лучший месяц по доходам за всю историю
• В новом приложении Airbnb все, что нужно для отдыха, в одном месте
• Duolingo заменяет сердечки энергией
• Эмулятор Delta сделал Patreon главной системой монетизации в App Store
• Самые скачиваемые и зарабатывающие приложения в России в апреле 2025
• Самые скачиваемые и зарабатывающие приложения в мире в апреле 2025
• Epic Games одержала крупную победу и Apple было предписано выполнить судебное решение по App Store
• Стоит ли разработчикам iOS-приложений переходить на веб-платежи?
• Ask HN: How are you acquiring your first hundred users?

AI, Устройства, IoT

• Как найти и потерять бэкдор в ESP32
• Что убивает ваши IoT-проекты — и как Edge это исправит
• Как декомпозиция повышает точность распознавания текста: опыт с фотографиями СТС
• Галлюцинации моделей текстовых ИИ, и как с ними бороться
• Windsurf выпустил свои ИИ-модели для программной инженерии
• Stability AI выпустила модель генерации звука, которая может работать на смартфонах
• OpenAI хочет создать ОС всей жизни на основе ИИ
• Apple выпустила новый визуальный энкодер FastVLM
• LegoGPT — ИИ-модель для сборки моделей Lego

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