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