В нашем новом дайджесте учимся работать с Metric и DivKit, превращаем макеты в код Compose, пишем тексты для экранов подтверждений и сообщений об ошибках, настраиваем Charles, создаем игру для Windows Mobile (самое время!) и делаем многое-многое другое!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

 iOS
iOS
• Отслеживаем сбои приложения с MetricKit
• Server-Driven UI с DivKit
• Performance в SwiftUI
• Одна иконка приложения в Xcode 14
• Аналитика и нотификации для iOS
• Mac App Store стагнирует
• Обновлены гайдлайны App Store
• Стал доступен SKAdNetwork 4.0
• Apple готовится выпустить новые Mac
• Visualise the Matthew Effect with Swift Charts
Visualise the Matthew Effect with Swift Charts
• Three Ways to Refactor Massive SwiftUI
Three Ways to Refactor Massive SwiftUI
• Creating a lane of our own for iOS automation
Creating a lane of our own for iOS automation
• Form Validation in UIKit Made Easy With Combine
Form Validation in UIKit Made Easy With Combine
• Design Patterns in iOS
Design Patterns in iOS
• Swift Composable Architecture
Swift Composable Architecture
• Tracking your iOS app crashes, OOMs and other terminations with MetricKit
Tracking your iOS app crashes, OOMs and other terminations with MetricKit
• Build a 3D Editor in SwiftUI and SceneKit
Build a 3D Editor in SwiftUI and SceneKit
• Fixing SwiftUI navigation with UIKit
Fixing SwiftUI navigation with UIKit
• UIView/NSView styling with @propertyWrapper
UIView/NSView styling with @propertyWrapper
• Create a Card with an Image Outside its Bounds in SwiftUI
Create a Card with an Image Outside its Bounds in SwiftUI
• Build a chat feature using Pusher Channels in Swift
Build a chat feature using Pusher Channels in Swift
• iOS App As a Microservice. Using SwiftUI in Modular App
iOS App As a Microservice. Using SwiftUI in Modular App
• Accelerate Your iOS Build Time Process Within Xcode
Accelerate Your iOS Build Time Process Within Xcode
• How To Avoid Merge Conflicts In Xcode Projects
How To Avoid Merge Conflicts In Xcode Projects
• Custom Tabbar in SwiftUI (iOS 15+)
Custom Tabbar in SwiftUI (iOS 15+)
• PhoneNumberKit: парсинг и форматирование телефонных номеров
PhoneNumberKit: парсинг и форматирование телефонных номеров
• OpenFind: поиск слов на фотографиях
OpenFind: поиск слов на фотографиях
• AlertToast: уведомления и «тосты» для SwiftUI
AlertToast: уведомления и «тосты» для SwiftUI
 Android
Android
• Relay от Google превращает макеты в код Compose
• Китай, Android и чипы RISC-V: зачем китайские компании добавляют поддержку открытой архитектуры в мобильную ОС
• Разбор кода Pocket Casts
• Как в Android запрещали фоновую работу и улучшали расход батареи
• Coroutines: боль обработки ошибок
• Откуда возникает TransactionTooLargeException, если я ничего такого не делал?
• 7 плагинов Android Studio, ускоряющих разработку приложений
• Что там по автотестам на Android в 2022?
• Всем выйти из сумрака: как добавить тень на Android
• Приключения онлайн-кинотеатра Premier в Android TV, или Как мы javascript внедряли
• Экспресс до стора: как мы запускали релизный поезд
• Material Design 3 стал стабильным
• Modelling dating cards navigation with Appyx
Modelling dating cards navigation with Appyx
• Migrating to Navigation with Jetpack Compose
Migrating to Navigation with Jetpack Compose
• Comparing StateFlow, SharedFlow, and CallbackFlow
Comparing StateFlow, SharedFlow, and CallbackFlow
• Sealed classes in Kotlin
Sealed classes in Kotlin
• It’s Time for an App Icon Makeover!
It’s Time for an App Icon Makeover!
• From zero to 10 million lines of Kotlin
From zero to 10 million lines of Kotlin
• Persisting and sharing ink
Persisting and sharing ink
• Customizing the Switch Button in Android
Customizing the Switch Button in Android
• Introducing KMMBridge for Teams
Introducing KMMBridge for Teams
• Gestures in Jetpack Compose: Getting Started
Gestures in Jetpack Compose: Getting Started
• My Experience as an Android Engineer; One Year Later.
My Experience as an Android Engineer; One Year Later.
• Now in Android: a Material 3 case study
Now in Android: a Material 3 case study
• Understand Android Jetpack’s WorkManager in 5 minutes
Understand Android Jetpack’s WorkManager in 5 minutes
• How to pause a coroutine
How to pause a coroutine
• OkLayoutInflater
OkLayoutInflater
• Turbocharge: Storytel’s Story of weekly mobile app releases
Turbocharge: Storytel’s Story of weekly mobile app releases
• Sheets Compose Dialogs: готовые диалоги и View для Compose
Sheets Compose Dialogs: готовые диалоги и View для Compose
• Compose AnimatedList: анимированные списки
Compose AnimatedList: анимированные списки
 Кроссплатформа
