Мобильная разработка за неделю #572 (20 — 26 января)

В новом выпуске распознавание номеров телефонов для пикника и первая бета Android 16, не всеобъемлющее руководство по тестированию пуш-уведомлений и 5 лет React Native в Shopify, технический гайд по сторис, годовой отчет «Состояние мобильного рынка в 2024 году» от Sensor Tower и многое другое. Подключайтесь!

5g3hasft7uwyyou-cvwnnanmagq.jpeg

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

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Как мы сделали on-device-распознавание номеров телефонов для ИТ-Пикника
• Темы в современных iOS-приложениях с UITraitCollection
• Вызов защищенного API из iOS-приложения на Swift
• Архитектура для SwiftUI — VSURF
• Фото-пикер 2.0: как сделать фичу на 150%
• App Store запускает Advanced Commerce API
• Apple Intelligence включат по умолчанию
• Color mixing in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifObserving properties on an @Observable class outside of SwiftUI views
377ae0333d0f4b7b97307c9eea5ee21a.gifReducing Motion of Animations
377ae0333d0f4b7b97307c9eea5ee21a.gifCreating a reusable action menu component in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifDebugging An Undebuggable App
377ae0333d0f4b7b97307c9eea5ee21a.gifRemove unused code in a real-world iOS project
377ae0333d0f4b7b97307c9eea5ee21a.gifEffortless SwiftUI Theming
377ae0333d0f4b7b97307c9eea5ee21a.gifBringing App Intents to Your SwiftUI App
377ae0333d0f4b7b97307c9eea5ee21a.gifRemove background from image in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifProtocol Extensions in Swift 6.0: New Tricks
377ae0333d0f4b7b97307c9eea5ee21a.gifiOS Modular Architecture: From Monolith to Hybrid Approaches
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGuiding the Golden Age: Rebuilding Indoor Navigation for Rijksmuseum
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMastering Color Views in SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngNotification Deep Linking | Open Specific View From Push Notifications
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngScalable Continuous Integration for iOS
96716bcb926741e79bb1c284a88083ca.pngRecall — календарь для продуктивности
96716bcb926741e79bb1c284a88083ca.pngSharing — универсальное решение для хранения и совместного использования данных

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Вышла первая бета-версия Android 16
• Погружение в мир Lint’a в Android-проекте (часть 2)
• Абсолютно потрясающее, но определенно не всеобъемлющее руководство по тестированию пуш-уведомлений
• Jetpack Compose и Edge-to-Edge на Android 15
• Как синтаксический сахар Kotlin может сломать вам логику работы приложения
• Как сделать библиотеку, чтобы ей пользовались
• Как Класс производительности помог Google Maps предоствить первоклассный опыт
377ae0333d0f4b7b97307c9eea5ee21a.gifUsing new Camera extensions API
377ae0333d0f4b7b97307c9eea5ee21a.gifWidgets with Glance: Displaying Images
377ae0333d0f4b7b97307c9eea5ee21a.gifSubcomposition in Jetpack Compose: How to Use Measurement Phase Data in Other Children
377ae0333d0f4b7b97307c9eea5ee21a.gifDon«t let Maven block you!
377ae0333d0f4b7b97307c9eea5ee21a.gifMockk: My Favorite Mocking Library for Android
377ae0333d0f4b7b97307c9eea5ee21a.gifPlease don«t dox me Google: How to verify your Google Play account without exposing ALL of your information
377ae0333d0f4b7b97307c9eea5ee21a.gifApp taken down: Beware of adding a «surprise» free trial without updating the UI
377ae0333d0f4b7b97307c9eea5ee21a.gifCode Optimization with Proguard and R8 in Android
377ae0333d0f4b7b97307c9eea5ee21a.gifStop hopping threads!
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Studio Meerkat Feature Drop
377ae0333d0f4b7b97307c9eea5ee21a.gifAnnouncing Tuist Registry
377ae0333d0f4b7b97307c9eea5ee21a.gifProgrammatic navigation with Tab View in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifAuto Layout Made Easy: Master Constraints with a Powerful UIView Extension
377ae0333d0f4b7b97307c9eea5ee21a.gifComprehensive System Design of LinkedIn Android App
377ae0333d0f4b7b97307c9eea5ee21a.gifF-Droid«s Progress and What«s Coming in 2025
377ae0333d0f4b7b97307c9eea5ee21a.gifThe future is adaptive: Changes to orientation and resizability APIs in Android 16
377ae0333d0f4b7b97307c9eea5ee21a.gifFrom frustration to framework: Revamping UI testing at Qont
377ae0333d0f4b7b97307c9eea5ee21a.gifReal-World Solutions for Remote Localization in Jetpack Compose Apps
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngInputStreams & OutputStreams In Kotlin
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWorking With Files In Kotlin
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCompose Performance for Us Humans
96716bcb926741e79bb1c284a88083ca.pngCuteMusic — быстрый музыкальный плеер для Android
96716bcb926741e79bb1c284a88083ca.pngLumo-UI — плагин Gradle для создания компонентов Compose
96716bcb926741e79bb1c284a88083ca.pngAndroid Interview Questions — вопросы и темы с Android-собеседований

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

