В нашем новом дайджесте делегаты и умные View, лучшие приложения и игры 2022, еженедельные релизы, качество продукта, закон о цифровых рынках, реклама в пушах и многое другое!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

 iOS
iOS
• Bottom Sheet API в SwiftUI
• Creating a Swifty Command-Line Tool With ArgumentParser
Creating a Swifty Command-Line Tool With ArgumentParser
• Presenting Sheets: Item, or a Boolean Binding?
Presenting Sheets: Item, or a Boolean Binding?
• ScenePhase Environment Variable in SwiftUI
ScenePhase Environment Variable in SwiftUI
• Demystifying Background Uploads/Downloads in iOS
Demystifying Background Uploads/Downloads in iOS
• Build Complex Lists in SwiftUI
Build Complex Lists in SwiftUI
• Stop Using Swift Timers: Use CADisplayLink
Stop Using Swift Timers: Use CADisplayLink
• Implementing a Design System compatible with UIKit and SwiftUI
Implementing a Design System compatible with UIKit and SwiftUI
• Masking Views in SwiftUI
Masking Views in SwiftUI
• SwiftUI – Face Loading Animation Tutorial
SwiftUI – Face Loading Animation Tutorial
• Retain Cycle in Swift
Retain Cycle in Swift
• Evolving SwiftUI Architecture for Client-Server Apps
Evolving SwiftUI Architecture for Client-Server Apps
• Why use Swift async-await?
Why use Swift async-await?
• My Personal Takes from Using Combine
My Personal Takes from Using Combine
• Animate an Icon in Swift
Animate an Icon in Swift
• Understanding the Transition from MVC to MVVM in iOS Projects
Understanding the Transition from MVC to MVVM in iOS Projects
• Animated Launch Screen in SwiftUI
Animated Launch Screen in SwiftUI
• Code App: редактор кода для iPad
Code App: редактор кода для iPad
 Android
Android
• Используем делегаты в Android-приложениях
• Умный BottomNavigationView без боли: настройка нижнего меню навигации с динамической конфигурацией в Android-приложении
• Кастомный тулбар на Compose
• Обновления Play Store улучшат видимость и помогут справиться с атаками
• Магазин приложений RuStore: зачем он нужен и чем полезен
• Google Play Games запустили бету в США
• Google Play открыл голосование за лучшее приложение и игру 2022
• Modern Android Development: видео Android Dev Summit ’22
• Optimize for Android (Go edition): Lessons from Google apps
Optimize for Android (Go edition): Lessons from Google apps
• Trendyol Android Team Unit Test Practice
Trendyol Android Team Unit Test Practice
• How Android Development Evolves Over The Years
How Android Development Evolves Over The Years
• Suspend Mediator — A Simple Way To Communicate Between Coroutines in Kotlin
Suspend Mediator — A Simple Way To Communicate Between Coroutines in Kotlin
• Poisoning Android views with logic
Poisoning Android views with logic
• Android Bluetooth Low Energy | Building Chat App with BLE and Jetpack Compose
Android Bluetooth Low Energy | Building Chat App with BLE and Jetpack Compose
• Learn Simple Android Compose Flow Lifecycle Handling With Counter
Learn Simple Android Compose Flow Lifecycle Handling With Counter
• Building Scalable Android Apps
Building Scalable Android Apps
• Hello Delegates, Goodby Base Classes
Hello Delegates, Goodby Base Classes
• Auto Inflated-Cleared View Binding in Fragments Using Delegation
Auto Inflated-Cleared View Binding in Fragments Using Delegation
• OnBackPressed for Fragments with Delegation
OnBackPressed for Fragments with Delegation
• How Development Skills Translate to Reverse Engineering: Using LLDB to Reverse Engineer an Android App
How Development Skills Translate to Reverse Engineering: Using LLDB to Reverse Engineer an Android App
• How to Use WebRTC Android SDK in Native Android App?
How to Use WebRTC Android SDK in Native Android App?
• Mockk: мокирование для Kotlin
Mockk: мокирование для Kotlin
• YCharts: графики для Jetpack Compose
YCharts: графики для Jetpack Compose
 Кроссплатформа
