В этой подборке рисуем карты с помощью Swift Charts и графики сна с помощью Compose, разбираемся с Swift Concurrency и плагинами Android Studio, бесплатными инструменты для создания иконок, трендами мобильных приложений и многим другим. Подключайтесь!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS
• Рисуем карты с помощью Swift Charts
• Обновления в Swift Concurrency: что нас ждёт в Swift 6
• Что Swift Build означает для экосистемы Swift
• 8 советов по производительности Swift, которые я узнал после многих лет программирования
• Sheet с автоматическим подсчётом высоты и поддержкой iOS 15
• Используем ImageRenderer в SwiftUI
• В App Store впервые обнаружены приложения с вредоносным ПО для чтения скриншотов
•
How combine lists of Strings into natural and localized sentences in Swift
•
Rethinking Our Color System: A Type-Safe Approach in Swift
•
Parameterized tests in Swift: Reducing boilerplate code
•
All You Need to Know for iOS App Localization
•
Say Goodbye to Dependency Over-Injection in ViewModels
•
How I Created a Personal Component Design System for iOS Apps
•
Mastering TaskGroups in Swift
•
Testing SceneStorage state persistence in Xcode
•
Jailbreak Protection on iOS
•
Getting started with Core Image
•
Debugging the communication between Xcode and XCBBuildService
•
Swift 5.9: Copyable Syntax
•
Dependency Injection 101 with Swift
•
Swipe Actions For ScrollViews | SwiftUI
•
self vs. Self in Swift – Everything You Need to Know!
•
SwiftUI Custom Alerts | iOS/iPadOS 17 & 18
•
SymbolPicker — пикер SF Symbols
•
Swift Build — система сборки для Swift
Android
• Рисуем график сна в Compose
• Плагины: автоматизация разработки в продуктах JetBrains (на примере Android Studio)
• Пишем простой плагин для Android Studio
• Реактивный велосипед для SDK
•
Migrating to the Compose PullToRefreshBox
•
BasicTextField bubble wrap
•
Exercise Caution When Using run7Blocking on Android
•
Seamless shimmer integration with existing Compose code
•
Build kids app experiences for Wear OS
•
A Use Case for `UseCase`s in Kotlin
•
Fast Feedback Loops & Composable Preview Scanner
•
The Open-Closed Principle (OCP) — SOLID Principles Deep Dive in Kotlin/Android
•
System design of DeepSeek Android app
•
Simplify ViewBinding in Android with ViewBindingPropertyDelegate 2.0
•
Simplify Navigation in Jetpack Compose with CompositionLocal: No more passing of NavControllers
•
Perfectionize your app performance and tracing with Perfetto
•
Android XR: Ready, Set, Go!
•
Designing Effective UI Components in Jetpack Compose
•
20+ Advanced Kotlin Idioms Every Developer Should Know
•
Automating UI Model Generation With KSP
•
Android Studio Meerkat | 2024.3.1 RC 1 now available
•
Creating a Modern Bottom Navigation Bar with a Curved Cut-Out for a Docked/Floating Action Button in Jetpack Compose
•
When to Use a Single Activity Architecture On Android?
•
How to Get Started With Firebase Test Lab In Android Studio
•
Guards in Kotlin 2.1
•
Mihon — открытый ридер манги для Android
•
Compose Swipeable Cards — стопка карточек с листанием
Кроссплатформа
• Как создать плагин для IntelliJ IDEA на примере генератора директорий для проекта
• Пока Apple саботирует развитие PWA, мы сделали демо с контактами, пуш-уведомлениями и биометрией
• Как PWA помогло клиентам ЮMoney продолжать получать пуши — даже без приложения
• Новости о макросах и сериализации данных в Dart
• Такие разные Slivers. Часть 3: работа с пространством
• Облегчаем разработку Flutter-приложений: Создание плагинов с помощью Kotlin Multiplatform
• Новый DI фреймворк для DART и Flutter — sputnik_di
•
A Beginner’s Guide to Unit and Widget Testing in Flutter with Hello World Example
•
Beware of Build Time Bloat
•
Flutter DataGrid: How to Group Data Easily
•
Wrong Country? No Flutter for You!
•
Flutter made my Dev Team 3x more productive than React Native
•
Transtation — перевод с Kotlin Multiplatform
Разработка
• Где твои чаевые, дружище? No tip, no trip
• Хардкодить флаги функций — это нормально
• Бесплатные инструменты для создания иконок
• Современные подходы к управлению UI: low-сode & Backend-Driven UI
• Дизайн дисфункция или клавиатуры для TV приложений
• Roadmap интеграционной аналитики
• Информационная безопасность Ozon — Кирилл Мякишев
• CodeSignal запустил ИИ-обучение софт-скилам
• Обеспечение качества кода 2024 — отчет JetBrains
•
Software development topics I’ve changed my mind on after 10 years in the industry
•
What Okta Bcrypt incident can teach us about designing better APIs
•
How Are Images REALLY Stored?
•
Appwrite and Supabase for an Offline-First App – Here’s My Take
•
AI Engineer Roadmap – How to Learn AI in 2025
•
Designing the Perfect Side Menu in Figma — For Beginners
Аналитика, маркетинг и монетизация
• Тренды мобильных приложений 2025: ИИ и конфиденциальность меняют мобильную индустрию
• Walkstar — новое приложение для iOS, которое ставит песни на паузу, когда вы перестаете двигаться
• Spotify впервые получил годовую прибыль
• Apple выпустила приложение Invites для организации мероприятий
• Праздники прошли, а инсайты остались: как пользователи приложений проводят Новогодний период (и что с этим делать маркетологам)
• Приложение Hot Tub появится на iOS в EC
• Dub: приложение для копирования биржевой торговли, о котором говорят подростки
• Категории для роста приложений с искусственным интеллектом
• США — самый прибыльный рынок для ИИ-приложений
•
Designing for Application States: Creating Seamless User Experience
•
The reality of dating apps
•
5 Steps to Earn Your First Dollar from Your Mobile App (Built with Flutter)
AI, Устройства, IoT
• Общение с умными устройствами силами PHP
• Wiren Board как швейцарский нож: от выращивания страусов до цеха металлообработки
• Как с помощью ML-модели мы помогли исполнителям получать больше заказов на Авито
• GitHub Copilot оживляет макеты, генерируя код из изображений
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

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

