Мобильная разработка за неделю #571 (13 — 19 января)
В новом дайджесте обсуждаем костыли поддержки iOS 15 на SwiftUI и корутины Kotlin, приложения на Go и шаблон на все случаи жизни, 30 уроков от 30 лучших продуктовых лидеров, мест Snap в виде исчезающих фотографий в iMessage, переделку одного устройства и многое другое. Подключайтесь!
Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS
• Костыли, костыли и ещё раз костыли. Или поддержка iOS 15 на SwiftUI
• Кодогенерация: кому нужна и как настроить
• SwiftUI: алхимия приложений — превращаем идеив реальность
• Тактики ускорения билда: матиз, кобальт, камри 3.5
• SwiftUI: Custom TabBar + animation
• Малоизвестные представления SwiftUI
• Множественное число в текстовых представлениях SwiftUI с помощью склонения
• Используем диалог подтверждения в SwiftUI
• Приложения без статуса трейдера будут удаляться из App Store в ЕС
• Adopting Swift 6 across the app codebase
• Accessibility That Fits
• Handle plurals in SwiftUI Text views with inflection
• Swift 6: Typed Throws
• Using Copilot to write a raindrop audio synthesizer using AVAudioEngine
• Legacy Code Rescue: Taming a Thousand-Line View Controller
• How to use cryptographic hash functions in CryptoKit for iOS security
• Creating a Network Manager in SwiftUI with Clean Code Principles
• Using Approval Tests to Bring Legacy Code Under Test
• Exploring Tab View Styles in SwiftUI
• SwiftUI Lists: Present rows of data explained with code examples
• Bringing App Intents to Your SwiftUI App
• Swift 6.0 Actors: Goodbye Race Conditions!
• SwiftUI: Zipping Files
• Managing Singletons in Memory in Swift
• I«ve been doing this since 2009 and Apple has officially exhausted me
• Design an Analytics Manager in iOS
• How to organize TabView in SwiftUI using Composable Architecture
• Apple Engineer Shows How To Build a SwiftUI Step Counter
• Complete Document Scanner App
• Working with C and C++ in Apple environment
• sRouting — навигационный фреймворк для SwiftUI
• Blueprint — декларативный UI-конструктор
Android
• Go в GUI, я создал
• Распространенные ошибки в шаблоне UseCase для Android
• Kotlin Coroutines под капотом: отмена корутин
• Корутины в Kotlin: делаем «Optimised Out» переменные видимыми
• Примеры использования File Templates для типовых сценариев, где требуется шаблонный код + Экспорт и импорт File Templates в IDE от Intellij
• Управление настройками с помощью Jetpack DataStore: Простой подход к сохранению данных разных типов
• Переезжаем с фрагментов на (De)compose
• Как устроена разработка в Яндекс.Клавиатуре
• Android + AI. Решаем задачи с умом
• В чем отличие между job и supervisor job — вопросы с собеседований
• Android Automotive получит больше приложений
• How modifiers order affects Compose UI appearance
• FilterChip Dropdown selector in Jetpack Compose
• Top 3 Most Common Animations You Can Use in Your Jetpack Compose Project
• Android Dynamic Animated SVGs (with Lottie Dynamic Properties)
• 5 steps to use Paging3 library with Jetpack Compose
• How We Reduced the WINK+ Android App to Less Than 10MB
• Reverse-Engineering the Compose Compiler Plugin: Intercepting the Frontend
• DiffUtils, Myers» Algorithm and Jetpack Compose
• Getting Started with CameraX in Jetpack Compose
• Exploring ViewModel Internals
• From Junior to Senior: Evolving UseCases and ViewModel in Android Clean Architecture
• Integrating Google ML Kit for Barcode Scanning in Jetpack Compose Android Apps
• Handling One-Time Events in Jetpack Compose: Channels vs. SharedFlow
• Tap to focus: Mastering CameraX Transformations in Jetpack Compose
• Function, KFunction, KCallable, and all those other function types in Kotlin
• 5 Things You MUST Do Before Deploying Your App to Google Play (or you«ll regret it)
• The Beginner to Industry-Ready Roadmap For Android & KMP Development In 2025
• We fixed an inconsistency in Kotlin (non-local break & continue)
• What are all of those Kotlin function types for?
• MMKV — эффективное key-valu хранилище от Tencent
• ViTune — музыкальный плеер для Android
• Aspecto — идеальная сетка для Jetpack Compos/Multiplatform
Кроссплатформа
• CodeStyle на Flutter-проектах: базовые принципы и правила — шаблон на все случаи жизни
• Дружим RabbitMQ и Flutter/Dart
• Альтернатива Firebase Dynamic Links на KMP
• Mastering Scrollable in Flutter
• How to Release Your Flutter App on the Google Play Store
• Mastering Flutter Testing: Integration Tests
• Logging In Compose Multiplatform
• Introducing Mirai — A Server Driven UI framework for Flutter
• MVVM: Officially Recommended by Google for Flutter Development
• 10 Flutter Widgets Probably Haven«t Heard Of (But Should Be Using!)
• Flutter Live Activity: From Development to Testing
Разработка
• Как iPhone заставил UX и интерфейс в авто меняться и почему концерны до сих пор не могут оправиться от этого?
• 30 уроков от 30 лучших продуктовых лидеров
• Как начать тестировать подписки в Google Play и App Store
• Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов
• Основы DevEx: ищем, куда исчезает время программистов
• Заменяем облака домашним сервером — Selfhosting, homelab
• 20% вакансий в Интернете на самом деле существует
• Генеральный директор Sonos Патрик Спенс покидает свой пост после неудачного запуска приложения
• How to Choose the Right Database in a System Design Interview
• How to build an AI side project using AI in 2025
• Boosting Performance in a Diagramming App with Quadtrees and Binary Search on Path
• Test-Driven Development with an LLM for Fun and Profit
• The documentation problem in development
Аналитика, маркетинг и монетизация
• Маркетологи в мобайле: Иван Останков (Островок)
• Создатель Gas и tbh сделал приложение для исчезающих фотографий в iMessage
• JOY Ads: UGC как система
• Pixelfed — децентрализованная альтернатива Нельзяграм
• Приложения для здорового питания в России 2024
• Самые скачиваемые и зарабатывающие приложения в мире в декабре 2024
• Рынок корпоративных мобильных приложений России. История, участники, тренды
• Gamelight превысила цели по D30 ROAS на 246% для Sunshine Island от Stillfront Group
• В преддверии бана TikTok, количество изучающих китайский в Duolingo выросло на 216%
• The price of your product is wrong
AI, Устройства, IoT
• Небольшая переделка одного устройства
• Двухкомнатная квартира в новостройке: как сделать ее и красивой, и умной?
• Практическое обучение с подкреплением: от забав с MuJoCo’м до битв на арене
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.