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

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Комментарии (0)