Возвращаемся с первым в новом году “мобильным” дайджестом. В нем кастомные макеты, безопасный Swift и опыт KMM, что ждать разработчикам, типы тестировщиков, годовой отчет State of Mobile 2023 и многое другое!
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

 iOS
iOS
• Apple Machine Learning (ML). «Create ML»
• Более Быстрые Сборки Apple с помощью lld Linker
• Создание кастомного макета в SwiftUI. Интервалы
• Безопасное программирование в Swift
• Видео BA: Swiftable 2022
• Создаем VIPER шаблон с помощью Generamba
• Utilizing Makefiles for Swift projects
Utilizing Makefiles for Swift projects
• Stress testing on iOS with xcmonkey
Stress testing on iOS with xcmonkey
• Understanding SwiftUI view lifecycles
Understanding SwiftUI view lifecycles
• Building custom layout in SwiftUI. Basics.
Building custom layout in SwiftUI. Basics.
• Mastering charts in SwiftUI. Basics.
Mastering charts in SwiftUI. Basics.
• On the new Point-Free swift-dependencies library
On the new Point-Free swift-dependencies library
• Composable Architecture
Composable Architecture
• Swift Learning Roadmap 2023 — The Ultimate Guide
Swift Learning Roadmap 2023 — The Ultimate Guide
• Custom Popup in SwiftUI
Custom Popup in SwiftUI
• Top 10 mistakes Swift developers do
Top 10 mistakes Swift developers do
• iOS Project Structure Like a Pro
iOS Project Structure Like a Pro
• How to Update or Refresh a Widget?
How to Update or Refresh a Widget?
• SwiftUI: NavigationSplitView
SwiftUI: NavigationSplitView
• Task Groups in Swift explained with code examples
Task Groups in Swift explained with code examples
• ArraySlice with range operator and Prefix in Swift
ArraySlice with range operator and Prefix in Swift
• Swift: Unit Testing Fatal Errors
Swift: Unit Testing Fatal Errors
• Safe Coding in Swift
Safe Coding in Swift
• Validation With Regex in Swift 5.7 Using SwiftUI and Combine
Validation With Regex in Swift 5.7 Using SwiftUI and Combine
• How to create Sound Wave Animation with TimelineView and Canvas in SwiftUI
How to create Sound Wave Animation with TimelineView and Canvas in SwiftUI
• Control Your SwiftUI App With Face Recognition Using SceneKit
Control Your SwiftUI App With Face Recognition Using SceneKit
• iOS App Security: Best Practices
iOS App Security: Best Practices
• How I Optimize Memory Consumption for Content-Rich Apps
How I Optimize Memory Consumption for Content-Rich Apps
• The Secrets of Hashable in Swift
The Secrets of Hashable in Swift
• Top 10 mistakes swift developers do
Top 10 mistakes swift developers do
• AutoLayoutBuilder —My Swift Package to Reduce Boilerplate Code
AutoLayoutBuilder —My Swift Package to Reduce Boilerplate Code
• Drawing with UIKit’s UIBezierPath
Drawing with UIKit’s UIBezierPath
• Nuke: загрузка и показ изображений
Nuke: загрузка и показ изображений
• Swift Dependencies: DI по мотивам SwiftUI
Swift Dependencies: DI по мотивам SwiftUI
 Android
