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

В этой еженедельной подборке опровергаем архитектурные заблуждения и знакомимся с Swift Algorithms, собеседуем в RuStore и двигаем рукой справа налево, уменьшаем продуктовую анимацию, тащим новые технологии, идем в Мордор с Фродо и многое другое!

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

pdsknkasqznznxpbvzivhsbbivg.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Опровергаю пять архитектурных заблуждений
• Знакомимся с пакетом Swift Algorithms
• Автоматический аудит доступности SwiftUI в Xcode 15
• Масштабирование iOS в Bumble: вызовы
• Камера как сканер штрих-кодов: проблемы, инструменты и эксперименты
• Как устроен @State в SwiftUI
• Как устроен Яндекс Go и зачем работать со студентами и стажерами
• Навигация в SwiftUI
• Apple подтвердила прекращение работы PWA в Европе
• Apple готовит ИИ инструменты для Xcode
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDisabling Core Data CloudKit Logging
• 377ae0333d0f4b7b97307c9eea5ee21a.gifScreen vs View in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreate an animated transition with Matched Geometry Effect in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSorting Out Your App Architecture With SwiftUI Design Patterns
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExploring SwiftUI Property Wrappers: @FetchRequest, @SectionedFetchRequest, @Query, @Namespace, @Bindable
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to use @ScaledMetric in SwiftUI for Dynamic Type support
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDiscovering Swift Algorithms package
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGetting started with Apollo iOS for GraphQL with Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAutomating app releases for multiple platforms with Xcode Cloud
• 377ae0333d0f4b7b97307c9eea5ee21a.gifiOS Interview Guide: Equatable Protocol
• 377ae0333d0f4b7b97307c9eea5ee21a.gifiOS Mobile App Security: Best Practices for iOS Mobile Developers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding Once and For All SwiftUI Alignment Guides
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftUI Field Guide
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSelf vs self in Swift — Find out the differences with practical examples
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftConf »23 Videos
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Minimal Todo List With SwiftData & Interactive Widgets
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI CoverFlow
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMaking it Rain — Advanced Special Effects with SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPop to Root View When TabView Item is Pressed
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftData & CloudKit: See How To Add Syncing In Your Apps
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSenior iOS Tip: Xcode Templates
• 96716bcb926741e79bb1c284a88083ca.pngRock Paper Scissor: «камень-ножницы-бумага» в одноранговой сети
• 96716bcb926741e79bb1c284a88083ca.pngOKLCHGradient: OKLCH градиенты для SwiftUI
• 96716bcb926741e79bb1c284a88083ca.pngDelta: эмулятор классических видеоигр для iOS

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Техническое собеседование инженеров мобильной разработки в RuStore
• Тренды Android-разработки
• Предварительный просмотр представлений Jetpack Compose за считанные секунды
• Изи freestyle android приложения на Kivy (Python), Google collab и ваш не любимый ChatGPT
• Собирательный образ Junior Android Developer. Какой он в 2024?
• Material Design 3 для Compose 1.2
• Двигай рукой справа налево: адаптация интерфейса в Android приложении под RTL в XML и Jetpack Compose
• Как реализовать App shortcuts в Android
• Многомодульность для UI-тестов
• Как мы создавали дизайн-систему на Jetpack Compose
• Как мы автоматизировали генерацию Baseline Profile
• Кто-то съел мою память на CI!
• Верхнеуровневый обзор архитектуры CI/CD мобильного приложения
• В Android Studio заработал Device streaming
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhat Every Android Developer Should Have in Their GitHub?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAbstraction design: Introduction
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCrafting Android bytecode analysis tooling using a secret ingredient
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow We Made the CES 2024 AR Experience: Android Virtual Guide, powered by Geospatial Creator
• 377ae0333d0f4b7b97307c9eea5ee21a.gifJetpack Compose: Divider
• 377ae0333d0f4b7b97307c9eea5ee21a.gifModern Android Development in 2024
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSpeeding up isBlank ()
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCompose Multiplatform Made easy with Circuit
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Future of Android Development is Here: Meet Studio Bot, Your AI Co-Pilot
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExploring Kotlin«s Sealed Interface: A Comprehensive Guide for Android Developers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOptimizing Kotlin Performance: Essential Practices You Need to Master
• 377ae0333d0f4b7b97307c9eea5ee21a.gifEnd-To-End Testing With Robot Pattern And Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGuide to Foreground Services on Android 14
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWrite AndroidStudio Plugin Step By Step
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBasicTextField2 — Everything You Need to Know
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTHIS New Modifier in Compose 1.7.0 Is Amazing!
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMastering Code Quality: A Deep Dive into Custom Linting for Android Developers with Gopal
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to integrate Google sign-in with Credential Manager on Jetpack Compose with Supabase Auth
• 96716bcb926741e79bb1c284a88083ca.pngMinimum: минималистичный лаунчер
• 96716bcb926741e79bb1c284a88083ca.pngKotlin Cheatsheet: краткий справочник по Kotlin

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

