Мобильная разработка за неделю #587 (17 — 25 мая). android.. android. ios.. android. ios. Аналитика мобильных приложений.. android. ios. Аналитика мобильных приложений. Монетизация мобильных приложений.. android. ios. Аналитика мобильных приложений. Монетизация мобильных приложений. Разработка мобильных приложений.. android. ios. Аналитика мобильных приложений. Монетизация мобильных приложений. Разработка мобильных приложений. Разработка под Android.. android. ios. Аналитика мобильных приложений. Монетизация мобильных приложений. Разработка мобильных приложений. Разработка под Android. Разработка под iOS.
На этой неделе прошла I/O 2025 и главное на ней было посвящено ИИ, но и для Android-разработчиков есть много обновлений — новая навигация Jetpack Navigation 3, новые функции в Android Studio, обновления Google Play и т.д. Кроме этого новые релизы Flutter и Dart, плагин KMP для IntelliJ IDEA и Android Studio, большое обновление DivKit, тестирование без инцидентов в проде и многое другое. Заходите!

Мобильная разработка за неделю #587 (17 — 25 мая) - 1

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

Мобильная разработка за неделю #587 (17 — 25 мая) - 2 iOS

• Когда отладчик Swift лжет: скрытая стоимость компиляторных оптимизаций
• Работа в Aviasales, уход в сторону от iOS, поиск информации
• TOP 10 горячих клавиш для Xcode
• Swift Plugins: ускоряем сборку проекта
• Объединяем Combine и Swift Concurrency
• Мобильная разработка за неделю #587 (17 — 25 мая) - 3 SQLite Databases in App Group Containers: Just Don’t
• Мобильная разработка за неделю #587 (17 — 25 мая) - 4 Using Model Context Protocol in iOS apps
• Мобильная разработка за неделю #587 (17 — 25 мая) - 5 Let’s Build: PrettyPrint, a Better CLI Output
• Мобильная разработка за неделю #587 (17 — 25 мая) - 6 Institutional Purchases: Understanding and Detecting
• Мобильная разработка за неделю #587 (17 — 25 мая) - 7 Mesh gradients in SwiftUI
• Мобильная разработка за неделю #587 (17 — 25 мая) - 8 When the Swift Debugger Lies: The Hidden Cost of Compiler Optimizations
• Мобильная разработка за неделю #587 (17 — 25 мая) - 9 SwiftUI: Drawing with PencilKit. Basic To (A Little) Advance
• Мобильная разработка за неделю #587 (17 — 25 мая) - 10 What the Diff? Understanding SwiftUI’s Diffing Engine
• Мобильная разработка за неделю #587 (17 — 25 мая) - 11 Combining gestures and animations with SwiftUI
• Мобильная разработка за неделю #587 (17 — 25 мая) - 12 Exploring concurrency changes in Swift 6.2
• Мобильная разработка за неделю #587 (17 — 25 мая) - 13 Simplifying Dynamic Layouts with ViewThatFits in SwiftUI
• Мобильная разработка за неделю #587 (17 — 25 мая) - 14 Experience the Charm of Swift: One-Click DataFrame Export
• Мобильная разработка за неделю #587 (17 — 25 мая) - 15 Stop using Timer.publish in your SwiftUI views
• Мобильная разработка за неделю #587 (17 — 25 мая) - 16 Mastering Swift Concurrency
• Мобильная разработка за неделю #587 (17 — 25 мая) - 17 Unifying form validation using TCA
• Мобильная разработка за неделю #587 (17 — 25 мая) - 18 Graph-Based State Management in iOS Application
• Мобильная разработка за неделю #587 (17 — 25 мая) - 19 System Design: Design PullToRefresh for Large DataSets
• Мобильная разработка за неделю #587 (17 — 25 мая) - 20 The evolution of native engineering at Tripadvisor: Part 1
• Мобильная разработка за неделю #587 (17 — 25 мая) - 21 Colibri: The Fully Declarative And Turing-Complete Language Lurking Inside Swift’s Type System
• Мобильная разработка за неделю #587 (17 — 25 мая) - 22 10 Hidden Xcode Features That Will Boost Your Productivity
• Мобильная разработка за неделю #587 (17 — 25 мая) - 23 App Launch Time Optimization Techniques — iOS Development
• Мобильная разработка за неделю #587 (17 — 25 мая) - 24 Building Scrollable Tab View Using SwiftUI
• Мобильная разработка за неделю #587 (17 — 25 мая) - 25 How to Cancel a Task at anytime in Swift Concurrency
• Мобильная разработка за неделю #587 (17 — 25 мая) - 26 Мобильная разработка за неделю #587 (17 — 25 мая) - 27 Mastering Custom Container Views in SwiftUI
• SwiftUI — Task Management App UI
• Мобильная разработка за неделю #587 (17 — 25 мая) - 28 Rosalind — анализ артефактов Xcode
• Мобильная разработка за неделю #587 (17 — 25 мая) - 29 Xtool — кроссплатформенная замена Xcode
• Мобильная разработка за неделю #587 (17 — 25 мая) - 30 ErrorKit — сообщения об ошибках Swift, удобные для человека