Кроссплатформа
• Пишем игру под мобилки, ч.2. Масштабируемый UI, порт на Android, геймплей
• Мастер-класс по организации освещения в игре на Unreal Engine: Часть 1
• JetBrains запустила студенческий конкурс по Kotlin Multiplatform
• Multi — Themes Using Riverpod in Flutter
Multi — Themes Using Riverpod in Flutter
• Best Practices for Maintaining and Scaling Flutter Applications
Best Practices for Maintaining and Scaling Flutter Applications
• Test-Driven Development with Flutter
Test-Driven Development with Flutter
• How to Build Interactive Charts in Flutter
How to Build Interactive Charts in Flutter
• What are MediaQuery’s padding, viewPadding and viewInsets?
What are MediaQuery’s padding, viewPadding and viewInsets?
• 4 Visual Studio Code Extensions to Boost Your Productivity in Flutter
4 Visual Studio Code Extensions to Boost Your Productivity in Flutter
 Разработка
Разработка
• Турбонаддув: как Storytel перешел на еженедельные релизы
• Как в нынешней ситуации живётся игровым художникам уровня junior и middle
• Взгляд разработчика на качество продукта
• Более быстрое железо — плохое первое решение для медленного ПО
• «Устаревший» или «завершённый»? В защиту софта, который в обновлениях не нуждается
• 8 Популярных программ и сервисов для дизайна. Что выбрать?
• Podlodka #292: распознавание речи
• DevOps Roadmap 2022: как стать DevOps-инженером
• Никто не м*дак, или как дизайнерам взаимодействовать с разработчиками
• User Experience: How Design Consistency Works
User Experience: How Design Consistency Works
• Continuous Delivery and Releases in Mobile Development
Continuous Delivery and Releases in Mobile Development
• Dependency Inversion Principle Explained and How Tutorials Get It Wrong
Dependency Inversion Principle Explained and How Tutorials Get It Wrong
• Open-Obfuscator: A free and open-source solution for obfuscating mobile applications
Open-Obfuscator: A free and open-source solution for obfuscating mobile applications
• How To Build a Modern Data Pipeline
How To Build a Modern Data Pipeline
• Trends in Software Development 2022
Trends in Software Development 2022
• 5-Second Test in Product Design
5-Second Test in Product Design
• Don’t Just LeetCode; Follow the Coding Patterns Instead
Don’t Just LeetCode; Follow the Coding Patterns Instead
• RIBs: кроссплатформенная мобильная архитектура Uber
RIBs: кроссплатформенная мобильная архитектура Uber
 Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация
• В Европе вступил в действие Закон о цифровых рынках
• Тренды японского рынка приложений 2022 в отчете Adjust and Liftoff
• Uber начал рассылать рекламу в пуш-уведомлениях
• $9.7 млн в Серии A: Onward — управление общими расходами на детей
• $10 млн: Rewind — помнить все (на Apple Silicon)
• Принятие решений на основе данных и опросов пользователей: всё от А до Б
• ASO Index 2022: поисковый трафик, небрендовые запросы и коэффициент конверсии
• Ничего не умею, но хочу делать игры + Ничего не умею, но хочу зарабатывать на играх
• Как SKAdNetwork 4.0 дала приложениям на iOS надежду сделать рекламу чуть лучше
 AI, Устройства, IoT
AI, Устройства, IoT
• Практический Metric learning
• Машинное обучение с нуля — практический курс AssemblyAI
• Как определять пользовательские намерения, о которых мы узнали 5 минут назад
• От Single-Instance-прототипа до облачной промышленной платформы интернета вещей: как мы разрабатывали Cloud IoT Platform
• Роботы Google станут писать код сами для себя
• IBM выпустила NLP библиотеки
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

 iOS
