В нашем новом дайджесте переход на Metal и динамические острова, сложность корутин и диплинков, всплывающие окна, A/B-тесты, маркетинг eCommerce приложений, мобильные финансы и многое другое.
Подключайтесь также к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
![](https://habrastorage.org/webt/s-/42/ah/s-42ahig803tyqvnrxb12cfkyay.png)
iOS
• Переход на Metal
• Исследуем Dynamic Island и ActivityKit
• Как 5 приложений для iOS могут сократить время запуска в среднем на 28%
• Apple увеличивает цены на покупки в App Store
• Внедрение iOS 16 идет быстрее iOS 15, но медленнее iOS 14
•
Adding Support for Apple Watch Ultra Action Button
•
Fade the First and Last Elements in a UICollectionView
•
Create a Scalable SwiftUI MVVM Project
•
Introducing The AppIntents Framework — A New Way to Integrate App’s Functionality Into the System
•
New in SwiftUI 4: Expanding TextField
•
iOS 16 Live Activities: Updating Remotely Using Push Notification
•
Getting Started with iOS App Modularization — Extracting Catalog
•
How to: Create Dynamic Island Widgets on iOS 16.1 or above
•
Build a Tetris Game Using SwiftUI
•
New in SwiftUI 4: Share Sheet with ShareLink
•
DocC Tutorial for Swift: Getting Started
•
Displaying live activities in iOS 16
•
New in SwiftUI 4: NavigationSplitView
•
Save Time With User Breakpoints in Xcode
•
SwiftUI Lifecycle: How to Use SwiftUI for Optimal Performance
•
Build to latest iOS device without upgrading to latest Xcode
•
Understanding Swift’s Opaque Types
•
Implement Core Spotlight in a SwiftUI App
•
MVVM + POP to deal with complex UI
•
New in SwiftUI 4: ViewThatFits
•
SwiftUI Lifecycle: How to Use SwiftUI for Optimal Performance
•
Dynamic Islands: примеры Live Activities в Dynamic Island
•
AlertController: функциональный UIAlertController
Android
• Почему исключения в Kotlin Coroutines это сложно и как с этим жить?
• Размер имеет значение! Часть 2
• Ликбез по диплинкам. Часть 2: диплинки с нуля
•
Thinking in Compose
•
Measuring and drawing in Jetpack Compose
•
Design Patterns and Architecture: The Android Developer Roadmap
•
Unit test your NDK library integration
•
Kotlin’s five powerful scope functions you should know how to use
•
CI/CD for Android Devs
•
Using Enums to customize the UI in Android
•
Triggering Alarms Tutorial for Android: Getting Started
•
Design of Kotlin Coroutines
•
Jetpack Compose Composition Tracing
•
How to load and caching image without libraries
•
Logcat in Android Studio Dolphin is Amazing!
•
Modern Android for iOS folks: Swift-Kotlin & SwiftUI-Compose
•
Chaquopy: Python SDK для Android
•
Landscapist: загрузка и показ изображений в Jetpack Compose
Кроссплатформа
• Всплывающие окна на флаттер карте или flutter_map_marker_popup
• Работа со списками во Flutter-приложениях (часть 2)
•
How to Create a Flutter Bluetooth Printer App
•
How to use Flutter with Google Sheets, Apps Script, and Codemagic
•
React Native Clean Architecture — ResoCoder’s way
•
Auto Size any widget in Flutter
•
Announcing Patrol — Flutter-First UI Testing Framework
•
Build Your Mobile App in 5 Days with React Native
•
BioMetric Authentication In Flutter Application
•
Dotlin: Kotlin в Dart
Разработка
• Без А/B результат XЗ, или Как построить высоконагруженную платформу А/B-тестов
• 4 мифа о выборе жанра для вашей новой игры
• Как не потерять собственное приложение
• Понедельный план онбординга для QA-инженера с опытом
• Личный опыт: перезапуск тимлидства в растущей IT-компании. Часть 1
• Дизайн приложений: примеры для вдохновения #82
• Как мы пытались использовать WebGL и что из этого получилось
• Podlodka #286: архитектура фронтенда
• $15 млн в Серии B: Codacy — автоматическая проверка кода
• Три быстрых совета из «Чистого кода», которые сделают вашу команду на 50% эффективнее
•
How I’m a Productive Programmer With a Memory of a Fruit Fly
•
Functional Programming Reading List
•
How to become a super-focused software developer
•
A Pinterest Engineering guide to technical interviews
•
How To Write The PERFECT Pull Request
•
How to plan your exit from software development
•
Prioritizing App Stability — Mobile Performance @ Lyft
•
Tigris: современный масштабируемый бэкенд
Аналитика, маркетинг и монетизация
• Маркетологи в мобайле: Никита Рвачев (Aitarget)
• Публичное собеседование по продуктовой аналитике
• “Состояние маркетинга eCommerce приложений 2022” — отчет AppsFlyer
• Новая образовательная игра Google Arts & Culture возвращает нас в Мезоамерику
• Мобильные финансы 2022 — отчет Liftoff
• Клон BeReal от TikTok завоевывает популярность за пределами США
• BeReal думает над платными функциями
• Tinder помогает собакам найти новый дом
• $15.5 млн: Immortal Game — шахматы с web3 и NFT
• Рост финтех приложений возвращается к норме
• iOS 16 снова выводит виджеты в топы App Store
AI, Устройства, IoT
• Как создать переводчик, который переводит лучше, чем Google Translate
• Как я научил нейросеть распознавать каракули. Введение
• Similar images: API
• Умный дом на Wiren Board и Node-RED: четыре полезных сценария без программирования
• Умный дом на Wiren Board и Node-RED: ещё три полезных сценария без программирования
• Kincony KC868-A64: полный привод 64х64 (для тех, кто знает толк в автоматизации)
• Реализация Интернета вещей для промышленного оборудования простыми методами
• Framework и Google выпустили сборный Chromebook
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь также к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
![](https://habrastorage.org/webt/s-/42/ah/s-42ahig803tyqvnrxb12cfkyay.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Переход на Metal
• Исследуем Dynamic Island и ActivityKit
• Как 5 приложений для iOS могут сократить время запуска в среднем на 28%
• Apple увеличивает цены на покупки в App Store
• Внедрение iOS 16 идет быстрее iOS 15, но медленнее iOS 14
•
![](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/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/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)
• Почему исключения в Kotlin Coroutines это сложно и как с этим жить?
• Размер имеет значение! Часть 2
• Ликбез по диплинкам. Часть 2: диплинки с нуля
•
![](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/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Всплывающие окна на флаттер карте или flutter_map_marker_popup
• Работа со списками во Flutter-приложениях (часть 2)
•
![](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/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Без А/B результат XЗ, или Как построить высоконагруженную платформу А/B-тестов
• 4 мифа о выборе жанра для вашей новой игры
• Как не потерять собственное приложение
• Понедельный план онбординга для QA-инженера с опытом
• Личный опыт: перезапуск тимлидства в растущей IT-компании. Часть 1
• Дизайн приложений: примеры для вдохновения #82
• Как мы пытались использовать WebGL и что из этого получилось
• Podlodka #286: архитектура фронтенда
• $15 млн в Серии B: Codacy — автоматическая проверка кода
• Три быстрых совета из «Чистого кода», которые сделают вашу команду на 50% эффективнее
•
![](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/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Маркетологи в мобайле: Никита Рвачев (Aitarget)
• Публичное собеседование по продуктовой аналитике
• “Состояние маркетинга eCommerce приложений 2022” — отчет AppsFlyer
• Новая образовательная игра Google Arts & Culture возвращает нас в Мезоамерику
• Мобильные финансы 2022 — отчет Liftoff
• Клон BeReal от TikTok завоевывает популярность за пределами США
• BeReal думает над платными функциями
• Tinder помогает собакам найти новый дом
• $15.5 млн: Immortal Game — шахматы с web3 и NFT
• Рост финтех приложений возвращается к норме
• iOS 16 снова выводит виджеты в топы App Store
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Как создать переводчик, который переводит лучше, чем Google Translate
• Как я научил нейросеть распознавать каракули. Введение
• Similar images: API
• Умный дом на Wiren Board и Node-RED: четыре полезных сценария без программирования
• Умный дом на Wiren Board и Node-RED: ещё три полезных сценария без программирования
• Kincony KC868-A64: полный привод 64х64 (для тех, кто знает толк в автоматизации)
• Реализация Интернета вещей для промышленного оборудования простыми методами
• Framework и Google выпустили сборный Chromebook
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
debug45
Зря перестали переводить англоязычные заголовки, было удобнее
RoboForm
Ну, большинство читателей проголосовало за английский вариант.