Мобильная разработка за неделю #587 (17 — 25 мая) - 31 Android

• Видим невидимое: контроль качества Android-библиотек через объектив AppTracer Lite SDK
• 10 трюков Jetpack Compose, о которых вы, вероятно, не знаете
• Мечтают ли андроиды о Robolectric? Разбираем фреймворк по косточкам
• Открываем Konfeature, нашу open-source библиотеку для удобной работы с Feature Flags
• Контракты в Kotlin или как заключить сделку с совестью
• Google I/O 2025. Что нового в Android
• Что нового в Jetpack Compose
• Что нового в Google Play
• Android Studio получает больше ИИ-функций
• Android XR получил модных партнеров и Android XR SDK Developer Preview 2
• Google анонсирует Jetpack Navigation 3
• Развеиваем мифы о Stability в Compose: оптимизации Strong Skipping
• Память в Android, утечки и OOM
• Взлом и защита Android-приложений
• Моментальный запуск: как VK Клипы работают с плейбэком видео на Android
• Мобильная разработка за неделю #587 (17 — 25 мая) - 32 Merge Your Computations
• Мобильная разработка за неделю #587 (17 — 25 мая) - 33 UI layer architecture for persistent UI elements
• Мобильная разработка за неделю #587 (17 — 25 мая) - 34 Implementing Passkeys in Android — A Full-Stack Guide
• Мобильная разработка за неделю #587 (17 — 25 мая) - 35 Eliminating Array Bounds Checks
• Мобильная разработка за неделю #587 (17 — 25 мая) - 36 Exploring Jetpack Compose for Widgets with Glance
• Мобильная разработка за неделю #587 (17 — 25 мая) - 37 Deep dive into annotations in Jetpack Compose
• Мобильная разработка за неделю #587 (17 — 25 мая) - 38 I Got an Offer from PayPal as an Android Developer — Here’s How I Cracked the Interview
• Мобильная разработка за неделю #587 (17 — 25 мая) - 39 How to Create a Custom Corner Badge in Jetpack Compose
• Мобильная разработка за неделю #587 (17 — 25 мая) - 40 Google Play personal account wasted 42 days of my life
• Мобильная разработка за неделю #587 (17 — 25 мая) - 41 Mastering ProGuard in Android Multi-Module Projects
• Мобильная разработка за неделю #587 (17 — 25 мая) - 42 Handling Backpressure in Kotlin Flows — buffer, conflate, collectLatest, debounce, sample and throttleFirst
• Мобильная разработка за неделю #587 (17 — 25 мая) - 43 Retrofit 3.0.0 is Here: Less Boilerplate, More Buzz
• Мобильная разработка за неделю #587 (17 — 25 мая) - 44 Material 3 Expressive Design: A New Era
• Мобильная разработка за неделю #587 (17 — 25 мая) - 45 Most Android Apps Break This One Clean Code Rule!
• Мобильная разработка за неделю #587 (17 — 25 мая) - 46 Build Sawa Community application using Android Studio, Kotlin, MVVM
• Мобильная разработка за неделю #587 (17 — 25 мая) - 47 KotlinConf 2025 Unpacked: Upcoming Language Features, AI-Powered Development, and Kotlin Multiplatform Upgrades
• Мобильная разработка за неделю #587 (17 — 25 мая) - 48 Building a Clean Domain-Driven Architecture in Android
• Мобильная разработка за неделю #587 (17 — 25 мая) - 49 Jetbrains releases an official LSP for Kotlin
• Мобильная разработка за неделю #587 (17 — 25 мая) - 50 What’s new in Android
• Мобильная разработка за неделю #587 (17 — 25 мая) - 51 What’s new in Google Play
• Мобильная разработка за неделю #587 (17 — 25 мая) - 52 What’s new in Android development tools
• Мобильная разработка за неделю #587 (17 — 25 мая) - 53 Adaptive Android development makes your app shine across devices
• Мобильная разработка за неделю #587 (17 — 25 мая) - 54 Seamless video capture, editing and playback with CameraX and Media3
• Мобильная разработка за неделю #587 (17 — 25 мая) - 55 Building differentiated apps for Android XR with 3D content
• Мобильная разработка за неделю #587 (17 — 25 мая) - 56 Unlock user productivity with desktop windowing and stylus support
• Мобильная разработка за неделю #587 (17 — 25 мая) - 57 Finding the perfect Gemini fit on Android
• Мобильная разработка за неделю #587 (17 — 25 мая) - 58 Best practices for using web in your Android apps
• Мобильная разработка за неделю #587 (17 — 25 мая) - 59 New in-car app experiences
• Мобильная разработка за неделю #587 (17 — 25 мая) - 60 Mastering text input in Compose
• Мобильная разработка за неделю #587 (17 — 25 мая) - 61 Build next-level UX with Material 3 Expressive
• Мобильная разработка за неделю #587 (17 — 25 мая) - 62 Android notifications and Live Updates
• Мобильная разработка за неделю #587 (17 — 25 мая) - 63 Google Home APIs, tools, and Gemini capabilities for your apps
• Мобильная разработка за неделю #587 (17 — 25 мая) - 64 How You Get Your Compose UI From Hundreds of Recompositions to Almost Zero
• Мобильная разработка за неделю #587 (17 — 25 мая) - 65 KotlinConf’25 – Day 1 Livestream (Feat. Keynote)
• Мобильная разработка за неделю #587 (17 — 25 мая) - 66 Gradle Configuration Cache: 2x faster, 4x smaller, and ready for Gradle 9.0
• Мобильная разработка за неделю #587 (17 — 25 мая) - 67 Jetpack Compose Design Patterns — лучшие паттерны проектирования
• Мобильная разработка за неделю #587 (17 — 25 мая) - 68 Androidify — конструктор ботов Android с новейшими технологиями
• Мобильная разработка за неделю #587 (17 — 25 мая) - 69 ZenTone — звуковой сигнал нужной частоты и громкости в Android
• Мобильная разработка за неделю #587 (17 — 25 мая) - 70 WikWok — Википедия в стиле TikTok