iOS• Bottom Sheet API в SwiftUI
•
 Creating a Swifty Command-Line Tool With ArgumentParser
Creating a Swifty Command-Line Tool With ArgumentParser•
 Presenting Sheets: Item, or a Boolean Binding?
Presenting Sheets: Item, or a Boolean Binding?•
 ScenePhase Environment Variable in SwiftUI
ScenePhase Environment Variable in SwiftUI•
 Demystifying Background Uploads/Downloads in iOS
Demystifying Background Uploads/Downloads in iOS•
 Build Complex Lists in SwiftUI
Build Complex Lists in SwiftUI•
 Stop Using Swift Timers: Use CADisplayLink
Stop Using Swift Timers: Use CADisplayLink•
 Implementing a Design System compatible with UIKit and SwiftUI
Implementing a Design System compatible with UIKit and SwiftUI•
 Masking Views in SwiftUI
Masking Views in SwiftUI•
 SwiftUI – Face Loading Animation Tutorial
SwiftUI – Face Loading Animation Tutorial•
 Retain Cycle in Swift
Retain Cycle in Swift•
 Evolving SwiftUI Architecture for Client-Server Apps
Evolving SwiftUI Architecture for Client-Server Apps•
 Why use Swift async-await?
Why use Swift async-await?•
 My Personal Takes from Using Combine
My Personal Takes from Using Combine•
 Animate an Icon in Swift
Animate an Icon in Swift•
 Understanding the Transition from MVC to MVVM in iOS Projects
Understanding the Transition from MVC to MVVM in iOS Projects•
 Animated Launch Screen in SwiftUI
Animated Launch Screen in SwiftUI•
 Code App: редактор кода для iPad
Code App: редактор кода для iPad Android
Android• Используем делегаты в Android-приложениях
• Умный BottomNavigationView без боли: настройка нижнего меню навигации с динамической конфигурацией в Android-приложении
• Кастомный тулбар на Compose
• Обновления Play Store улучшат видимость и помогут справиться с атаками
• Магазин приложений RuStore: зачем он нужен и чем полезен
• Google Play Games запустили бету в США
• Google Play открыл голосование за лучшее приложение и игру 2022
• Modern Android Development: видео Android Dev Summit ’22
•
 Optimize for Android (Go edition): Lessons from Google apps
Optimize for Android (Go edition): Lessons from Google apps•
 Trendyol Android Team Unit Test Practice
Trendyol Android Team Unit Test Practice•
 How Android Development Evolves Over The Years
How Android Development Evolves Over The Years•
 Suspend Mediator — A Simple Way To Communicate Between Coroutines in Kotlin
Suspend Mediator — A Simple Way To Communicate Between Coroutines in Kotlin•
 Poisoning Android views with logic
Poisoning Android views with logic•
 Android Bluetooth Low Energy | Building Chat App with BLE and Jetpack Compose
Android Bluetooth Low Energy | Building Chat App with BLE and Jetpack Compose•
 Learn Simple Android Compose Flow Lifecycle Handling With Counter
Learn Simple Android Compose Flow Lifecycle Handling With Counter•
 Building Scalable Android Apps
Building Scalable Android Apps•
 Hello Delegates, Goodby Base Classes
Hello Delegates, Goodby Base Classes•
 Auto Inflated-Cleared View Binding in Fragments Using Delegation
Auto Inflated-Cleared View Binding in Fragments Using Delegation•
 OnBackPressed for Fragments with Delegation
OnBackPressed for Fragments with Delegation•
 How Development Skills Translate to Reverse Engineering: Using LLDB to Reverse Engineer an Android App
How Development Skills Translate to Reverse Engineering: Using LLDB to Reverse Engineer an Android App•
 How to Use WebRTC Android SDK in Native Android App?
How to Use WebRTC Android SDK in Native Android App?•
 Mockk: мокирование для Kotlin
