В новом дайджесте гистограммы и локации в iOS, ViewModel и координаторы в Android, виджеты в Flutter, дизайн-система, Fallout в Excel, заработки разработчиков игр для Playdate и многое другое. Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/r/w1560/webt/6r/tj/0m/6rtj0mnt2l3juvq5chrboilduqi.png)
iOS
• Оптимизируем обновление местоположения с помощью CLLocationUpdate в Swift
• Создаем гистограмму с помощью Swift Charts
• Организация и поддержка нативных UI-тестов в iOS
• Apple сократила заказ Vision Pro
•
My favorite Xcode keyboard shortcuts to be more productive
•
Trigger value pattern in SwiftUI
•
Deep Dive Into Macros
•
Initializing @MainActor type from a non-isolated context in Swift
•
Getting started with Apollo iOS for GraphQL in Swift
•
Dynamic gradient using the average image color in SwiftUI
•
How to use SwiftData outside SwiftUI
•
Using @Environment in SwiftUI to link Swift Package dependencies
•
Foundational Tools in iOS
•
What are lazy vars in Swift?
•
How one line of code led to +50% faster Swift compilation for tens of thousands of teams
•
Audio Input Device Switch Management in AVAudioSession
•
SwiftUI loading states with a twist; Solving a mutation puzzle
•
How to Mirror Any View in SwiftUI?
•
Adapting UIHostingController to changes in SwiftUI View size
•
SwiftUI Range Slider
•
Swift Server Side Meetup
•
SwiftData Value Transformers With Transformable
•
Improve Test Clarity (TDD with SwiftUI)
•
EasyCrypto — новые технологии в отслеживании криптовалют
•
EeveeSpotify — получение бесплатного Spotify Premium
•
Zephyr — синхронизация UserDefaults через iCloud
Android
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 3
• Обзор архитектуры Compose с использованием паттерна «координатор»
• Эволюция разработки под Android
• Jetpack Compose для ленивых
• Безопасность android-приложений. Реверсим OWASP MASTG Crackme 1
• Рекомпозиция в Compose: что не видно разработчику невооруженным глазом
• Находим и увольняем low-перформеров
• Android 15 заставит приложения переходить в темный режим, даже если они его не поддерживают
•
Using XML Views in Compose
•
I Removed JetPack Compose from My App
•
A Pattern for Composing Flow Operations
•
Beware of Build Time Bloat
•
Migrating from the ClickableText composable to LinkAnnotation
•
Dot. Dash. Design
•
Ready, Aim, Release: Android app rollout tips
•
How to detect Process Death issues
•
Android Navigation: Up vs Back
•
Shared Element Transitions in Jetpack Compose
•
Enhancing Retrofit API Calls in Android Using Interceptors
•
Code Sketching with Kotlin Notebooks: Developer Guide
•
Kotlin: An Illustrated Guide — Generic Variance
•
Kotlin Coroutines 101: Async Programming in Practice
•
Update Your Compass — New Android Orientation API
•
K2 Compiler Performance Benchmarks and How to Measure Them on Your Projects
•
App Architecture: How to map data between layers
•
Kotlin’s Explicit Backing Fields: A Cleaner Way to Work with MutableStateFlow
•
Why YOU Have the WRONG Focus as an Android Developer
•
4 Ways To Debug Recomposition in Your Jetpack Compose UI
•
FlowExt — расширения для Flow
•
N8 — библиотека навигации на основе состояний
•
Firebase Kotlin SDK — Kotlin-first SDK для Firebase
Кроссплатформа
• Создавайте виджеты главного экрана iOS с помощью Flutter
• 4 урока после 4 месяцев разработки на Flutter
•
Create a multiplatform app using Ktor and SQLDelight
•
React Native Masters: Tips for Building React Native Apps that Run Smoothly
•
Beyond Code Generation: Crafting Custom Hive Adapters
•
How to block Screenshots in your Flutter app
•
Flutter and Dart at Google Cloud Next
•
Powerful Dart typedef
Разработка
• Как рефакторинг чуть не разрушил мой брак
• Дай знать, где ты находишься: как мы разработали навигатор по Эрмитажу
• Как мы создавали дизайн-систему: опыт компании Звук
• 5 главных трендов среди мобильных приложений в 2024 году
• Как сделать игру интересной
• Сделайте что-то реальное в свободное время
• Микроанимация и ховер-эффекты в интерфейсе: как улучшить пользовательский опыт
• Встраиваем Unity в мобильное приложение. Боль и костыли
• Особенности построения интерфейса для разных платформ
• Как проходит архитектурная секция в команду мобильной разработки Яндекс 360
• Настройка CI/CD
• ИИ-помощник для программирования Augment получает $252 млн
• Microsoft открыла код MS-DOS 4.0
• Разработчик сделал ролевую игру Fallout в Excel
• Horizon OS открывается для сторонних компаний
•
Preventing Fraud at Robinhood using Graph Intelligence
•
I accidentally built a meme search engine
•
Why we suck at estimating software projects
•
I’m a programmer and I’m stupid
•
4 Software Design Principles I Learned the Hard Way
•
The Road Less Starred: Lessons Learned from My Markdown Twain Library
•
From Hired!… to Fired! Avoid these 2 Developer Career Death Traps
•
Top 10 Cognitive Biases in Product Design
•
UI/UX Case Study: Designing a gamified app to help users manage screen time
Аналитика, маркетинг и монетизация
• RevenueCat привлекает $12 млн в рамках Серии C и расширяет управление подписками в Интернете
• Apple Search Ads запускается в Бразилии и в других странах Латинской Америки
• Glance продвигает свой экран блокировки в США
• Маркетологи в мобайле: Галина Голубева («Национальная Лотерея»)
• Mood.camera делает из iPhone старую фотокамеру
• Разработчики игр для Playdate заработали $544,290.12
• Новый тренд в стриминге зарабатывает миллионы
• Улучшили результаты рекламы iOS-приложения, увеличив число покупок в 8 раз
AI, Устройства, IoT
• DMX голова: трепанация черепа и замена мозга (превращение в 3D платформу)
• Наблюдаем за домом через Telegram
• Операционная система реального времени RT-Thread 5.1: что это за ОС и какие у неё возможности?
• Apple выпускает модели искусственного интеллекта с открытым исходным кодом, которые работают на устройстве
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/6r/tj/0m/6rtj0mnt2l3juvq5chrboilduqi.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Оптимизируем обновление местоположения с помощью CLLocationUpdate в Swift
• Создаем гистограмму с помощью Swift Charts
• Организация и поддержка нативных UI-тестов в iOS
• Apple сократила заказ Vision Pro
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 3
• Обзор архитектуры Compose с использованием паттерна «координатор»
• Эволюция разработки под Android
• Jetpack Compose для ленивых
• Безопасность android-приложений. Реверсим OWASP MASTG Crackme 1
• Рекомпозиция в Compose: что не видно разработчику невооруженным глазом
• Находим и увольняем low-перформеров
• Android 15 заставит приложения переходить в темный режим, даже если они его не поддерживают
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Создавайте виджеты главного экрана iOS с помощью Flutter
• 4 урока после 4 месяцев разработки на Flutter
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Как рефакторинг чуть не разрушил мой брак
• Дай знать, где ты находишься: как мы разработали навигатор по Эрмитажу
• Как мы создавали дизайн-систему: опыт компании Звук
• 5 главных трендов среди мобильных приложений в 2024 году
• Как сделать игру интересной
• Сделайте что-то реальное в свободное время
• Микроанимация и ховер-эффекты в интерфейсе: как улучшить пользовательский опыт
• Встраиваем Unity в мобильное приложение. Боль и костыли
• Особенности построения интерфейса для разных платформ
• Как проходит архитектурная секция в команду мобильной разработки Яндекс 360
• Настройка CI/CD
• ИИ-помощник для программирования Augment получает $252 млн
• Microsoft открыла код MS-DOS 4.0
• Разработчик сделал ролевую игру Fallout в Excel
• Horizon OS открывается для сторонних компаний
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• RevenueCat привлекает $12 млн в рамках Серии C и расширяет управление подписками в Интернете
• Apple Search Ads запускается в Бразилии и в других странах Латинской Америки
• Glance продвигает свой экран блокировки в США
• Маркетологи в мобайле: Галина Голубева («Национальная Лотерея»)
• Mood.camera делает из iPhone старую фотокамеру
• Разработчики игр для Playdate заработали $544,290.12
• Новый тренд в стриминге зарабатывает миллионы
• Улучшили результаты рекламы iOS-приложения, увеличив число покупок в 8 раз
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• DMX голова: трепанация черепа и замена мозга (превращение в 3D платформу)
• Наблюдаем за домом через Telegram
• Операционная система реального времени RT-Thread 5.1: что это за ОС и какие у неё возможности?
• Apple выпускает модели искусственного интеллекта с открытым исходным кодом, которые работают на устройстве
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.