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

Хотим в очередной раз пригласить вас в опрос Developer Nation. Расскажите, что вам нравится или не нравится в популярных инструментах и платформах. Опрос охватывает 13 направлений: мобильные, десктопные, облачные и веб-приложения, промышленный Интернет вещей, игры, машинное обучение, искусственный интеллект и т.п. Опрос доступен на 10 языках, в том числе и на русском. Можно начать и сохранить для продолжения. Можно выиграть призы. Главное — внести свой вклад в развитие сообщества разработчиков.
iOS
• Создаем дефолтные аватары пользователей в SwiftUI
• Добавляем обучающие моменты в приложения с помощью TipKit
• Sticky Header в SwiftUI
• Кто ты, SwiftData
• GC, ARC, RAM. Часть 3. iOS
• The Composable Architecture достигла версии 1.0: что это такое
• Thread Safety в Swift
•
Adding teachable moments to your apps with TipKit
•
Swift Macros
•
Composable Architecture 1.0
•
Animating Carrousel Transitions in SwiftUI
•
DocC Tutorial for Swift: Automating Publishing With GitHub Actions
•
Observation Framework in iOS 17
•
Crafting a Swift Package Plugin for App Data Protection
•
Unit Testing with async/await
•
iOS Interview Guide: Custom higher-order functions in Swift
•
Modularised Navigation in SwiftUI — An Enum-based Approach
•
The Large Title UINavigationBar Glitches and How to Fix Them
•
Localization testing in Xcode
•
SwiftUI Tutorial: Navigation
•
Streamlining Similar View Controllers: A Swift Tutorial to Embrace the Refactor Mindset
•
Mastering StoreKit 2
•
How to automate taking screenshots with fastlane for iOS
•
How to use type erasure in Swift with a real example
•
Advanced async testing: Unstructured concurrency
•
Animate background with color gradient in SwiftUI
•
Understanding iOS Memory Management With Toy Analogies
•
What I’ve learned implementing Swift Macros: 5 takeaways
•
SwiftUI Animated Tags View — Layout API
•
SwiftData Basics Tutorial: How to Easily Persist Data in SwiftUI
•
How to format physical units in Swift using MeasurementFormatter
•
SharePlay — Turn your app experience into a shared experience
•
SwiftUI: Scroll to Hide Tab Bar
•
visionOS 30 Days: уроки разработки для visionOS
•
iTorrent: торрент-клиент для iOS
Android
• Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android
• По ту сторону фидбека: как проходят Android-собеседования и чего мы ждём от кандидатов
• Лучший спутник в вашем творческом процессе: Android Studio Bot VS ChatGPT для разработчиков
• Оптимизация анимации на Compose: крутим лоадеры, ищем неочевидные функции
• Инди-разработка Android-приложений: боли, идеи и заработок
• Как Google победил фрагментацию в Android
• Исследование State of Databases 2023
•
Designing a Functional Library
•
Jetpack Compose for Maps
•
Deep dive into Live Edit for Jetpack Compose UI
•
Modelling the domain layer using composable use cases
•
Lazy Grids for Android TV using Jetpack Compose
•
Fluent and Fun Clean Architecture using Kotlin
•
How to create a chatbot with Firebase Firestore and PaLM on Android
•
Try the K2 compiler in your Android projects
•
Android Worldwide July 2023
•
Gradle Cache: Your build’s best friend
•
Firebase Dynamic Links Depricated! Migrate to Android App Links
•
Passing events from Composable functions to MVI ViewModels
•
How I became an Android Developer
•
Android 13 Runtime Notification Permission: XML & Jetpack Compose Guide
•
Debugging Alarms with ADB
•
Using String Resources in a ViewModel
•
Debugging Google Maps App Issue on Android
•
Debugging the recomposition in Jetpack Compose
•
Clok: The math behind the clock
•
Fixing touch target size in PLR
•
Live Edit for Jetpack Compose
•
Android Studio Giraffe stable release, New Samsung foldables, and more dev news!
•
Top App Bar (Toolbar) — UX With Material3
•
Selection UI Components (Checkboxes, Switches, Radio Buttons) — UX With Material3
•
Android Worldwide July 2023
•
Stable Diffusion AI: свой генератор изображений для Android
•
Compose Adaptive Scaffold: простая поддержка больших экранов
Кроссплатформа
• Будущее iOS-разработки на Flutter
• Как мы сделали онлайн-редактор кода на Flutter
• Мобильная мультиплатформенная разработка в McDonald’s
• Kotlin Multiplatform Mobile (KMM) превращается в Kotlin Multiplatform (KMP)
• Мобильное приложение для eCommerce: опыт кроссплатформенной разработки
•
Popular apps using Kotlin Multiplatform (KMP) in 2023 — and what you can learn from them
•
Intercepting Ktor Network Responses in Kotlin Multiplatform
•
A Deep Look Into Flutter Databases
•
How we reduced bundle size by 15% with patching package
•
How To Use Lints In Flutter
•
Storing data from the Flutter app → Google Sheets
•
Enhance your React Native Application Performance
•
Understanding Keys, Elements, RenderObjects and their interplay in Flutter
•
The basics of Layout Animations in React Native Reanimated
•
Firebase Analytics in Flutter app
Разработка
• Дизайнер не нужен. Правила создания красивых UI
• Как маленькая нейроязыковая модель в Клавиатуре победила серверные подсказки
• BDUI, многошаг и Backend Driven аналитика
• Как мы запустили официальный российский магазин приложений RuStore
• Как мы внедряли пуш-уведомления в мессенджер — от базовой отправки до проработки условий
• Эвристики Нильсена на примере реальных приложений
• Разработка мобильных приложений: ключевые принципы продуктового и проектного подходов
• Мифы и легенды о безопасности мобильных приложений
• Avito Security Meetup
• Podlodka #329: с чего начинается Big Data
• Самые высокооплачиваемые вакансии июля в области разработки приложений
• Что такое магистральная разработка
•
A WWDC Design Lab Made My App So Much Better
•
Before you try to do something, make sure you can do nothing
•
Explaining Vector Databases in 3 Levels of Difficulty
•
5 UX Secrets Behind the Success of Threads App by Meta
•
How DoorDash Migrated from StatsD to Prometheus
•
ORIDE — UX Case Study
•
A Realistic Day of a Product Manager’s Life at Microsoft
•
Vertical vs. Horizontal Cards: Which Are Better?
•
Tidal Cycles – Live coding music with Algorithmic patterns
Аналитика, маркетинг и монетизация
• Какая конверсия в платящего пользователя хорошая?
• Bloom учит Поколение Z инвестициям
• Самые скачиваемые и зарабатывающие приложения в России в июле 2023
• DSP: различия и преимущества lookalike и предиктивных моделей. Часть #2
• IronZen: как мы решили боль тысяч тревожных людей, разработав собственное мобильное приложение
• Сила Streak: повышение вовлеченности обучающих приложений
• В RuStore появилась возможность загружать приложения для ТВ
• «Мобильный опыт 2023» — отчет Embrace
• $100 млн: Inworld — ИИ для NPC
• Amazon Clinic заработал во всех штатах
• Pokemon Sleep набрал 2 млн установок
• Какие страны выпускают больше всего мобильных игр?
• Rewind выпустил приложение для iPhone, которое поможет вам запомнить всё
AI, Устройства, IoT
• Аналитика и оптимизация батарей в IoT-устройствах
• Автоматизируем вентиляцию в квартире площадью 200 м²: бюджет не ограничен
• Kincony KC868-A4S: как A4, только (S)UPER
• Yet another UDP transport
• Смарт-очки Ray-Ban почти не используются
• Snapchat запустил новую программу вознаграждения создателей AR-линз
•
AI Companion App: легкий стек для создания и размещения собственных ИИ-компаньонов
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Хотим в очередной раз пригласить вас в опрос Developer Nation. Расскажите, что вам нравится или не нравится в популярных инструментах и платформах. Опрос охватывает 13 направлений: мобильные, десктопные, облачные и веб-приложения, промышленный Интернет вещей, игры, машинное обучение, искусственный интеллект и т.п. Опрос доступен на 10 языках, в том числе и на русском. Можно начать и сохранить для продолжения. Можно выиграть призы. Главное — внести свой вклад в развитие сообщества разработчиков.
iOS• Создаем дефолтные аватары пользователей в SwiftUI
• Добавляем обучающие моменты в приложения с помощью TipKit
• Sticky Header в SwiftUI
• Кто ты, SwiftData
• GC, ARC, RAM. Часть 3. iOS
• The Composable Architecture достигла версии 1.0: что это такое
• Thread Safety в Swift
•
Adding teachable moments to your apps with TipKit•
Swift Macros•
Composable Architecture 1.0•
Animating Carrousel Transitions in SwiftUI•
DocC Tutorial for Swift: Automating Publishing With GitHub Actions•
Observation Framework in iOS 17•
Crafting a Swift Package Plugin for App Data Protection•
Unit Testing with async/await•
iOS Interview Guide: Custom higher-order functions in Swift•
Modularised Navigation in SwiftUI — An Enum-based Approach•
The Large Title UINavigationBar Glitches and How to Fix Them•
Localization testing in Xcode•
SwiftUI Tutorial: Navigation•
Streamlining Similar View Controllers: A Swift Tutorial to Embrace the Refactor Mindset•
Mastering StoreKit 2•
How to automate taking screenshots with fastlane for iOS•
How to use type erasure in Swift with a real example•
Advanced async testing: Unstructured concurrency•
Animate background with color gradient in SwiftUI•
Understanding iOS Memory Management With Toy Analogies•
What I’ve learned implementing Swift Macros: 5 takeaways•
SwiftUI Animated Tags View — Layout API•
SwiftData Basics Tutorial: How to Easily Persist Data in SwiftUI•
How to format physical units in Swift using MeasurementFormatter•
SharePlay — Turn your app experience into a shared experience•
SwiftUI: Scroll to Hide Tab Bar•
visionOS 30 Days: уроки разработки для visionOS•
iTorrent: торрент-клиент для iOS
Android• Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android
• По ту сторону фидбека: как проходят Android-собеседования и чего мы ждём от кандидатов
• Лучший спутник в вашем творческом процессе: Android Studio Bot VS ChatGPT для разработчиков
• Оптимизация анимации на Compose: крутим лоадеры, ищем неочевидные функции
• Инди-разработка Android-приложений: боли, идеи и заработок
• Как Google победил фрагментацию в Android
• Исследование State of Databases 2023
•
Designing a Functional Library•
Jetpack Compose for Maps•
Deep dive into Live Edit for Jetpack Compose UI•
Modelling the domain layer using composable use cases•
Lazy Grids for Android TV using Jetpack Compose•
Fluent and Fun Clean Architecture using Kotlin•
How to create a chatbot with Firebase Firestore and PaLM on Android•
Try the K2 compiler in your Android projects•
Android Worldwide July 2023•
Gradle Cache: Your build’s best friend•
Firebase Dynamic Links Depricated! Migrate to Android App Links•
Passing events from Composable functions to MVI ViewModels•
How I became an Android Developer•
Android 13 Runtime Notification Permission: XML & Jetpack Compose Guide•
Debugging Alarms with ADB•
Using String Resources in a ViewModel•
Debugging Google Maps App Issue on Android•
Debugging the recomposition in Jetpack Compose•
Clok: The math behind the clock•
Fixing touch target size in PLR•
Live Edit for Jetpack Compose•
Android Studio Giraffe stable release, New Samsung foldables, and more dev news!•
Top App Bar (Toolbar) — UX With Material3•
Selection UI Components (Checkboxes, Switches, Radio Buttons) — UX With Material3•
Android Worldwide July 2023•
Stable Diffusion AI: свой генератор изображений для Android•
Compose Adaptive Scaffold: простая поддержка больших экранов
Кроссплатформа• Будущее iOS-разработки на Flutter
• Как мы сделали онлайн-редактор кода на Flutter
• Мобильная мультиплатформенная разработка в McDonald’s
• Kotlin Multiplatform Mobile (KMM) превращается в Kotlin Multiplatform (KMP)
• Мобильное приложение для eCommerce: опыт кроссплатформенной разработки
•
Popular apps using Kotlin Multiplatform (KMP) in 2023 — and what you can learn from them•
Intercepting Ktor Network Responses in Kotlin Multiplatform•
A Deep Look Into Flutter Databases•
How we reduced bundle size by 15% with patching package•
How To Use Lints In Flutter•
Storing data from the Flutter app → Google Sheets•
Enhance your React Native Application Performance•
Understanding Keys, Elements, RenderObjects and their interplay in Flutter•
The basics of Layout Animations in React Native Reanimated•
Firebase Analytics in Flutter app
Разработка• Дизайнер не нужен. Правила создания красивых UI
• Как маленькая нейроязыковая модель в Клавиатуре победила серверные подсказки
• BDUI, многошаг и Backend Driven аналитика
• Как мы запустили официальный российский магазин приложений RuStore
• Как мы внедряли пуш-уведомления в мессенджер — от базовой отправки до проработки условий
• Эвристики Нильсена на примере реальных приложений
• Разработка мобильных приложений: ключевые принципы продуктового и проектного подходов
• Мифы и легенды о безопасности мобильных приложений
• Avito Security Meetup
• Podlodka #329: с чего начинается Big Data
• Самые высокооплачиваемые вакансии июля в области разработки приложений
• Что такое магистральная разработка
•
A WWDC Design Lab Made My App So Much Better•
Before you try to do something, make sure you can do nothing•
Explaining Vector Databases in 3 Levels of Difficulty•
5 UX Secrets Behind the Success of Threads App by Meta•
How DoorDash Migrated from StatsD to Prometheus•
ORIDE — UX Case Study•
A Realistic Day of a Product Manager’s Life at Microsoft•
Vertical vs. Horizontal Cards: Which Are Better?•
Tidal Cycles – Live coding music with Algorithmic patterns
Аналитика, маркетинг и монетизация• Какая конверсия в платящего пользователя хорошая?
• Bloom учит Поколение Z инвестициям
• Самые скачиваемые и зарабатывающие приложения в России в июле 2023
• DSP: различия и преимущества lookalike и предиктивных моделей. Часть #2
• IronZen: как мы решили боль тысяч тревожных людей, разработав собственное мобильное приложение
• Сила Streak: повышение вовлеченности обучающих приложений
• В RuStore появилась возможность загружать приложения для ТВ
• «Мобильный опыт 2023» — отчет Embrace
• $100 млн: Inworld — ИИ для NPC
• Amazon Clinic заработал во всех штатах
• Pokemon Sleep набрал 2 млн установок
• Какие страны выпускают больше всего мобильных игр?
• Rewind выпустил приложение для iPhone, которое поможет вам запомнить всё
AI, Устройства, IoT• Аналитика и оптимизация батарей в IoT-устройствах
• Автоматизируем вентиляцию в квартире площадью 200 м²: бюджет не ограничен
• Kincony KC868-A4S: как A4, только (S)UPER
• Yet another UDP transport
• Смарт-очки Ray-Ban почти не используются
• Snapchat запустил новую программу вознаграждения создателей AR-линз
•
AI Companion App: легкий стек для создания и размещения собственных ИИ-компаньонов← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.