• Flutter и ГОСТ TLS
• Что нового в Flutter 3.19
• Создание кастомного React Native компонента Switch с помощью библиотек Reanimated и Gesture Handler (Часть 2)
• Dart 3.3 — что нового в Dart?
• Создаем параллакс-эффект во Flutter с CustomPaint
• Вызовы масштабируемости Kotlin Multiplatform на большом проекте
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTop 6 React Native Best Practices for 2024
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExtreme UI Adaptability in Flutter — How Google Earth supports every use case on earth
• 377ae0333d0f4b7b97307c9eea5ee21a.gifiOS Development With Kotlin Multiplatform: Tips and Tricks
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFrom Native to React Native to Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDebug your Flutter App like a Pro with these 5 Tips & Tricks
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA PocketBase backend for Flutter and Dart
• 377ae0333d0f4b7b97307c9eea5ee21a.gifApple Wants To Kill PWAs
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMethod Channels in Flutter for Native Code Interaction
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngThe State of React Native

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

• Что ждёт мобильную разработку в 2024 году
• Что учесть при портировании приложения на Аврору
• Как уменьшить вес продуктовой анимации в 400 раз (без AI)
• Как затащить новую технологию
• Как увольнять людей?
• Kotlin исполнилось 8 лет
• 377ae0333d0f4b7b97307c9eea5ee21a.gif7 must-know object-oriented software patterns (and their pitfalls)
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMobile search: which pattern should you choose?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe UX of Threads» downfall
• 377ae0333d0f4b7b97307c9eea5ee21a.gif(Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe power of product principles
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to create the perfect icon
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMaybe Everything Is a Coroutine
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPkl: Apple«s New JSON/YAML Killer
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFirestore Multiple Databases now generally available, Go 1.22, and more dev news!

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

• Тёмные паттерны UX себя не оправдывают
• Как на ваш выбор влияет дизайн. Подробно про тёмные паттерны в UX
• Январь поставил рекорд по загрузкам и доходам дейтинг-приложений
• Пиратское приложение Kimi вышло в лидеры App Store
• Fantasy Hike — фитнес-трекер по мотивам «Властелина колец»
• iMessage в ЕС не будет считаться платформенным сервисом
• 5 лучших настольных игр для Android
• Score — новое дейтинг-приложение для людей с хорошей кредитоспособностью
• Сколько зарабатывает Medium на мобильных подписках?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to get your first 10,000 mobile app installs

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

• Язык твой — друг твой. Развиваем малые языки
• Автоматизация заведения своими руками: греем крыльцо, закрываем жалюзи и контролируем протечки
• Получаем спутниковые координаты GPS/ГЛОНАСС с помощью модуля SIM868 на Repka Pi
• Лапочки с характером: Как машинное обучение помогает определить тип личности ваших пёсиков
• Rasa, платформа для разработки разговорных чат-ботов, привлекает $30M
• Chat with RTX от NVIDIA позволяет запускать генеративные модели на ПК
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReverse-engineering an encrypted IoT protocol

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

© Habrahabr.ru