Кроссплатформа
• React Native is better than Flutter*
• Как стать Flutter-разработчиком, или Почему кроссплатформа сейчас — это лучший выбор
• Полезные плагины VS Code для разработки кроссплатформенных приложений с использованием React Native и Flutter
• Что почитать для Unity разработчика: Рендер
• Генерация кода API клиента приложения на основе пакета dart openapi generator
• Shortening Flutter test feedback cycle in VS Code
Shortening Flutter test feedback cycle in VS Code
• Using Mason and bricks in your Flutter app: Beginner’s guide
Using Mason and bricks in your Flutter app: Beginner’s guide
• SonarQube with Flutter
SonarQube with Flutter
• Simulate Birds Flocking Using Multi-Agent System and Flutter Flame
Simulate Birds Flocking Using Multi-Agent System and Flutter Flame
• Flutter: Realtime Participants Counter
Flutter: Realtime Participants Counter
• Make your Flutter projects more readable and effective with extensions!
Make your Flutter projects more readable and effective with extensions!
• How we made our app 80% faster
How we made our app 80% faster
• Input Chip In Flutter
Input Chip In Flutter
 Разработка
Разработка
• Вы уверены? Как писать тексты для экранов подтверждения
• Как создавать лучшие сообщения об ошибках — опыт Wix
• Пишем 3D игру под Windows Mobile, ч.1
• Как настроить Charles
• Осознанная автоматизация тестирования в геймдеве
• Podlodka #291: продуктивность разработчика
• Как кастомизировать UI артефакты для Selenide + Selenoid + Allure (with TestOPS)
• Как превратить сайт в удобное мобильное приложение на примере интернет-банка «ВТБ Онлайн»
• Синхронизация в UX-дизайне: как поддерживать единую стилистику сервисов для разных устройств
• Создание кастомных чатов с помощью Firebase Realtime database
• Самые высокооплачиваемые вакансии октября в области разработки приложений
• Самые популярные языки программирования в рейтинге RedMonk
• GitHub достиг дохода $1 млрд в год
• Как в Gas уменьшили нагрузку Redis на CPU на 80%
• Видео Firebase Summit 2022
• Microsoft начинает продажи Windows Dev Kit 2023
• How Discord Indexes Billions Of Messages?
How Discord Indexes Billions Of Messages?
• The Secret Art of Storytelling in Programming
The Secret Art of Storytelling in Programming
• Mobile Design in 2022-2023
Mobile Design in 2022-2023
• My software developer intern quit his job, after 3 working days
My software developer intern quit his job, after 3 working days
• Faster hardware is a bad first solution to slow software
Faster hardware is a bad first solution to slow software
• Kweb — веб-фреймворк для Kotlin
Kweb — веб-фреймворк для Kotlin
 Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация
• Не только tinder вероятно знает с кем вы спите. Патент No: 0342684 A1
• Сколько стоит любовь в Tinder? Unit-экономика финансового отчета 2021 Match Group
• Google приобрел аватары Alter
• Spotify называет правила Apple «душащими конкуренцию» + Spotify убрал покупку аудиокниг из iOS-приложения
• MyTracker запустил «Аудитории» — автоматическую передачу сегментов в рекламные платформы
• Apple открыла дополнительные рекламные места в App Store + Разработчики критикуют новую рекламу в App Store + Apple приостановила размещение рекламы «азартных игр и некоторых других категорий»
• Age of Empires снова выходит для мобильных устройств
• Российский рынок мобильных игр вырастет на 25% в 2022
• Duolingo приближается к $100 млн квартальной выручки
 AI, Устройства, IoT
AI, Устройства, IoT
• Прогнозирование качества шампанского с помощью Machine Learning. Опыт Bollinger
• Нейросети на RISC-V с Movidius Neural Compute Stick
• ESP32 Tuya IoT adapter: родила царица в ночь…
• SWUpdate, Yoctо(ерный) театр и paperina
• Семь способов передачи телеметрии из Azure RTOS через интернет
• Bumble открывает свой ИИ для определения непристойных фотографий
• How To Turn Yourself Into Pixar Character Using Stable Diffusion AI
How To Turn Yourself Into Pixar Character Using Stable Diffusion AI
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

 iOS
