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