В нашем новом дайджесте SnapKit и Android Studio, App Quality Insights и асинхронности, доход от покупок социальных сетей, API для ChatGPT и многое другое.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!
![](https://habrastorage.org/webt/ri/5r/m0/ri5rm04tdj3zlbalpmntjorngxq.jpeg)
iOS
• iOS-разработка со SnapKit: спасаем консоль от простыни ошибок и ускоряем отрисовку UI
• 7 открытых iOS-проектов, которые помогут изучить SwiftUI
• Введение в архитектурный шаблон «Мрак в Воделях»
• C/C++ из Python (Kivy, ctypes) на iOS
• Compose iOS. Как это работает #0
• Apple заблокировала выпуск приложения с ChatGPT
• В App Store Connect добавили бенчмарки
• Новые уязвимости iOS и macOS ставят под угрозу личные данные пользователей
•
Xcode tip: sharing breakpoints across projects
•
Scaling a Mature iOS Codebase with Tuist
•
Arbitrary SwiftUI Linear Gradient Rotation
•
UDP Listener in Swift
•
Writing an Idle Timer in Swift
•
Xcode Will No Longer Run Under Rosetta
•
Build a Hands-free SwiftUI App Using ARKit and SceneKit
•
Storing Payment Data On iOS: My Take
•
Building iOS framework with dependencies
•
Resolving an iOS Reverse Engineering Challenge with Frida
•
A Better Way To Test Reference Cycles in iOS
•
How to Create Configurable Widgets With Dynamic Options?
•
View Composition using ViewModifiers in SwiftUI
•
Using Swift Concurrency with Coordinator Pattern
•
How to create a hero animation in SwiftUI?
•
Building a GPT Client for iOS with SwiftUI
•
Setting Up Different Environments in SwiftUI: Command Line Arguments and Build Configurations
•
Setting: панель настроек на SwiftUI
•
IceCubesApp: открытый клиент Mastodon на SwiftUI
•
Roadmap: дорожная карта разработки в приложении
Android
• Свежий Android на 9 летнем железе: Сможет ли смартфон 2016 года оставаться актуальным в 2023 с кастомной прошивкой?
• Список фишек Android Studio для ускорения разработки
• Из Figma в Composable работаем с Relay в Android Studio
• Как Android-разработчику избавиться от комплекса доменной неполноценности
• Сбои Crashlytics в Android Studio с помощью App Quality Insights
• Настраиваем Android-девайс для анализа трафика приложений
• Как опубликовать приложение в RuStore и подключить монетизацию: пошаговый гайд
• Программа для магазина на Android, ч. 2 — Нативатор Касса
• Ответы на частые вопросы от начинающих Android-разработчиков
• Вышел курс основы Android с Compose
• Google улучшает Android и Wear OS с помощью 9 новых функций
•
How to use Gradle Managed Devices with your own devices
•
Graceful Resource Handling Using Structured Concurrency in Kotlin
•
Convert Android App to Use Material 3 Design
•
Publish Multi-module Private Android Library to jFrog
•
Effortlessly Add Pull-to-Refresh to Your Android App with Jetpack Compose
•
Inquiry into the Android SplashScreen API [2023]
•
Firestore Caching: You may not need Room
•
Accessing Composables from UiAutomator
•
Exploring Jetpack Compose for Android TV: Carousel
•
Inline functions in Kotlin
•
Unleashing the Power of Kotlin: 8 Advanced Features for Experienced Developers
•
Why Ravioli Is My Favourite Recipe
•
Different ways to handle android Gradle dependencies
•
Different ways to handle Android Gradle dependencies
•
How to Handle Automatic Content Resizing when keyboard is visible in Jetpack Compose
•
Kotlin Generics Explaind: Mastering in, out, and where
•
Building an Android System Design Architecture for Efficient Image Uploads with Clean Architecture
•
Android Studio Flamingo Beta 4 is now available
•
Pokedex: современная Android-разработка
Кроссплатформа
• Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow
• Один плагин, чтоб править всеми. Как разработать сканер на Flutter для 3 платформ и ускорить ввод данных в 2 раза
• Dart: Асинхронность
• Как не ссломать верстку Flutter-приложения из-за textScaleFactor
•
Optimize Your Flutter Development Environment with FlutterCleaner
•
How To Use GraphQL with Flutter
•
Kotlin Compose Multi-platform login screen — Android, iOS & Desktop App
•
Three Advanced Ways to Secure a Flutter App
•
Why I Hard Code My Sizes In Flutter
•
Create Custom Keyboard for your Flutter App
•
Tauri Mobile Ц Develop Mobile Apps with JavaScript and Rust
•
How to Create Separators for Rows and Columns
•
Isolates in Flutter
•
How to Create Dynamic Island and ActivityKit with Flutter
•
KMPTemplate: Compose для Android, iOS и десктопов
Разработка
• Как мы быстро запустили мобильное приложение и споткнулись о свой успех
• Инструменты для нагрузочного тестирования
• Конец близок: StackOverflow умирает — что будет дальше?
• Джун, который смог: как получить оффер мидла в 2023
• Как превратить онбординг пользователей в сбор инсайтов
• Avito Design Talk #7: исследования
• Podlodka #309: мобильные фермы
• $3.1 млн: Archetype — биллинг для API
• Летние школы яндекса пройдут в трех странах одновременно
• Google и TopCoder закрывают свои соревнования для программистов
•
So, are fonts cut from paper now?
•
Building a Startup from Scratch: My Mistakes as CTO
•
Stop saying «technical debt»
•
Being a Solo Software Entrepreneur at 40
•
Top 8 diagramming tools for software architecture
•
«Clean» Code, Horrible Performance
•
System Design Interview Survival Guide (2023): Preparation Strategies and Practical Tips
Аналитика, маркетинг и монетизация
• Можно ли найти хорошую игру по рекомендациям Google Play и App Store?
• При снижении доходов от рекламы социальные сети обращаются к покупкам внутри приложений
• Маркетологи в мобайле (Spring Edition): Кения Архипова (Zaymigo)
• Маркетологи в мобайле (Spring Edition): Анна Гарцилова (Kassir.ru)
• Дело Spotify против Apple в Европе сузилось до ссылок на стороннюю оплату
• Connected TV: как правильно распределять бюджет на рекламу
• Pokemon Sleep выйдет в этом году
• Аудитория RuStore достигла 10 миллионов пользователей в месяц
• Что такое Apple TV App Store в 2023 году
•
How Duolingo drives subscription conversion
AI, ”стройства, IoT
• OpenAI открыла ChatGPT API
• От Arduino к Wiren Board за 10 лет. История автоматизации дома с солнечными панелями
• ChatGPT: новый инструмент в борьбе с багами. Как можно использовать AI для повышения качества тестирования
• Сравнительный анализ стандартов связи для сетей IoT
• VW Group запускает магазин приложений и новую автомобильную платформу
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!
![](https://habrastorage.org/webt/ri/5r/m0/ri5rm04tdj3zlbalpmntjorngxq.jpeg)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• iOS-разработка со SnapKit: спасаем консоль от простыни ошибок и ускоряем отрисовку UI
• 7 открытых iOS-проектов, которые помогут изучить SwiftUI
• Введение в архитектурный шаблон «Мрак в Воделях»
• C/C++ из Python (Kivy, ctypes) на iOS
• Compose iOS. Как это работает #0
• Apple заблокировала выпуск приложения с ChatGPT
• В App Store Connect добавили бенчмарки
• Новые уязвимости iOS и macOS ставят под угрозу личные данные пользователей
•
![](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/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Свежий Android на 9 летнем железе: Сможет ли смартфон 2016 года оставаться актуальным в 2023 с кастомной прошивкой?
• Список фишек Android Studio для ускорения разработки
• Из Figma в Composable работаем с Relay в Android Studio
• Как Android-разработчику избавиться от комплекса доменной неполноценности
• Сбои Crashlytics в Android Studio с помощью App Quality Insights
• Настраиваем Android-девайс для анализа трафика приложений
• Как опубликовать приложение в RuStore и подключить монетизацию: пошаговый гайд
• Программа для магазина на Android, ч. 2 — Нативатор Касса
• Ответы на частые вопросы от начинающих Android-разработчиков
• Вышел курс основы Android с Compose
• Google улучшает Android и Wear OS с помощью 9 новых функций
•
![](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/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow
• Один плагин, чтоб править всеми. Как разработать сканер на Flutter для 3 платформ и ускорить ввод данных в 2 раза
• Dart: Асинхронность
• Как не ссломать верстку Flutter-приложения из-за textScaleFactor
•
![](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/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Как мы быстро запустили мобильное приложение и споткнулись о свой успех
• Инструменты для нагрузочного тестирования
• Конец близок: StackOverflow умирает — что будет дальше?
• Джун, который смог: как получить оффер мидла в 2023
• Как превратить онбординг пользователей в сбор инсайтов
• Avito Design Talk #7: исследования
• Podlodka #309: мобильные фермы
• $3.1 млн: Archetype — биллинг для API
• Летние школы яндекса пройдут в трех странах одновременно
• Google и TopCoder закрывают свои соревнования для программистов
•
![](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/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Можно ли найти хорошую игру по рекомендациям Google Play и App Store?
• При снижении доходов от рекламы социальные сети обращаются к покупкам внутри приложений
• Маркетологи в мобайле (Spring Edition): Кения Архипова (Zaymigo)
• Маркетологи в мобайле (Spring Edition): Анна Гарцилова (Kassir.ru)
• Дело Spotify против Apple в Европе сузилось до ссылок на стороннюю оплату
• Connected TV: как правильно распределять бюджет на рекламу
• Pokemon Sleep выйдет в этом году
• Аудитория RuStore достигла 10 миллионов пользователей в месяц
• Что такое Apple TV App Store в 2023 году
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• OpenAI открыла ChatGPT API
• От Arduino к Wiren Board за 10 лет. История автоматизации дома с солнечными панелями
• ChatGPT: новый инструмент в борьбе с багами. Как можно использовать AI для повышения качества тестирования
• Сравнительный анализ стандартов связи для сетей IoT
• VW Group запускает магазин приложений и новую автомобильную платформу
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.