Android
• Volvo SCT / part 1 — как проникнуть в чужое ядро
• Как работает Activity. Часть 2 + Часть 1
• Как фронтендеру стать мобильным разработчиком, или Перевод API React в Jetpack Compose
• Состояние навигации в Jetpack Compose
• Моды Android приложений: Instander & Google Camera by The Dise
• Вышла Android Studio Electric Eel
• Process Death & Orientation Change in RecyclerView
Process Death & Orientation Change in RecyclerView
• Integrating Google Maps, Places API, and Reverse Geocoding with Jetpack Compose
Integrating Google Maps, Places API, and Reverse Geocoding with Jetpack Compose
• How to Avoid Dependency Conflicts in Android Multi-Module Apps
How to Avoid Dependency Conflicts in Android Multi-Module Apps
• Mastering The Gradle Dependency Tree
Mastering The Gradle Dependency Tree
• Building a Language Learning App with Compose
Building a Language Learning App with Compose
• How to make a complete app / site association with Universal Links
How to make a complete app / site association with Universal Links
• Setup A Self Modifiable List Of Data In Jetpack Compose
Setup A Self Modifiable List Of Data In Jetpack Compose
• Concurrency vs. Parallelism Using Kotlin
Concurrency vs. Parallelism Using Kotlin
• How to Avoid Dependency Conflicts in Android Multi-Module Apps
How to Avoid Dependency Conflicts in Android Multi-Module Apps
• Applying Kotlin context receivers
Applying Kotlin context receivers
• Jetpack Compose state deconstructed
Jetpack Compose state deconstructed
• The State of Navigation in Jetpack Compose
The State of Navigation in Jetpack Compose
• Writing Slack in Jetpack Compose and Kotlin MultiPlatform
Writing Slack in Jetpack Compose and Kotlin MultiPlatform
• Handle the onNewIntent in Jetpack Compose
Handle the onNewIntent in Jetpack Compose
• Is your app providing a backward compatible edge-to-edge experience?
Is your app providing a backward compatible edge-to-edge experience?
• Lessons Learned After 3 Days Debugging Jetpack Compose SwipeToDismiss
Lessons Learned After 3 Days Debugging Jetpack Compose SwipeToDismiss
• Pattern Matching in Kotlin is Awesome
Pattern Matching in Kotlin is Awesome
• Detecting Android memory leaks in production
Detecting Android memory leaks in production
• I Think I’ve Given Up On Android
I Think I’ve Given Up On Android
• KConMapper — How To Automate Mapping Function Creation With Kotlin’s KSP
KConMapper — How To Automate Mapping Function Creation With Kotlin’s KSP
• Kotlin Data Class
Kotlin Data Class
• HttpRequest: HTTP-клиент для Kotlin
HttpRequest: HTTP-клиент для Kotlin
• WebRTC in Jetpack Compose: видео в реальном времени с WebRTC и Compose
WebRTC in Jetpack Compose: видео в реальном времени с WebRTC и Compose
 Кроссплатформа
Кроссплатформа
• Опыт использования Kotlin Multiplatform Mobile (KMM) в 9GAG
• Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile
• Курс по Flutter: вход в профессию Flutter-разработчика
• UI Роутер в Unity
• How Fast Is React Native New Architecture?
How Fast Is React Native New Architecture?
• 50 Flutter Interview Question for 1 year experience
50 Flutter Interview Question for 1 year experience
• If you want to master React Native
If you want to master React Native
• VS Code for Flutter hacks that will blow your mind
VS Code for Flutter hacks that will blow your mind
• My Experience with Flutter as a Native Android Developer
My Experience with Flutter as a Native Android Developer
• Flutter and ObjectBox – High-Performance NoSQL Database
Flutter and ObjectBox – High-Performance NoSQL Database
• Material 3 for Flutter
Material 3 for Flutter
 Разработка
Разработка
• Пройдите опрос для разработчиков Developer Nation и выиграйте новые гаджеты
• Как багатон снизил нам количество багов с 900 до 950
• Мой опыт разработки программы для игры в шашки с помощью алгоритма минимакс
• Но это (не)точно: чего ждать мобильным разработчикам в 2023-м году
• Типы тестировщиков
• Server-driven UI, «Триплекс» и JSON: как Сбер сервисы в мобильные приложения выводит
• Путь Full Stack QA
• Podlodka #303: .NET, часть 1
• Podlodka #302: онбординг
• VK открывает набор на бесплатную практику для школьников и студентов
• Программисты чаще всего довольны своей зарплатой
• Компании в IT проиндексировали зарплаты на 15% течение последнего года
• Nucleus упрощает процесс управления микросервисами
• Intermediate Data Engineering Road Map 2023: Big Data, Cloud Computing, and More
Intermediate Data Engineering Road Map 2023: Big Data, Cloud Computing, and More
• Today’s Software Developers Will Stop Coding Soon
Today’s Software Developers Will Stop Coding Soon
• The Dangers of Over-engineering
The Dangers of Over-engineering
• A Day in the Life of a Software Engineer at Canva
A Day in the Life of a Software Engineer at Canva
• A Response to “Stop Using If-Else Statements”
A Response to “Stop Using If-Else Statements”
• Clean UI Guide: 15 White Space Design Tips
Clean UI Guide: 15 White Space Design Tips
• The three most important lessons I’ve learned as a UX Designer in 2022
The three most important lessons I’ve learned as a UX Designer in 2022
• Designing an Effective User Onboarding Experience
Designing an Effective User Onboarding Experience
• Awesome Software and Architectural Design Patterns: лучшие шаблоны проектирования
Awesome Software and Architectural Design Patterns: лучшие шаблоны проектирования
 Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация
• Годовой отчет State of Mobile 2023 от Data.ai: 255 млрд установок и $167 млрд расходов
• Разработчики выпустили 1.6 млн приложений и игр в 2022
• Тренды мобильного маркетинга 2023
• Приложения с подпиской 2023 — отчет RevenueCat
• Потребители лояльны к опыту, а не к брендам
• Критерий Манна-Уитни — самый главный враг A/B-тестов
• 99 советов по монетизации игр — Часть 2
• Discord купил Gas, социальное приложение для подростков
• $2.63 млн: Slay — анонимные комплименты для подростков
• Hinge и Tinder тестируют дорогие подписки
• В RuStore появились платные приложения
• ФАС оштрафовала Apple на $17 млн за запрет сторонних платежей
• Разработчики заработали $320 млрд в App Store с 2008 года
 AI, Устройства, IoT
AI, Устройства, IoT
• Управление микроконтроллером через telegram-бот с обратной связью
• Интерпретируемость ML-моделей: от инструментов до потребностей пользователя
• Что и как делать с поливом на умной даче?
• Простое (не очень) увлажнение квартиры
• Поставки смартфонов в 2022 упали до минимума за десятилетие
• Apple представила новые MacBook Pro
• В MacBook могут добавить сенсорный экран
• Нейросети отбирают работу — какое будущее ждет программистов с ChatGPT
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

 iOS
iOS• Apple Machine Learning (ML). «Create ML»
• Более Быстрые Сборки Apple с помощью lld Linker
• Создание кастомного макета в SwiftUI. Интервалы
• Безопасное программирование в Swift
• Видео BA: Swiftable 2022
• Создаем VIPER шаблон с помощью Generamba
•
 Utilizing Makefiles for Swift projects
Utilizing Makefiles for Swift projects•
 Stress testing on iOS with xcmonkey
Stress testing on iOS with xcmonkey•
 Understanding SwiftUI view lifecycles
Understanding SwiftUI view lifecycles•
 Building custom layout in SwiftUI. Basics.
Building custom layout in SwiftUI. Basics.•
 Mastering charts in SwiftUI. Basics.
Mastering charts in SwiftUI. Basics.•
 On the new Point-Free swift-dependencies library
On the new Point-Free swift-dependencies library•
 Composable Architecture
Composable Architecture•
 Swift Learning Roadmap 2023 — The Ultimate Guide
Swift Learning Roadmap 2023 — The Ultimate Guide•
 Custom Popup in SwiftUI
Custom Popup in SwiftUI•
 Top 10 mistakes Swift developers do
Top 10 mistakes Swift developers do•
 iOS Project Structure Like a Pro
iOS Project Structure Like a Pro•
 How to Update or Refresh a Widget?
How to Update or Refresh a Widget?•
 SwiftUI: NavigationSplitView
SwiftUI: NavigationSplitView•
 Task Groups in Swift explained with code examples
Task Groups in Swift explained with code examples•
 ArraySlice with range operator and Prefix in Swift
ArraySlice with range operator and Prefix in Swift•
 Swift: Unit Testing Fatal Errors
Swift: Unit Testing Fatal Errors•
 Safe Coding in Swift
Safe Coding in Swift•
 Validation With Regex in Swift 5.7 Using SwiftUI and Combine
Validation With Regex in Swift 5.7 Using SwiftUI and Combine•
 How to create Sound Wave Animation with TimelineView and Canvas in SwiftUI
How to create Sound Wave Animation with TimelineView and Canvas in SwiftUI•
 Control Your SwiftUI App With Face Recognition Using SceneKit