Mockk: мокирование для Kotlin•
 YCharts: графики для Jetpack Compose
YCharts: графики для Jetpack Compose Кроссплатформа
Кроссплатформа• Пишем игру под мобилки, ч.2. Масштабируемый UI, порт на Android, геймплей
• Мастер-класс по организации освещения в игре на Unreal Engine: Часть 1
• JetBrains запустила студенческий конкурс по Kotlin Multiplatform
•
 Multi — Themes Using Riverpod in Flutter
Multi — Themes Using Riverpod in Flutter•
 Best Practices for Maintaining and Scaling Flutter Applications
Best Practices for Maintaining and Scaling Flutter Applications•
 Test-Driven Development with Flutter
Test-Driven Development with Flutter•
 How to Build Interactive Charts in Flutter
How to Build Interactive Charts in Flutter•
 What are MediaQuery’s padding, viewPadding and viewInsets?
What are MediaQuery’s padding, viewPadding and viewInsets?•
 4 Visual Studio Code Extensions to Boost Your Productivity in Flutter
4 Visual Studio Code Extensions to Boost Your Productivity in Flutter Разработка
Разработка• Турбонаддув: как Storytel перешел на еженедельные релизы
• Как в нынешней ситуации живётся игровым художникам уровня junior и middle
• Взгляд разработчика на качество продукта
• Более быстрое железо — плохое первое решение для медленного ПО
• «Устаревший» или «завершённый»? В защиту софта, который в обновлениях не нуждается
• 8 Популярных программ и сервисов для дизайна. Что выбрать?
• Podlodka #292: распознавание речи
• DevOps Roadmap 2022: как стать DevOps-инженером
• Никто не м*дак, или как дизайнерам взаимодействовать с разработчиками
•
 User Experience: How Design Consistency Works
User Experience: How Design Consistency Works•
 Continuous Delivery and Releases in Mobile Development
Continuous Delivery and Releases in Mobile Development•
 Dependency Inversion Principle Explained and How Tutorials Get It Wrong
Dependency Inversion Principle Explained and How Tutorials Get It Wrong•
 Open-Obfuscator: A free and open-source solution for obfuscating mobile applications
Open-Obfuscator: A free and open-source solution for obfuscating mobile applications•
 How To Build a Modern Data Pipeline
How To Build a Modern Data Pipeline•
 Trends in Software Development 2022
Trends in Software Development 2022•
 5-Second Test in Product Design
5-Second Test in Product Design•
 Don’t Just LeetCode; Follow the Coding Patterns Instead
Don’t Just LeetCode; Follow the Coding Patterns Instead•
 RIBs: кроссплатформенная мобильная архитектура Uber
RIBs: кроссплатформенная мобильная архитектура Uber Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация• В Европе вступил в действие Закон о цифровых рынках
• Тренды японского рынка приложений 2022 в отчете Adjust and Liftoff
• Uber начал рассылать рекламу в пуш-уведомлениях
• $9.7 млн в Серии A: Onward — управление общими расходами на детей
• $10 млн: Rewind — помнить все (на Apple Silicon)
• Принятие решений на основе данных и опросов пользователей: всё от А до Б
• ASO Index 2022: поисковый трафик, небрендовые запросы и коэффициент конверсии
• Ничего не умею, но хочу делать игры + Ничего не умею, но хочу зарабатывать на играх
• Как SKAdNetwork 4.0 дала приложениям на iOS надежду сделать рекламу чуть лучше
 AI, Устройства, IoT
AI, Устройства, IoT• Практический Metric learning
• Машинное обучение с нуля — практический курс AssemblyAI
• Как определять пользовательские намерения, о которых мы узнали 5 минут назад
• От Single-Instance-прототипа до облачной промышленной платформы интернета вещей: как мы разрабатывали Cloud IoT Platform
• Роботы Google станут писать код сами для себя
• IBM выпустила NLP библиотеки
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
          