Мобильная разработка за неделю #630 (11 — 17 мая)

от автора

Возвращаемся после небольшого майского перерыва с новым дайджестом — советы и хитрости Xcode 16 и как добиться 0 рекомпозиций в сложном кастомном UI, три раунда войны с Android-клавиатурой в WebView и обновление без разрешения пользователя, 10 оптимизаций Swift, которые улучшат производительность, тестирование Compose по-новому, декларативная навигация для Flutter, под капотом перезапуска приложения Бургер Кинг и многое другое. Заходите!

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

iOS

Советы и хитрости Xcode 16: скрытые возможности, которые экономят часы работы
Live Activities: как мы сделали обновление без разрешения пользователя
10 оптимизаций Swift, которые улучшат производительность приложения
Первый реальный технический бенчмарк ИИ или ищем самый быстрый XML парсер для Apple платформы
Foundation Models в iOS 26: разбор фреймворка для on-device LLM
SwiftUI: Scroll, Text и немного магии
Когда структуры в Swift — не твои бро
Учим Metal и image processing лишь бы не верстать на iOS
Race Condition: проблема гонки потоков — что это и как избежать?
Под капотом iOS-крешей
TextField с автодополнением
SwiftUI-навигация: просто, нативно и декларативно
Удивительный мир внутри .ipa
Core Motion framework в финансовых приложениях
Apple назвала победителей Swift Student Challenge — AI-приложения, которые помогают людям с ограничениями
Фильтры для лица под капотом: Vision, сегментация и шейдеры в бою
Один code style для всех: как укротить SwiftLint в масштабах компании
Онлайн-определитель номеров: секреты реализации Live Caller ID для iOS
Версия AirPods Pro с камерами почти готова
3 Key Strategies to Make SwiftUI Views More Reusable
Formatting Values in SwiftUI Text and TextField
How to Think About Performance in iOS
AI-Powered Xcode Simulator Automation (token-efficient)
URLSession to Electrons: How Networking works on iOS
The Flaky Test That Taught Me How Swift Concurrency Actually Works
You’re Wasting Time Without These 20 Swift Snippets
12 SwiftUI Tricks Senior iOS Developers Use Every Day
The 5 Repositories that Taught Me iOS Architecture
KeyFramed OnBoarding Setup Animation Using SwiftUI
How to Build an Infinite Scroll List Without Sacrificing Performance
X App’s New Slide Out Menu Using SwiftUI
Xcode Instruments Trace Analyzer (MCP) — ИИ-анализатор для Instruments
DiffableKit — декларативная обертка для Diffable Data Source

Android

10 фич Jetpack Compose, которые изменят ваш подход к разработке Android-приложений
Mission Impossible: как добиться 0 рекомпозиций в сложном кастомном UI
Я хотел adjustResize. Получил adjustNothing. Три раунда войны с Android-клавиатурой в WebView
Swagger-генерация на Android. Часть 1. Каких проблем нам подкинул бекенд и Android проект
Тестирование Compose по-новому: простота, надежность, гибкость
Путешествие к центру Композиции
Scout: новый фреймворк для ускоренного и безболезненного управления зависимостями
Компиляторные плагины: модификация и анализ Сompose
Как я code coverage внедрял да Gradle plugin для baseline писал
В Android добавлена ​​функция, которая предотвратит бесконечную прокрутку лент в социальных сетях
Kotlin Flow и реальные задачи SberDevices: решение callback hell и backpressure
Kotlin Flow через призму реальных задач в SberDevices: Игра Потоков
Rich Errors: Checked Exceptions в Kotlin
Подменяем зависимости не оставляя следов
(Не)очевидные связи: визуализация бизнес-логики через код
A complete guide to migrating from Google Play Billing v7 to v8 (and preparing for v9)
Adding Cross-Module Routing to Navigation 3 with KSP: nav3-helper Design and Usage
Migrating from Koin DSL to Koin Annotations in a Multimodule Project: A Step-by-Step Guide
Collection Literals in Kotlin
Tuning Compose Themes Live: A Visual Feedback Loop for UI Design
Rust in Android Development: Complete Guide
Mission Impossible: How to Achieve 0 Recompositions in a Complex Custom UI
scrcpy 4.0 released
Verifying Hardware-Backed Keystore on a Custom Android Build
Managing Gradle Daemons while Coding with AI
Engineering Real-Time Conversational Voice AI on Android
State Management in Jetpack Compose Is Finally Mature And Your Architecture Will Never Be the Same
Building Android 16’s App Functions | Game-Changer for AI Assistant Control
Android Studio Quail 1 Canary 5 now available
The Android Show | I/O Edition 2026
Android Developers Office Hours — Offline First Architecture
Why AI could make native app development great again
5 Tricks for Agentic Android Development (Make your agent output what you want!)
Beyond LLMs: Kotlin Game AI
Your Code is Eating Recompositions — Optimize it with THIS Trick
RvSystem Monitor — мониторинг ресурсов на Jetpack Compose и Rust
Jetpack Compose Animations — коллекция анимаций и лучших практик

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