Control Your SwiftUI App With Face Recognition Using SceneKit•
 iOS App Security: Best Practices
iOS App Security: Best Practices•
 How I Optimize Memory Consumption for Content-Rich Apps
How I Optimize Memory Consumption for Content-Rich Apps•
 The Secrets of Hashable in Swift
The Secrets of Hashable in Swift•
 Top 10 mistakes swift developers do
Top 10 mistakes swift developers do•
 AutoLayoutBuilder —My Swift Package to Reduce Boilerplate Code
AutoLayoutBuilder —My Swift Package to Reduce Boilerplate Code•
 Drawing with UIKit’s UIBezierPath
Drawing with UIKit’s UIBezierPath•
 Nuke: загрузка и показ изображений
Nuke: загрузка и показ изображений•
 Swift Dependencies: DI по мотивам SwiftUI
Swift Dependencies: DI по мотивам SwiftUI Android
Android• Volvo SCT / part 1 — как проникнуть в чужое ядро
• Как работает Activity. Часть 2 + Часть 1
• Как фронтендеру стать мобильным разработчиком, или Перевод API React в Jetpack Compose
• Состояние навигации в Jetpack Compose
• Моды Android приложений: Instander & Google Camera by The Dise
• Вышла Android Studio Electric Eel
•
 Process Death & Orientation Change in RecyclerView
Process Death & Orientation Change in RecyclerView•
 Integrating Google Maps, Places API, and Reverse Geocoding with Jetpack Compose
Integrating Google Maps, Places API, and Reverse Geocoding with Jetpack Compose•
 How to Avoid Dependency Conflicts in Android Multi-Module Apps
How to Avoid Dependency Conflicts in Android Multi-Module Apps•
 Mastering The Gradle Dependency Tree
Mastering The Gradle Dependency Tree•
 Building a Language Learning App with Compose
Building a Language Learning App with Compose•
 How to make a complete app / site association with Universal Links
How to make a complete app / site association with Universal Links•
 Setup A Self Modifiable List Of Data In Jetpack Compose
Setup A Self Modifiable List Of Data In Jetpack Compose•
 Concurrency vs. Parallelism Using Kotlin
Concurrency vs. Parallelism Using Kotlin•
 How to Avoid Dependency Conflicts in Android Multi-Module Apps
How to Avoid Dependency Conflicts in Android Multi-Module Apps•
 Applying Kotlin context receivers
Applying Kotlin context receivers•
 Jetpack Compose state deconstructed
Jetpack Compose state deconstructed•
 The State of Navigation in Jetpack Compose
The State of Navigation in Jetpack Compose•
 Writing Slack in Jetpack Compose and Kotlin MultiPlatform
Writing Slack in Jetpack Compose and Kotlin MultiPlatform•
 Handle the onNewIntent in Jetpack Compose
Handle the onNewIntent in Jetpack Compose•
 Is your app providing a backward compatible edge-to-edge experience?
Is your app providing a backward compatible edge-to-edge experience?•
 Lessons Learned After 3 Days Debugging Jetpack Compose SwipeToDismiss
Lessons Learned After 3 Days Debugging Jetpack Compose SwipeToDismiss•
 Pattern Matching in Kotlin is Awesome
Pattern Matching in Kotlin is Awesome•
 Detecting Android memory leaks in production
Detecting Android memory leaks in production•
 I Think I’ve Given Up On Android
I Think I’ve Given Up On Android•
 KConMapper — How To Automate Mapping Function Creation With Kotlin’s KSP
KConMapper — How To Automate Mapping Function Creation With Kotlin’s KSP•
 Kotlin Data Class
Kotlin Data Class•
 HttpRequest: HTTP-клиент для Kotlin
HttpRequest: HTTP-клиент для Kotlin•
 WebRTC in Jetpack Compose: видео в реальном времени с WebRTC и Compose
WebRTC in Jetpack Compose: видео в реальном времени с WebRTC и Compose Кроссплатформа
Кроссплатформа• Опыт использования Kotlin Multiplatform Mobile (KMM) в 9GAG
• Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile
• Курс по Flutter: вход в профессию Flutter-разработчика
• UI Роутер в Unity
•
 How Fast Is React Native New Architecture?
