В новом дайджесте iOS-разработка в Zed и Picture-in-Picture в 2ГИС, автоматизация версионирования и системные идеи, которые никогда не работают, посудомойка в облаке, дело асинхронного программирования, ускорение Android-сборки и многое другое. Заходите!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS
• Настраиваем работу с iOS-проектами в Zed
• Расследуем дело асинхронного программирования с Леонидом Каневским
• Как 40 строк кода ускорили End to End тесты на iOS более чем на 50%
• SwiftUI. Навигация по строке в разделяемом координаторе
• Исследуем мир фото и видео редакторов
• Найди и исправь ошибки в коде — Задачи с собеседования
• Запускаем приложения на своем iOS-симуляторе
• Осторожно, Combine!
• Позаботимся о памяти при использовании value-типов
• Swift – больше, чем язык для iOS
• WWDC 25 пройдет с 9 по 13 июня 2025
•
SwiftUI TabView: Explained with Code Examples
•
Public-key cryptography with CryptoKit for iOS
•
The Composable Architecture: How Architectural Design Decisions Influence Performance
•
Strategies to avoid merge conflicts in Xcode Projects
•
Creating and Using Protocols in Swift
•
Awaiting multiple async tasks in Swift
•
The Simple Life(cycle) of a SwiftUI View in 2025
•
Clean Up Your Sheet API
•
OptionSet vs. enum in Swift: A Deep Dive with Use Cases
•
SwiftUI MVVM Explained (Beginner Friendly)
•
My checklist before submitting a new app to App Store Connect
•
Beyond Video Transcription: How to work with Videos in Gemini 2.5 Pro Experimental in Swift
•
How to turn a SwiftUI color into a gradient
•
Designing for Apple Intelligence: Extending your app features to the system
•
The Vibe Shift Amongst Apple Developers
•
Detecting Barcodes on an image with the Vision Framework
•
Using StoreKit’s ExternalPurchaseLink
•
Building Flexible, Styled ListItems in SwiftUI
•
Optimize your Swift test suite to run faster
•
Videos from Swift Heroes 2024
•
Staggered Animated View Using SwiftUI
•
Advanced SwiftUI Animations — PhaseAnimator
•
A case for Custom Bindings in SwiftUI: Essential Tips and Tricks
•
VoiceMemos Waveform Audio Scrubber Using SwiftUI — Waveform Visualization
•
Step By Step — счетчик шагов с геймификацией
•
AestheticText — строки равной ширины
Android
• Хакнуть Qt: как мы запускали Picture-in-Picture в навигаторе 2ГИС
• Как мы ускоряли Android-сборку «селлера»
• Топ-7 утечек памяти Android и как их избежать
• Dagger 2 и жизненный цикл
• Сценарии использования ServerSocket
• Как работать с Custom Layout в Jetpack Compose
• Основы цветовой системы Material3 для Android-разработчиков
• Как мы следим за качеством unit-тестов
• Kotlin и Jetpack Compose: портируем DOOM на смарт-часы
• ServerSocket на Android в пределах одной сети
• Практический GrapheneOS для параноиков
• Корутины Kotlin: быстрый старт
• С заботой о комфортном просмотре: как команда VK справляется с высокой нагрузкой на видеоплеер на Android-устройствах
• Распутываем легаси-код на Android проекте
• Почему вам стоит включить Gradle Configuration Cache
• Интеграция GeckoView в Dynamic Feature
• Последнее слово в Android-навигации
• Google будет разрабатывать Android в закрытом режиме
• Google укрепляет экосистему Android
•
OpenAI vs. DeepSeek: Which AI Understands Kotlin Better?
•
Exploring Jetpack Compose: SearchBar
•
UseCases: Injectable Functions
•
A new way of handling one-off events in your Android application (and even more)
•
Understanding Notifications in Android: A Developer’s Guide
•
Understanding ViewModel Scoping in Jetpack Compose
•
Six Ways to Start a Coroutine in Kotlin, Ranked
•
Compose Hot Reload is Now Available
•
Android Context — Part 2: The Android Internals Deep Dive
•
10 Kotlin Coroutine Mistakes Seniors Should Avoid
•
How to Automatically Test Jetpack Compose Navigation
•
3 neat animations you can create with Modifier.animateBounds
•
Setting Up Dependency Injection Using Anvil: A Step-by-Step Guide
•
Introduction to the SDK Runtime
•
How to Refactor Legacy Android Code With a Clear Step-By-Step Approach
•
Applying the Observer Pattern in Kotlin
•
Validating the chaos of RSS feeds with JetBrains’ Junie & some domain modeling sorcery
•
MCP Kotlin SDK — Kotlin-реализация Model Context Protocol
•
Scratchify — скретч-карты на Jetpack Compose Multiplatform
Кроссплатформа
• Автоматизация версионирования в Kotlin Multiplatform: Решение для Android и iOS
• Kotlin не для Android
• Как мы делали суперапп «Дилер онлайн», и что из этого получилось
• Совместная работа Kotlin/Native GC и ARC в iOS
•
Streamline your KMP development with Pale Blue KMP Core
•
From an Android to a Kotlin Multiplatform library
•
Stunning Animations with Custom Fragment Shaders
•
10 Principles for Writing Clean Code in Dart
•
Integrating Native Swift Code in a Kotlin Compose Multiplatform App
•
Integrating GraphQL in Compose Multiplatform project
Разработка
• «Давайте просто…»: системные идеи, которые звучат хорошо, но почти никогда не работают
• Как я «взломал» популярное приложение и добыл корпоративный токен OpenAI
• Самые высокооплачиваемые вакансии марта в сфере разработки приложений
• Забытые концепции прошлого: как Дзен Palm взрастил лучшую мобильную ОС и приложения для неё более 25 лет назад?
• Основные принципы создания иконок
• Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов
• Правовой статус кода
• Пишем рекомендательную систему музыки на Java
• Задача из Моего Собеседования в Amazon
• Ада Лавлейс и программирование
• Осознанный подход к метрикам
•
Revenge of the junior developer
•
Cracking the code of vibe coding
•
Getting Started with TDD: A Practical Guide to Beginning a Lasting Practice
•
The role of developer skills in agentic coding
•
How Apple Pay Handles 41 Million Transactions a Day Securely
•
Mocking Star — мощный инструмент мокирования запросов
•
Blocks — крошечный клон Minecraft на C и GLSL
•
ttyd — шаринг терминала через веб
Аналитика, маркетинг и монетизация
• Установки Signal после скандала выросли на 28%
• ЕС закроет антимонопольное расследование в отношении экрана выбора браузера Apple
• Arcade переходит в ИИ создании от ювелирных изделий к товарам для дома
AI, Устройства, IoT
• Не буду я подключать посудомойку к вашему дурацкому облаку
• ИИ совершил прорыв в прогнозировании погоды
• Разработчики вынуждены отбиваться от ИИ-парсеров
• Что такое Model Context Protocol
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

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