• Рисуем карты с помощью Swift Charts
• Обновления в Swift Concurrency: что нас ждёт в Swift 6
• Что Swift Build означает для экосистемы Swift
• 8 советов по производительности Swift, которые я узнал после многих лет программирования
• Sheet с автоматическим подсчётом высоты и поддержкой iOS 15
• Используем ImageRenderer в SwiftUI
• В App Store впервые обнаружены приложения с вредоносным ПО для чтения скриншотов
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Рисуем график сна в Compose
• Плагины: автоматизация разработки в продуктах JetBrains (на примере Android Studio)
• Пишем простой плагин для Android Studio
• Реактивный велосипед для SDK
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Как создать плагин для IntelliJ IDEA на примере генератора директорий для проекта
• Пока Apple саботирует развитие PWA, мы сделали демо с контактами, пуш-уведомлениями и биометрией
• Как PWA помогло клиентам ЮMoney продолжать получать пуши — даже без приложения
• Новости о макросах и сериализации данных в Dart
• Такие разные Slivers. Часть 3: работа с пространством
• Облегчаем разработку Flutter-приложений: Создание плагинов с помощью Kotlin Multiplatform
• Новый DI фреймворк для DART и Flutter — sputnik_di
•

•

•

•

•

•


• Где твои чаевые, дружище? No tip, no trip
• Хардкодить флаги функций — это нормально
• Бесплатные инструменты для создания иконок
• Современные подходы к управлению UI: low-сode & Backend-Driven UI
• Дизайн дисфункция или клавиатуры для TV приложений
• Roadmap интеграционной аналитики
• Информационная безопасность Ozon — Кирилл Мякишев
• CodeSignal запустил ИИ-обучение софт-скилам
• Обеспечение качества кода 2024 — отчет JetBrains
•

•

•

•

•

•


• Тренды мобильных приложений 2025: ИИ и конфиденциальность меняют мобильную индустрию
• Walkstar — новое приложение для iOS, которое ставит песни на паузу, когда вы перестаете двигаться
• Spotify впервые получил годовую прибыль
• Apple выпустила приложение Invites для организации мероприятий
• Праздники прошли, а инсайты остались: как пользователи приложений проводят Новогодний период (и что с этим делать маркетологам)
• Приложение Hot Tub появится на iOS в EC
• Dub: приложение для копирования биржевой торговли, о котором говорят подростки
• Категории для роста приложений с искусственным интеллектом
• США — самый прибыльный рынок для ИИ-приложений
•

•

•


• Общение с умными устройствами силами PHP
• Wiren Board как швейцарский нож: от выращивания страусов до цеха металлообработки
• Как с помощью ML-модели мы помогли исполнителям получать больше заказов на Авито
• GitHub Copilot оживляет макеты, генерируя код из изображений
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.