How Fast Is React Native New Architecture?•
 50 Flutter Interview Question for 1 year experience
50 Flutter Interview Question for 1 year experience•
 If you want to master React Native
If you want to master React Native•
 VS Code for Flutter hacks that will blow your mind
VS Code for Flutter hacks that will blow your mind•
 My Experience with Flutter as a Native Android Developer
My Experience with Flutter as a Native Android Developer•
 Flutter and ObjectBox – High-Performance NoSQL Database
Flutter and ObjectBox – High-Performance NoSQL Database•
 Material 3 for Flutter
Material 3 for Flutter Разработка
Разработка• Пройдите опрос для разработчиков Developer Nation и выиграйте новые гаджеты
• Как багатон снизил нам количество багов с 900 до 950
• Мой опыт разработки программы для игры в шашки с помощью алгоритма минимакс
• Но это (не)точно: чего ждать мобильным разработчикам в 2023-м году
• Типы тестировщиков
• Server-driven UI, «Триплекс» и JSON: как Сбер сервисы в мобильные приложения выводит
• Путь Full Stack QA
• Podlodka #303: .NET, часть 1
• Podlodka #302: онбординг
• VK открывает набор на бесплатную практику для школьников и студентов
• Программисты чаще всего довольны своей зарплатой
• Компании в IT проиндексировали зарплаты на 15% течение последнего года
• Nucleus упрощает процесс управления микросервисами
•
 Intermediate Data Engineering Road Map 2023: Big Data, Cloud Computing, and More
Intermediate Data Engineering Road Map 2023: Big Data, Cloud Computing, and More•
 Today’s Software Developers Will Stop Coding Soon
Today’s Software Developers Will Stop Coding Soon•
 The Dangers of Over-engineering
The Dangers of Over-engineering•
 A Day in the Life of a Software Engineer at Canva
A Day in the Life of a Software Engineer at Canva•
 A Response to “Stop Using If-Else Statements”
A Response to “Stop Using If-Else Statements”•
 Clean UI Guide: 15 White Space Design Tips
Clean UI Guide: 15 White Space Design Tips•
 The three most important lessons I’ve learned as a UX Designer in 2022
The three most important lessons I’ve learned as a UX Designer in 2022•
 Designing an Effective User Onboarding Experience
Designing an Effective User Onboarding Experience•
 Awesome Software and Architectural Design Patterns: лучшие шаблоны проектирования
Awesome Software and Architectural Design Patterns: лучшие шаблоны проектирования Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация• Годовой отчет State of Mobile 2023 от Data.ai: 255 млрд установок и $167 млрд расходов
• Разработчики выпустили 1.6 млн приложений и игр в 2022
• Тренды мобильного маркетинга 2023
• Приложения с подпиской 2023 — отчет RevenueCat
• Потребители лояльны к опыту, а не к брендам
• Критерий Манна-Уитни — самый главный враг A/B-тестов
• 99 советов по монетизации игр — Часть 2
• Discord купил Gas, социальное приложение для подростков
• $2.63 млн: Slay — анонимные комплименты для подростков
• Hinge и Tinder тестируют дорогие подписки
• В RuStore появились платные приложения
• ФАС оштрафовала Apple на $17 млн за запрет сторонних платежей
• Разработчики заработали $320 млрд в App Store с 2008 года
 AI, Устройства, IoT
AI, Устройства, IoT• Управление микроконтроллером через telegram-бот с обратной связью
• Интерпретируемость ML-моделей: от инструментов до потребностей пользователя
• Что и как делать с поливом на умной даче?
• Простое (не очень) увлажнение квартиры
• Поставки смартфонов в 2022 упали до минимума за десятилетие
• Apple представила новые MacBook Pro
• В MacBook могут добавить сенсорный экран
• Нейросети отбирают работу — какое будущее ждет программистов с ChatGPT
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
           
 
AresRazArt
"Поставки смартфонов в 2022 упали до минимума за десятилетие" - просто удручающая ситуация, конечно....
Спасибо за подготовленный материал!
RoboForm
Спасибо, что читаете :)