Мобильная разработка за неделю #587 (17 — 25 мая) - 71 Кроссплатформа

• Новый плагин KMP для IntelliJ IDEA и Android Studio
• Нативная мощь: Flutter SDK на C++ ядре. Часть 1
• Как я пытался спасти аккаунт разработчика в Google Play и в итоге сделал крипто-приложение
• Flutter 3.32 — Что нового во Flutter?
• Dart 3.8 — что нового в Dart?
• KStorage — единый подход к key-value хранилищам на Kotlin Multiplatform
• Аналитика во Flutter-приложениях: Какие события отслеживать, примеры архитектур и настройка Firebase
• Generics в Dart
• Настраиваем навигацию во Flutter-приложении через AutoRoute
• Мобильная разработка за неделю #587 (17 — 25 мая) - 72 Inspect Flutter API Calls in Chrome DevTools
• Мобильная разработка за неделю #587 (17 — 25 мая) - 73 6 weeks into React Native dev. App works. I don’t.
• Мобильная разработка за неделю #587 (17 — 25 мая) - 74 Flutter Push Notifications: A Complete Guide (Android + iOS)
• Мобильная разработка за неделю #587 (17 — 25 мая) - 75 Dart & Flutter momentum at Google I/O 2025
• Мобильная разработка за неделю #587 (17 — 25 мая) - 76 A Pragmatic Guide to Migrating from Native to React Native (or choosing not to)
• Мобильная разработка за неделю #587 (17 — 25 мая) - 77 Flutter on ARMv6
• Мобильная разработка за неделю #587 (17 — 25 мая) - 78 Demystify KMP builds and structure

