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

В новом дайджесте бажная корзина в Додо Пицце и сложности Combine, улучшение производительности навигации на Android и кодревью «как не войти в айти в 2024», самые важные пакеты в экосистеме Flutter, 12 маленьких уроков большого приложения для баскетбола, топ быстрорастущих приложений в России в октябре и многое другое. Подключайтесь!

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

movg6cffhraa7bhidjd8t_frmde.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Корзина в Додо Пицце на iOS 14: баг длиной в полгода
• Tuist: добавляем генерацию проекта в текущее приложение
• Вычисление семантического расстояния между словами с помощью Natural Language Framework
• Осторожно, Combine! Откуда берутся утечки памяти, потеря эвентов, нестабильность операторов и что с этим всем делать
• История одного модального окна или переходим с UIKit на SwiftUI. Часть 2.1. Неожиданный баг Combine
• Создаем анимацию печати текста на печатной машинке в SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifIntroducing Recap: What«s Old Is What«s New Again
377ae0333d0f4b7b97307c9eea5ee21a.gifMaintaining Syntactic Sugar for Optional in Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifReplacing Fastlane with Shell scripts
377ae0333d0f4b7b97307c9eea5ee21a.gifSecurity-scoped bookmarks for URL access
377ae0333d0f4b7b97307c9eea5ee21a.gifHow we reduced the build time by 2 with (out) Xcode at Shopmium
377ae0333d0f4b7b97307c9eea5ee21a.gifSwift Testing: How to Test Your iOS App«s Network Layer
377ae0333d0f4b7b97307c9eea5ee21a.gifWhat was early iOS development like
377ae0333d0f4b7b97307c9eea5ee21a.gifNetworking Async/Await in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding a Custom Progress Bar in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifReinventing Core Data Development with SwiftData Principles
377ae0333d0f4b7b97307c9eea5ee21a.gifCreating a Theme manager for UIKit using Combine in Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifExploring SwiftUI: Understanding TextRenderer to Animate Words
377ae0333d0f4b7b97307c9eea5ee21a.gifTokenizing text with the Natural Language framework
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngInteractive Toasts SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to get started with Swift Testing
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWWDC22: Visualize and optimize Swift concurrency
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPrincipal Engineer shares tips to Master System Design and Architecture
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Toasts
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to get started with Swift Testing
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCreate a Bold SwiftUI Flight Boarding Widget
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAdd Micro Interactions to your Tab Bar | SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngiOS/SwiftUI Chat App With Cursor
96716bcb926741e79bb1c284a88083ca.pngiOS Swift for VS Code — iOS-разработка в VS Code
96716bcb926741e79bb1c284a88083ca.pngiOS Performance Optimization — рекомендации по оптимизации iOS-приложений
96716bcb926741e79bb1c284a88083ca.pngTinyStorage — простая и легкая замена UserDefaults для постоянного хранения данных

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Компьютерное зрение на C++: пишем приложение для поиска объектов под Android
• Как мы улучшили производительность навигации на Android на 30%
• Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery
• Как настроить правильное расположение элементов в Android-приложении для арабского языка
• Понимание прогноза глюкозы в AndroidAPS часть 2
• Тесты для функций Compose в Android
• Google начал развертывание Android 15 на Pixel
• Зачем нужен crossinline — вопросы с собеседований
• Google готовится запустить Linux-приложения на Android
• Как следить за качеством работы вашего кода. Tracer. Кирилл Попов
• 1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью
• Замена иконок — что может быть проще?
377ae0333d0f4b7b97307c9eea5ee21a.gifKtor 3.0 Is Now Available With New Features and Improved Performance
377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin Design Patterns: Builder Explained
377ae0333d0f4b7b97307c9eea5ee21a.gifSeamless Real-Time Location Tracking with gRPC, Kotlin & Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifOne click dependencies fix
377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding the Impact of Multiple NavHosts on Back Navigation and ViewModel Management in Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifSWIGGY SDE-2 Inteview Experience (Android)
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Studio Ladybug Feature Drop
377ae0333d0f4b7b97307c9eea5ee21a.gif7 Kotlin Flow Operators that you must know
377ae0333d0f4b7b97307c9eea5ee21a.gifTesting Coroutines — Simplified
377ae0333d0f4b7b97307c9eea5ee21a.gifUsing Kotlin Reflection to Automate Compose Navigation
377ae0333d0f4b7b97307c9eea5ee21a.gifrunTest vs runBlocking — Simplified
377ae0333d0f4b7b97307c9eea5ee21a.gifBypassing Location Restrictions on a Android App Using Frida
377ae0333d0f4b7b97307c9eea5ee21a.gifThe updated Kotlin roadmap is here!
377ae0333d0f4b7b97307c9eea5ee21a.gifCompose Multiplatform 1.7.0 Released
377ae0333d0f4b7b97307c9eea5ee21a.gifCreating a responsive dashboard layout for JetLagged with Jetpack Compose
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCustom Adaptive layouts in Compose
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngRegion specific resources and broken localization
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngApplying the Builder Pattern in Kotlin
96716bcb926741e79bb1c284a88083ca.pngLoaders — лоадеры для Jetpack Compose

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

