Мобильная разработка за неделю #536 (22 — 28 апреля)

В новом дайджесте гистограммы и локации в iOS, ViewModel и координаторы в Android, виджеты в Flutter, дизайн-система, Fallout в Excel, заработки разработчиков игр для Playdate и многое другое. Подключайтесь!

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

6rtj0mnt2l3juvq5chrboilduqi.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Оптимизируем обновление местоположения с помощью CLLocationUpdate в Swift
• Создаем гистограмму с помощью Swift Charts
• Организация и поддержка нативных UI-тестов в iOS
• Apple сократила заказ Vision Pro
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMy favorite Xcode keyboard shortcuts to be more productive
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTrigger value pattern in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDeep Dive Into Macros
• 377ae0333d0f4b7b97307c9eea5ee21a.gifInitializing @MainActor type from a non-isolated context in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGetting started with Apollo iOS for GraphQL in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDynamic gradient using the average image color in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to use SwiftData outside SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing @Environment in SwiftUI to link Swift Package dependencies
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFoundational Tools in iOS
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhat are lazy vars in Swift?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow one line of code led to +50% faster Swift compilation for tens of thousands of teams
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAudio Input Device Switch Management in AVAudioSession
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftUI loading states with a twist; Solving a mutation puzzle
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Mirror Any View in SwiftUI?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAdapting UIHostingController to changes in SwiftUI View size
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Range Slider
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwift Server Side Meetup
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftData Value Transformers With Transformable
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngImprove Test Clarity (TDD with SwiftUI)
• 96716bcb926741e79bb1c284a88083ca.pngEasyCrypto — новые технологии в отслеживании криптовалют
• 96716bcb926741e79bb1c284a88083ca.pngEeveeSpotify — получение бесплатного Spotify Premium
• 96716bcb926741e79bb1c284a88083ca.pngZephyr — синхронизация UserDefaults через iCloud

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 3
• Обзор архитектуры Compose с использованием паттерна «координатор»
• Эволюция разработки под Android
• Jetpack Compose для ленивых
• Безопасность android-приложений. Реверсим OWASP MASTG Crackme 1
• Рекомпозиция в Compose: что не видно разработчику невооруженным глазом
• Находим и увольняем low-перформеров
• Android 15 заставит приложения переходить в темный режим, даже если они его не поддерживают
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing XML Views in Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifI Removed JetPack Compose from My App
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA Pattern for Composing Flow Operations
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBeware of Build Time Bloat
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMigrating from the ClickableText composable to LinkAnnotation
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDot. Dash. Design
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReady, Aim, Release: Android app rollout tips
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to detect Process Death issues
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Navigation: Up vs Back
• 377ae0333d0f4b7b97307c9eea5ee21a.gifShared Element Transitions in Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifEnhancing Retrofit API Calls in Android Using Interceptors
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCode Sketching with Kotlin Notebooks: Developer Guide
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin: An Illustrated Guide — Generic Variance
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin Coroutines 101: Async Programming in Practice
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUpdate Your Compass — New Android Orientation API
• 377ae0333d0f4b7b97307c9eea5ee21a.gifK2 Compiler Performance Benchmarks and How to Measure Them on Your Projects
• 377ae0333d0f4b7b97307c9eea5ee21a.gifApp Architecture: How to map data between layers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin«s Explicit Backing Fields: A Cleaner Way to Work with MutableStateFlow
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWhy YOU Have the WRONG Focus as an Android Developer
• gtu1iaz0-ajkbqpeq8n6dmql4zq.png4 Ways To Debug Recomposition in Your Jetpack Compose UI
• 96716bcb926741e79bb1c284a88083ca.pngFlowExt — расширения для Flow
• 96716bcb926741e79bb1c284a88083ca.pngN8 — библиотека навигации на основе состояний
• 96716bcb926741e79bb1c284a88083ca.pngFirebase Kotlin SDK — Kotlin-first SDK для Firebase

malx8hbgozt6lee8rmxmg96_s6a.pngКроссплатформа

• Создавайте виджеты главного экрана iOS с помощью Flutter
• 4 урока после 4 месяцев разработки на Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreate a multiplatform app using Ktor and SQLDelight
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReact Native Masters: Tips for Building React Native Apps that Run Smoothly
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBeyond Code Generation: Crafting Custom Hive Adapters
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to block Screenshots in your Flutter app
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter and Dart at Google Cloud Next
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPowerful Dart typedef

7081c634ec176ab6b953d9d19e82a09a.pngРазработка

• Как рефакторинг чуть не разрушил мой брак
• Дай знать, где ты находишься: как мы разработали навигатор по Эрмитажу
• Как мы создавали дизайн-систему: опыт компании Звук
• 5 главных трендов среди мобильных приложений в 2024 году
• Как сделать игру интересной
• Сделайте что-то реальное в свободное время
• Микроанимация и ховер-эффекты в интерфейсе: как улучшить пользовательский опыт
• Встраиваем Unity в мобильное приложение. Боль и костыли
• Особенности построения интерфейса для разных платформ
• Как проходит архитектурная секция в команду мобильной разработки Яндекс 360
• Настройка CI/CD
• ИИ-помощник для программирования Augment получает $252 млн
• Microsoft открыла код MS-DOS 4.0
• Разработчик сделал ролевую игру Fallout в Excel
• Horizon OS открывается для сторонних компаний
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPreventing Fraud at Robinhood using Graph Intelligence
• 377ae0333d0f4b7b97307c9eea5ee21a.gifI accidentally built a meme search engine
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy we suck at estimating software projects
• 377ae0333d0f4b7b97307c9eea5ee21a.gifI«m a programmer and I«m stupid
• 377ae0333d0f4b7b97307c9eea5ee21a.gif4 Software Design Principles I Learned the Hard Way
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Road Less Starred: Lessons Learned from My Markdown Twain Library
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFrom Hired! … to Fired! Avoid these 2 Developer Career Death Traps
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTop 10 Cognitive Biases in Product Design
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUI/UX Case Study: Designing a gamified app to help users manage screen time

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

• RevenueCat привлекает $12 млн в рамках Серии C и расширяет управление подписками в Интернете
• Apple Search Ads запускается в Бразилии и в других странах Латинской Америки
• Glance продвигает свой экран блокировки в США
• Маркетологи в мобайле: Галина Голубева («Национальная Лотерея»)
• Mood.camera делает из iPhone старую фотокамеру
• Разработчики игр для Playdate заработали $544,290.12
• Новый тренд в стриминге зарабатывает миллионы
• Улучшили результаты рекламы iOS-приложения, увеличив число покупок в 8 раз

8538129f5e7b404a720121cb9c3814db.jpgAI, Устройства, IoT

• DMX голова: трепанация черепа и замена мозга (превращение в 3D платформу)
• Наблюдаем за домом через Telegram
• Операционная система реального времени RT-Thread 5.1: что это за ОС и какие у неё возможности?
• Apple выпускает модели искусственного интеллекта с открытым исходным кодом, которые работают на устройстве

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

© Habrahabr.ru