Мобильная разработка за неделю #587 (17 — 25 мая) - 79 Разработка

• Нам не нужно больше приложений — нам нужны лучшие приложения
• Большое обновление DivKit: визуальный редактор, поддержка форм, аниматоры
• Stitch — новый ИИ-генератор дизайна от Google
• Это не шутка: чем «Аврора» уже круче Android
• Google I/O 2025 Keynote: ожидания vs реальность. И первые впечатления, конечно
• Тестирование без инцидентов в проде. Утопия или реальность?
• Стажировок мало, а джуны должны уметь всё: как становятся ИТ-специалистом в 2025 году
• Как тимлиду принимать сложные решения
• Язык программирования будущего – английский: визионерство, LLM, новая парадигма
• Как собеседовать мобильных инженеров? Системный дизайн спешит на помощь! (все собеседования)
• Проводим и проходим Mobile System Design-интервью
• Что такое Language Server Protocol и зачем он нужен
• Мобильная разработка за неделю #587 (17 — 25 мая) - 80 The Dumbest Move in Tech Right Now: Laying Off Developers Because of AI
• Мобильная разработка за неделю #587 (17 — 25 мая) - 81 Coding Without a Laptop — Two Weeks with AR Glasses and Linux on Android

Мобильная разработка за неделю #587 (17 — 25 мая) - 82 Аналитика, маркетинг и монетизация

• Fortnite вернулся в App Store
• Spotify заявляет, что поддержка внешних платежей на iOS уже увеличила количество подписок
• Маркетологи в мобайле: Елена Зайцева (СМО Достависта)
• Мобильная разработка за неделю #587 (17 — 25 мая) - 83 Duolingo’s small UI switch that changes everything

Мобильная разработка за неделю #587 (17 — 25 мая) - 84 AI, Устройства, IoT

• На входе аудио, на выходе — саммари. Собираем локальный транскрибатор из бесплатного софта
• Знакомьтесь, FRIDA. Открытая эмбеддинг-модель для русского языка
• Как я взломал миллионы умных весов через уязвимости в API и железе
• Умный дом без боли: интеграция нейросетей в Node-RED шаг за шагом
• E-paper Arduino термометр на ESP-IDF
• Умная квартира с видом на Енисей: есть ли смысл в XIOT?
• Хочу умный дом, умнее меня: история одного концепта
• OpenAI покупает компанию Джони Айва
• Vertex AI превращается в Firebase AI Logic
• Google выпустил приложение NotebookLM
• GitHub запустил нового ИИ-агента в Copilot
• OpenAI запускает Codex, агента по разработке, в ChatGPT
• MagicMirror — умное зеркало своими руками
• Мобильная разработка за неделю #587 (17 — 25 мая) - 85 How Google is accelerating code migrations with AI
• Мобильная разработка за неделю #587 (17 — 25 мая) - 86 How Pinterest Accelerates ML Feature Iterations via Effective Backfill

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

Автор: RoboForm

Источник