В нашем новом дайджесте SnapKit и Android Studio, App Quality Insights и асинхронности, доход от покупок социальных сетей, API для ChatGPT и многое другое.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

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, еще больше материалов для разработчиков — подключайтесь!

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 запускает магазин приложений и новую автомобильную платформу
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.