Мобильная разработка за неделю #570 (6 — 12 января)

В этой подборке уменьшаем написание boilerplate и удаляем десятки тысяч строк кода, чистим проекты правильно и наблюдаем за закатом Stack Overflow, оцениваем рынок мобильных приложений в России в 2024 году, отслеживаем перформанс-метрики и многое другое. Подключайтесь!

yq6ncxkft1sqk7qexvtktl9t9ja.jpeg

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Как новая функция Xcode 16 помогла избавиться от 66,000 строк кода
• Переезд с UIKIT на SwiftUI — кажется, УЖЕ ПОРА!
• Doublepoint запускает бесплатное приложение для Apple Watch, позволяющее управлять устройствами с помощью жестов рук
• iOS 18.3 намекает на новое приложение Invites от Apple
• Swift Student Challenge стартует 3 февраля
• Что такое Lazy Variables в Swift
• Объявлены победители 2024 AppleVis Golden Apples
• Задачи с собеседования: LRU Cache — leetcode
377ae0333d0f4b7b97307c9eea5ee21a.gifiOS to AI Engineer: Your Roadmap
377ae0333d0f4b7b97307c9eea5ee21a.gifOptimizing iOS App Performance
377ae0333d0f4b7b97307c9eea5ee21a.gifWrite Swift Like Apple. Part 2
377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding opaque types and protocols with associatedtype in Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifIntroduction to JWTs in Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftData CRUD Operations with ModelActor
377ae0333d0f4b7b97307c9eea5ee21a.gifKeyboard-driven actions in SwiftUI with onKeyPress
377ae0333d0f4b7b97307c9eea5ee21a.gifTesting Background Uploads in iOS
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngComplete Habit Tracker App — SwiftUI, SwiftData CRUD
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCarousel With Ambient Background Effect — SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to hide a View when the app goes into the background
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngRawRepresentable and AppStorage
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPersistence Image Caching — SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngReduce Memory Consumption when using Large Images
96716bcb926741e79bb1c284a88083ca.pngCodeEditTextView — редактор кода
96716bcb926741e79bb1c284a88083ca.pngGiffy — клиент Giphy на чистой архитектуре

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Уменьшаем написание boilerplate с помощью File Templates
• Чистим Android-проект просто и правильно
• Подходы к созданию ViewModel в Android
• Управление событиями в ViewModel с помощью StateFlow, SharedFlow и Channel
• Олег Афанасьев про причину создания Rustore и будущее Play Market
• Google открывает доступ к Home API
• Куда идёт мобильная разработка: подводим итоги 2024 года
377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin Exception Handling: Why Singleton Exceptions are a bad idea
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Feature Flag Implementation with Firebase Remote Config + Kotlin Flow + Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifBinary Compatibility Validator: Managing API Breaking Changes in Your Android Library
377ae0333d0f4b7b97307c9eea5ee21a.gifDebugging Kotlin Coroutines: Making «Optimised Out» Variables Visible
377ae0333d0f4b7b97307c9eea5ee21a.gifError Handling in Android with Kotlin: Two Approaches for Clean Architecture
377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin — Functional (SAM) interfaces VS Function-Type Performance
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngType-Safe Deep Link Navigation using Jetpack Compose
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWhat«s new in Android Studio Ladybug
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMedia & Camera experiences
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Encrypt DataStore On Android
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAndroid XR Introduction — Build Apps With AR & VR Support
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Record the Screen of ANY Android App
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWe fixed an inconsistency in Kotlin (non-local break & continue)
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGuards and Pattern Guards
96716bcb926741e79bb1c284a88083ca.pngmpvKt — медиаплеер для Android
96716bcb926741e79bb1c284a88083ca.pngSequence Showcase — подсветка элементов на Jetpack Compose

malx8hbgozt6lee8rmxmg96_s6a.pngКроссплатформа

• PWA vs Native App. Как и зачем в Альфа-Бизнесе создавали свой MobileWeb
377ae0333d0f4b7b97307c9eea5ee21a.gifLessons Learned From My First Mobile Flutter App — uStor Storage App
377ae0333d0f4b7b97307c9eea5ee21a.gifExploring Isolates — Guide to Parallelism In Dart & Flutter
377ae0333d0f4b7b97307c9eea5ee21a.gifMigrate your Android Project to Compose Multiplatform Project
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngReact Native Full Course for Beginners
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFull-Stack Game Development — Kotlin & Compose Multiplatform

7081c634ec176ab6b953d9d19e82a09a.pngРазработка

• Количество новых вопросов на StackOverflow сократилось на 77% по сравнению с 2022 годом
• Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов
• Автоматизация: Есть ли шанс у Maestro для тестирования мобильных приложений?
• BA x Frontend: Как перестать проектировать в голове
• Мок-интервью по мобильному системному дизайну
• Проектирование и запуск разработки
• Mobile App Performance: метрики производительности
• Релизный процесс приложений Ozon
377ae0333d0f4b7b97307c9eea5ee21a.gifF*: A general-purpose proof-oriented programming language
377ae0333d0f4b7b97307c9eea5ee21a.gifOperating System in 1,000 Lines
377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding the B&Q Mobile Apps

509dc9bde69347ecbe0c21ff2973d7e7.jpgАналитика, маркетинг и монетизация

• Рынок мобильных приложений в России 2024
• Candy Crush, Tinder, MyFitnessPal — тысячи приложений шпионят за местоположением пользователей
• Как отслеживать перформанс-метрики приложения и выкатывать только позитивные изменения
• А если без A/B-тестов? Как мы оценивали эффективность контент-продукта через квазиэксперименты
• Лаборатория Google запустила Daily Listen — персонализированный подкаст, основанный на ваших интересах
• Доход от подписок Duolingo вырос на 567% за четыре года
• Netflix начал заниматься спортом, и это принесло свои плоды

8538129f5e7b404a720121cb9c3814db.jpgAI, Устройства, IoT

• Как сделать идеальную вентиляцию в городе, где часто бывает смог: приточка, вытяжка, увлажнитель и кондиционеры
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngIoT Home Automation Project Tutorial

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

© Habrahabr.ru