iOS• Отслеживаем сбои приложения с MetricKit
• Server-Driven UI с DivKit
• Performance в SwiftUI
• Одна иконка приложения в Xcode 14
• Аналитика и нотификации для iOS
• Mac App Store стагнирует
• Обновлены гайдлайны App Store
• Стал доступен SKAdNetwork 4.0
• Apple готовится выпустить новые Mac
•
 Visualise the Matthew Effect with Swift Charts
Visualise the Matthew Effect with Swift Charts•
 Three Ways to Refactor Massive SwiftUI
Three Ways to Refactor Massive SwiftUI•
 Creating a lane of our own for iOS automation
Creating a lane of our own for iOS automation•
 Form Validation in UIKit Made Easy With Combine
Form Validation in UIKit Made Easy With Combine•
 Design Patterns in iOS
Design Patterns in iOS•
 Swift Composable Architecture
Swift Composable Architecture•
 Tracking your iOS app crashes, OOMs and other terminations with MetricKit
Tracking your iOS app crashes, OOMs and other terminations with MetricKit•
 Build a 3D Editor in SwiftUI and SceneKit
Build a 3D Editor in SwiftUI and SceneKit•
 Fixing SwiftUI navigation with UIKit
Fixing SwiftUI navigation with UIKit•
 UIView/NSView styling with @propertyWrapper
UIView/NSView styling with @propertyWrapper•
 Create a Card with an Image Outside its Bounds in SwiftUI
Create a Card with an Image Outside its Bounds in SwiftUI•
 Build a chat feature using Pusher Channels in Swift
Build a chat feature using Pusher Channels in Swift•
 iOS App As a Microservice. Using SwiftUI in Modular App
iOS App As a Microservice. Using SwiftUI in Modular App•
 Accelerate Your iOS Build Time Process Within Xcode
Accelerate Your iOS Build Time Process Within Xcode•
 How To Avoid Merge Conflicts In Xcode Projects
How To Avoid Merge Conflicts In Xcode Projects•
 Custom Tabbar in SwiftUI (iOS 15+)
Custom Tabbar in SwiftUI (iOS 15+)•
 PhoneNumberKit: парсинг и форматирование телефонных номеров
PhoneNumberKit: парсинг и форматирование телефонных номеров•
 OpenFind: поиск слов на фотографиях
OpenFind: поиск слов на фотографиях•
 AlertToast: уведомления и «тосты» для SwiftUI
AlertToast: уведомления и «тосты» для SwiftUI Android
Android• Relay от Google превращает макеты в код Compose
• Китай, Android и чипы RISC-V: зачем китайские компании добавляют поддержку открытой архитектуры в мобильную ОС
• Разбор кода Pocket Casts
• Как в Android запрещали фоновую работу и улучшали расход батареи
• Coroutines: боль обработки ошибок
• Откуда возникает TransactionTooLargeException, если я ничего такого не делал?
• 7 плагинов Android Studio, ускоряющих разработку приложений
• Что там по автотестам на Android в 2022?
• Всем выйти из сумрака: как добавить тень на Android
• Приключения онлайн-кинотеатра Premier в Android TV, или Как мы javascript внедряли
• Экспресс до стора: как мы запускали релизный поезд
• Material Design 3 стал стабильным
•
 Modelling dating cards navigation with Appyx
Modelling dating cards navigation with Appyx•
 Migrating to Navigation with Jetpack Compose
Migrating to Navigation with Jetpack Compose•
 Comparing StateFlow, SharedFlow, and CallbackFlow
Comparing StateFlow, SharedFlow, and CallbackFlow•
 Sealed classes in Kotlin
Sealed classes in Kotlin•
 It’s Time for an App Icon Makeover!
It’s Time for an App Icon Makeover!•
 From zero to 10 million lines of Kotlin
From zero to 10 million lines of Kotlin•
 Persisting and sharing ink
Persisting and sharing ink•
 Customizing the Switch Button in Android
Customizing the Switch Button in Android•
 Introducing KMMBridge for Teams
Introducing KMMBridge for Teams•
 Gestures in Jetpack Compose: Getting Started
Gestures in Jetpack Compose: Getting Started•
 My Experience as an Android Engineer; One Year Later.
My Experience as an Android Engineer; One Year Later.•
 Now in Android: a Material 3 case study
Now in Android: a Material 3 case study•
 Understand Android Jetpack’s WorkManager in 5 minutes
Understand Android Jetpack’s WorkManager in 5 minutes•
 How to pause a coroutine
How to pause a coroutine•
 OkLayoutInflater