• Самые важные пакеты в экосистеме Dart и Flutter на Pub 2024
• Как подружить Flutter и Huawei — настраиваем App Gallery. Часть 1
377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding a Cross-Platform Camera App with CameraK and Compose Multiplatform
377ae0333d0f4b7b97307c9eea5ee21a.gifMaking Compose Multiplatform apps feel at home: removing ripple animation on iOS
377ae0333d0f4b7b97307c9eea5ee21a.gifAutomated Code Analysis for Flutter: Integrating SonarCloud with GitHub Actions
377ae0333d0f4b7b97307c9eea5ee21a.gifTrying to Start a Multiplatform Company Store with Kotlin RPC, Koin, Ktor, and WASM
377ae0333d0f4b7b97307c9eea5ee21a.gifMastering Null Safety in Dart: A Practical Guide for Flutter Developers
377ae0333d0f4b7b97307c9eea5ee21a.gifCompilers, Virtual Machines and Code Analysis — What makes Dart and Flutter run
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMobile App Development Course with React Native, Supabase, Next.js
96716bcb926741e79bb1c284a88083ca.pngKotlin Multiplatform Developer Roadmap — план изучения Kotlin Multiplatform

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

• Один год Elite Hoops: 12 маленьких уроков
• Ускоряем работу приложения с помощью сжатия с общим словарем
• Антипаттерны Code Review
• День, когда мы (почти) потеряли тысячу клиентов
• Детство с синей изолентой, профессиональные трудности и путь к успеху девушки в IT: опыт Ани Жарковой
• Тысячи иконок и адаптация под RTL: проектирование интерфейса шаблона мобильного приложения для партнёров Travelpayouts
• Shape Up, scrum out. Как решать проблемы юзеров за дни, а не за сторипоинты
• Google выпустил корпоративную версию Gemini Code Assist
• Early создает Unit-тесты с помощью ИИ
377ae0333d0f4b7b97307c9eea5ee21a.gif3 Career Principles that got me to Director at Google
377ae0333d0f4b7b97307c9eea5ee21a.gifIntegrating Appium and Cypress for Unified Test Automation
377ae0333d0f4b7b97307c9eea5ee21a.gifThe Senior Shortcut
377ae0333d0f4b7b97307c9eea5ee21a.gifHow we Outsmarted CSGO Cheaters with IdentityLogger
377ae0333d0f4b7b97307c9eea5ee21a.gifBe Suspicious of Success
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngProgramming a first person shooter from scratch like it«s 1995

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

• Топ быстрорастущих приложений в России в октябре
• Дизайн на основе данных: Как метрики делают ваш продукт успешным
• Собеседование продуктового аналитика в Авито: кейс-интервью
• 17 Издание Индекса эффективности от AppsFlyer
• Как определить целевую аудиторию и повысить охваты вашего мобильного приложения: полное руководство 
• Самые скачиваемые и зарабатывающие приложения в мире в сентябре 2024
377ae0333d0f4b7b97307c9eea5ee21a.gifHow Uber Eats makes you think you want to order food
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to brew the perfect Halloween campaign for app growth

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

• Почему AI не заменит программистов
• На пути к миллиарду: строим настоящую IT-компанию вокруг подвижных детских игр «Пол — это лава» и «Море волнуется»
• Искусство аугментации: как улучшить модели компьютерного зрения без сбора новых данных
• Секреты умного дома от профессионала: что скрывает Андрей в своем особняке
• Ставлю на Zero! Мой выбор одноплатника. Raspberry Pi vs Orange Pi
• AI в медицине
• Mistral выпускает новые ИИ-модели, оптимизированные для телефонов

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

© Habrahabr.ru