Опенсорсим yx_navigation — декларативную навигацию для Flutter
Как я сделал на Flutter игру для разработчиков. Часть 2 + Часть 1
Как я сделал групповые звонки в React Native мессенджере: WebRTC, CallKit и грабли production’а
Я реализовал Double Ratchet в React Native мессенджере. Разбор протокола и кода
Как избежать утечек памяти во Flutter
Outbox‑паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет
Widlet — pet-проект про Server-Driven UI на Dart
Кастомим пейнтер через CustomPainter
Мы пилили монолит. Много нас, а он один
Проблемы геймификации мобильного приложения
KMP в X5 Tech: переход бигтеха на новые технологии
Testing subscriptions on Compose Multiplatform: one test suite for iOS and Android
The Clean Line: Swift Export for KMP | KMP Bits
Why Flutter 3.41 Is Quietly Changing Everything for Cross-Platform Developers
Building a Production-Grade Adaptive Layout System in Kotlin Multiplatform — From Phone to Foldable
Flutter. Firebase now supports Functions in Dart
Building a Production-Grade Adaptive Layout System in Kotlin Multiplatform — From Phone to Foldable
Kore — дизайн-система для Compose Multiplatform

Разработка

Как мы сделали автогенерацию документации для CI/CD из комментариев в коде
Почему мало просто перейти на SwiftUI и Compose: заглядываем под капот перезапуска приложения Бургер Кинг
Push-уведомления в мессенджере: production-грабли которых нет в туториалах
Новая эра мобильной разработки: запускаем LLM локально на телефоне
От личной продуктивности к командной: сила шаблонизации в IDE
Живая картинка: анимации и эффекты в кроссплатформенном BDUI-движке
Камера в KasperskyOS Mobile
Релокация разработчика в Австралию — Визы, поиск работы в IT, эмиграция
Airbnb заявляет, что теперь 60% нового кода пишет искусственный интеллект
Application performance is a product requirement
The Freelance Roadmap Most Developers Discover Too Late
Most Developers Are Using AI Wrong — And Companies Are Starting to Notice
Is Software Losing Its Head?
From Notepad To No Pad, Is The IDE Dead?
I Built Uber’s Real-Time Tracking System (50,000 Concurrent Drivers, Sub-100ms Updates)

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

Шпаргалка по дизайну скриншотов для App Store (2026)
Как достичь $10K MRR за 6 месяцев только на органике — кейс HeyBabe, чат–бота с ИИ
Apple работает над внедрением ИИ-агентов в App Store
TikTok запустил сервис GO для бронирования отелей и развлечений
Сколько я заработал в RuStore за 6 месяцев
Структура пейвола, плейсменты и цены — полный разбор
Meet the subscription app pre-mortem: how to plan for failure before you ship
How to know if your free tier is generous enough

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

Вам не нужен OpenClaw — напишите свой
Шайтан‑коробочка: Как карманная игра из 90-х научилась читать мысли людей
Теперь Codex можно управлять с телефона
Google добавляет функцию диктовки на базе Gemini в Gboard
Google анонсирует GoogleBook с акцентом на технологии Gemini Intelligence
Обзор Lenovo Yoga 7a: великолепный ноутбук, но AMD Ryzen это шаг назад
Google DeepMind сотрудничает с EVE Online для исследования «систем, управляемых игроками»

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

ссылка на оригинал статьи https://habr.com/ru/articles/1036078/