OkLayoutInflater•
 Turbocharge: Storytel’s Story of weekly mobile app releases
Turbocharge: Storytel’s Story of weekly mobile app releases•
 Sheets Compose Dialogs: готовые диалоги и View для Compose
Sheets Compose Dialogs: готовые диалоги и View для Compose•
 Compose AnimatedList: анимированные списки
Compose AnimatedList: анимированные списки Кроссплатформа
Кроссплатформа• React Native is better than Flutter*
• Как стать Flutter-разработчиком, или Почему кроссплатформа сейчас — это лучший выбор
• Полезные плагины VS Code для разработки кроссплатформенных приложений с использованием React Native и Flutter
• Что почитать для Unity разработчика: Рендер
• Генерация кода API клиента приложения на основе пакета dart openapi generator
•
 Shortening Flutter test feedback cycle in VS Code
Shortening Flutter test feedback cycle in VS Code•
 Using Mason and bricks in your Flutter app: Beginner’s guide
Using Mason and bricks in your Flutter app: Beginner’s guide•
 SonarQube with Flutter
SonarQube with Flutter•
 Simulate Birds Flocking Using Multi-Agent System and Flutter Flame
Simulate Birds Flocking Using Multi-Agent System and Flutter Flame•
 Flutter: Realtime Participants Counter
Flutter: Realtime Participants Counter•
 Make your Flutter projects more readable and effective with extensions!
Make your Flutter projects more readable and effective with extensions!•
 How we made our app 80% faster
How we made our app 80% faster•
 Input Chip In Flutter
Input Chip In Flutter Разработка
Разработка• Вы уверены? Как писать тексты для экранов подтверждения
• Как создавать лучшие сообщения об ошибках — опыт Wix
• Пишем 3D игру под Windows Mobile, ч.1
• Как настроить Charles
• Осознанная автоматизация тестирования в геймдеве
• Podlodka #291: продуктивность разработчика
• Как кастомизировать UI артефакты для Selenide + Selenoid + Allure (with TestOPS)
• Как превратить сайт в удобное мобильное приложение на примере интернет-банка «ВТБ Онлайн»
• Синхронизация в UX-дизайне: как поддерживать единую стилистику сервисов для разных устройств
• Создание кастомных чатов с помощью Firebase Realtime database
• Самые высокооплачиваемые вакансии октября в области разработки приложений
• Самые популярные языки программирования в рейтинге RedMonk
• GitHub достиг дохода $1 млрд в год
• Как в Gas уменьшили нагрузку Redis на CPU на 80%
• Видео Firebase Summit 2022
• Microsoft начинает продажи Windows Dev Kit 2023
•
 How Discord Indexes Billions Of Messages?
How Discord Indexes Billions Of Messages?•
 The Secret Art of Storytelling in Programming
The Secret Art of Storytelling in Programming•
 Mobile Design in 2022-2023
Mobile Design in 2022-2023•
 My software developer intern quit his job, after 3 working days
My software developer intern quit his job, after 3 working days•
 Faster hardware is a bad first solution to slow software
Faster hardware is a bad first solution to slow software•
 Kweb — веб-фреймворк для Kotlin
Kweb — веб-фреймворк для Kotlin Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация• Не только tinder вероятно знает с кем вы спите. Патент No: 0342684 A1
• Сколько стоит любовь в Tinder? Unit-экономика финансового отчета 2021 Match Group
• Google приобрел аватары Alter
• Spotify называет правила Apple «душащими конкуренцию» + Spotify убрал покупку аудиокниг из iOS-приложения
• MyTracker запустил «Аудитории» — автоматическую передачу сегментов в рекламные платформы
• Apple открыла дополнительные рекламные места в App Store + Разработчики критикуют новую рекламу в App Store + Apple приостановила размещение рекламы «азартных игр и некоторых других категорий»
• Age of Empires снова выходит для мобильных устройств
• Российский рынок мобильных игр вырастет на 25% в 2022
• Duolingo приближается к $100 млн квартальной выручки
 AI, Устройства, IoT
AI, Устройства, IoT• Прогнозирование качества шампанского с помощью Machine Learning. Опыт Bollinger
• Нейросети на RISC-V с Movidius Neural Compute Stick
• ESP32 Tuya IoT adapter: родила царица в ночь…
• SWUpdate, Yoctо(ерный) театр и paperina
• Семь способов передачи телеметрии из Azure RTOS через интернет
• Bumble открывает свой ИИ для определения непристойных фотографий
•
 How To Turn Yourself Into Pixar Character Using Stable Diffusion AI
How To Turn Yourself Into Pixar Character Using Stable Diffusion AI← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
          