Маркетинг и монетизация
Мобильная разработка за неделю #460: по ту сторону дефолтных аватаров
В новом выпуске создаем дефолтные аватары и исследуем 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
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: опыт кроссплатформенной разработки
- Исследование State of Databases 2023
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