• Настраиваем работу с iOS-проектами в Zed
• Расследуем дело асинхронного программирования с Леонидом Каневским
• Как 40 строк кода ускорили End to End тесты на iOS более чем на 50%
• SwiftUI. Навигация по строке в разделяемом координаторе
• Исследуем мир фото и видео редакторов
• Найди и исправь ошибки в коде — Задачи с собеседования
• Запускаем приложения на своем iOS-симуляторе
• Осторожно, Combine!
• Позаботимся о памяти при использовании value-типов
• Swift – больше, чем язык для iOS
• WWDC 25 пройдет с 9 по 13 июня 2025
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Хакнуть Qt: как мы запускали Picture-in-Picture в навигаторе 2ГИС
• Как мы ускоряли Android-сборку «селлера»
• Топ-7 утечек памяти Android и как их избежать
• Dagger 2 и жизненный цикл
• Сценарии использования ServerSocket
• Как работать с Custom Layout в Jetpack Compose
• Основы цветовой системы Material3 для Android-разработчиков
• Как мы следим за качеством unit-тестов
• Kotlin и Jetpack Compose: портируем DOOM на смарт-часы
• ServerSocket на Android в пределах одной сети
• Практический GrapheneOS для параноиков
• Корутины Kotlin: быстрый старт
• С заботой о комфортном просмотре: как команда VK справляется с высокой нагрузкой на видеоплеер на Android-устройствах
• Распутываем легаси-код на Android проекте
• Почему вам стоит включить Gradle Configuration Cache
• Интеграция GeckoView в Dynamic Feature
• Последнее слово в Android-навигации
• Google будет разрабатывать Android в закрытом режиме
• Google укрепляет экосистему Android
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Автоматизация версионирования в Kotlin Multiplatform: Решение для Android и iOS
• Kotlin не для Android
• Как мы делали суперапп «Дилер онлайн», и что из этого получилось
• Совместная работа Kotlin/Native GC и ARC в iOS
•

•

•

•

•

•


• «Давайте просто…»: системные идеи, которые звучат хорошо, но почти никогда не работают
• Как я «взломал» популярное приложение и добыл корпоративный токен OpenAI
• Самые высокооплачиваемые вакансии марта в сфере разработки приложений
• Забытые концепции прошлого: как Дзен Palm взрастил лучшую мобильную ОС и приложения для неё более 25 лет назад?
• Основные принципы создания иконок
• Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов
• Правовой статус кода
• Пишем рекомендательную систему музыки на Java
• Задача из Моего Собеседования в Amazon
• Ада Лавлейс и программирование
• Осознанный подход к метрикам
•

•

•

•

•

•

•

•


• Установки Signal после скандала выросли на 28%
• ЕС закроет антимонопольное расследование в отношении экрана выбора браузера Apple
• Arcade переходит в ИИ создании от ювелирных изделий к товарам для дома

• Не буду я подключать посудомойку к вашему дурацкому облаку
• ИИ совершил прорыв в прогнозировании погоды
• Разработчики вынуждены отбиваться от ИИ-парсеров
• Что такое Model Context Protocol
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.