• 5 лет React Native в Shopify
• Создание на Flutter MMO, достигшей $14k MMR в закрытом тестировании
• YPay & YPay Inventory для Flutter приложений
• Такие разные Slivers: обзор и применение во Flutter. Часть 1
• Спасти проект: с какими трудностями мы столкнулись при разработке и поддержке мобильной кроссплатформы
• Аналитика в мобильном приложении на Flutter. Часть 1. Yandex AppMetrica
377ae0333d0f4b7b97307c9eea5ee21a.gifIntroducing card_game: A declarative Flutter package that makes building card games easy
377ae0333d0f4b7b97307c9eea5ee21a.gifCompose multiplatform is real
377ae0333d0f4b7b97307c9eea5ee21a.gifWriting Golden Tests in Flutter
377ae0333d0f4b7b97307c9eea5ee21a.gifDetecting Text with Camera in Compose Multiplatform
377ae0333d0f4b7b97307c9eea5ee21a.gifDesign Systems in Flutter. Why and How.
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBecoming a KMP Expert
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMulti-language Support in Kotlin/Compose Multiplatform
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFlutter Animations Made Easy

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

• Технический гайд по сторис или как мы повысили конверсию в мобильном приложении в 9 раз
• Автоматизируем рутинные задачи и сокращаем бюджет на дизайн: Figma Variables в создании макетов мобильных приложений
• UI/UX тренды в 2025: угрожает ли ИИ будущему дизайнеров и какие визуальные тренды нас удивят?
• Токены цвета для приложения: Как создать, использовать и передать в разработку
• , Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов
• Управление ресурсами в DevOps: от облачных решений до «железных» серверов
• Универсальное решение для мобильного автотестирования
• Смена профессии в IT — Карьера, Профессиональный рост
377ae0333d0f4b7b97307c9eea5ee21a.gifI am (not) a Failure: Lessons Learned From Six (and a half) Failed Startup Attempts
377ae0333d0f4b7b97307c9eea5ee21a.gifYour Career is a Startup: Building Sustainable Growth, One Stage at a Time
377ae0333d0f4b7b97307c9eea5ee21a.gifWhy You Need a «NOT Doing» List, not a Todo List
377ae0333d0f4b7b97307c9eea5ee21a.gifWhy manual Release Notes and Versions are a chaos and how to fix it
377ae0333d0f4b7b97307c9eea5ee21a.gifThe fizzbuzz that did not get me the job
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngNeetcode 150 Course — All Coding Interview Questions Solved

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

• Состояние мобильного рынка в 2024 году — отчет Sensor Tower
• Никита Бир о том, как создавать виральные продукты
• Сокращается ли рынок приложений — Обсуждение на Reddit
• Супераппы «супергорода» или что такое Careem и Noon в Дубае? Обзор приложений. Часть 1: Careem
• Epic поможет покрыть расходы разработчиков на iOS
• Раскрываем секреты маркетинга в 5 квартале

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

• Заменяем хабраюзеров ИИ-агентами. Гайд по browser-use
• История бюджетной автоматизации отопления в Home Assistant)
• Home Assistant на Raspberry Pi 5
• Google и Samsung работают над AR-очками
• В SmartThings от Samsung появятся функции искусственного интеллекта
• Perplexity запускает Sonar, API для ИИ-поиска
• Tencent представила Hunyuan3D 2.0 — открытую ИИ-систему 3D моделирования

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

© Habrahabr.ru