Мобильная разработка за неделю #550 (5 — 11 августа)

В нашем новом выпуске автоматическое обнаружение утечек памяти в CI/CD с помощью UI-тестов, эффективная работа с legacy кодом Medium и новая версия Flutter, знакомство с Mobile Farm, тестирование платежей в проде, дейтинг-приложение, работающее только по четвергам и многое другое. Подключайтесь!

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

dabeauw3hf3qw-tovbouaio1qmq.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Как автоматически обнаруживать утечки памяти в CI/CD с помощью UI-тестов
• Как iOS-команда Medium эффективно работает с legacy кодом
• Переводим текст в SwiftUI-приложении с помощью фреймворка Translation
• Как улучшить время сборки в iOS с помощью модуляризации
• Режимы наложения/смешивания в SwiftUI
• Apple объявила о новой структуре сборов для приложений в ЕС
• Дизайн-система в SwiftUI
• Как пиратские приложения обходят проверку App Store
• Итоги одного года мобильной разработки с использованием NLP
• Combine с нуля — реактивщина это просто
377ae0333d0f4b7b97307c9eea5ee21a.gifNon-Sendable types are cool too you know
377ae0333d0f4b7b97307c9eea5ee21a.gifAsync await in Swift: The Full Toolkit
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to add animation to MeshGradient in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifOlympic Logo in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifiOS App Launch Optimization: How Cityflo Achieved 2.22x Faster Load Times
377ae0333d0f4b7b97307c9eea5ee21a.gifUseful packages to improve your SwiftUI development workflow
377ae0333d0f4b7b97307c9eea5ee21a.gifImplementing Seamless App Version Management in iOS with CloudKit
377ae0333d0f4b7b97307c9eea5ee21a.gifExploring SwiftUI: Creating a BottomSheet
377ae0333d0f4b7b97307c9eea5ee21a.gifNested Grid Layout Anomaly: Analysis Approach and Resolution Strategies for SwiftUI Layout Issues
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to automatically manage, monitor & rollout new machine learning models across your iOS app user base
377ae0333d0f4b7b97307c9eea5ee21a.gifExploring HealthKit: Working with State of Mind APIs
377ae0333d0f4b7b97307c9eea5ee21a.gifiOS App Reverse Engineering
377ae0333d0f4b7b97307c9eea5ee21a.gifHave Fun with Apple«s Virtualization.Framework
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding Compositional Grid Layout With iOS 18 APIs
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngThe Best iOS Dev Portfolio Strategy
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Reduce Log Verbosity in the Xcode Debug Console
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGetting the MOST out of Xcode 16
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding App Intro Animations with Shape Morphing Effect Using SwiftUI
96716bcb926741e79bb1c284a88083ca.pngDisk — хранение структур, изображений и данных
96716bcb926741e79bb1c284a88083ca.pngiOS Clean Architecture — чистая архитектура, MVVM и Combine

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• FPC/Lazarus и Android
• Что стоит знать о Jetpack Compose: руководство для начинающих
• Реализация Server-Driven UI в Android
• Пишем своё приложение для установки PIN на другие приложения
• Кастомная тема Jetpack Compose
• Google запускает базу знаний о безопасности Android-приложений
• В Android 15 режим edge-to-edge обязателен, но Google добавил возможность отказаться от него
• Google Play сможет обновлять сторонние приложения
377ae0333d0f4b7b97307c9eea5ee21a.gifHassle-free Snackbar in Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifMaking security easy: How we are helping you fix vulnerabilities in your Android apps
377ae0333d0f4b7b97307c9eea5ee21a.gifJetpack Compose Previews: Delving Deep Into Their Inner Workings
377ae0333d0f4b7b97307c9eea5ee21a.gifClean Data Sources in Android
377ae0333d0f4b7b97307c9eea5ee21a.gifFull-Text Search in Android: Integrating FTS4 with Room
377ae0333d0f4b7b97307c9eea5ee21a.gifMy notes on Android optimization. Part 1. Measuring startup time
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Device Streaming: Announcing Early Access to Samsung, Xiaomi, and Oppo Device Labs
377ae0333d0f4b7b97307c9eea5ee21a.gifPrecise Intent Resolution — Android 15
377ae0333d0f4b7b97307c9eea5ee21a.gifThe best way to load data in ViewModels
377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding an effective abstraction layer for UI resources on Android
377ae0333d0f4b7b97307c9eea5ee21a.gifHow Suspend Functions Work in Kotlin: Under the Hood in Android
377ae0333d0f4b7b97307c9eea5ee21a.gifMutableState or MutableStateFlow: A Perspective on what to use in Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifDecompile and Recompile APK using APKTOOL: Beginners Guide
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTargeting Android 15 — Why Your App Is NOT Ready
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngChannels in Kotlin Coroutines|
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGuide to Improving Compose Performance
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBackground Work in Android: Strategies and Best Practices
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngApplying the Strategy Pattern in Kotlin
96716bcb926741e79bb1c284a88083ca.pngZoomable — увеличение жестами в Jetpack Compose
96716bcb926741e79bb1c284a88083ca.pngWhatsApp Clone Compose — копия WhatsApp на Compose и Stream SDK
96716bcb926741e79bb1c284a88083ca.pngCompose Game Engine — 2D игровой движок

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

• PWA вместо приложения: плюсы, минусы, подводные камни
• Flutter 3.24: что нового
• Архитектура Flutter проекта простым языком. Clean Arch (MVVM, DI, Bloc, Inversion of Control)
• Полный гайд по тестированию на Flutter. Часть 6: Тестовые двойники: Faking vs Mocking
377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding Composited Layers to improve the performance of Flutter apps
377ae0333d0f4b7b97307c9eea5ee21a.gifConvert Your Native Project to Kotlin Multiplatform
377ae0333d0f4b7b97307c9eea5ee21a.gifHow BigPay Increased Flutter Developer Velocity
377ae0333d0f4b7b97307c9eea5ee21a.gifGetting started with Flutter GPU
377ae0333d0f4b7b97307c9eea5ee21a.gifCustom Render Boxes and Painting in Flutter
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Develop a Super App with React Native?
377ae0333d0f4b7b97307c9eea5ee21a.gifDeep dive into writing macros in Dart 3.5
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngLifecycle path to Multiplatform
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngKotlin Multiplatform in Google Wo|rkspace
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngKMP in Action A Production Case Study

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

• ОС «Аврора» — веб-сервер в кармане
• Жутко, но факт: как Uber тестирует платежи в продакшене
• «Арендовал телефон — стал фермером»: знакомство с Mobile Farm
• Тулкиты кодогенерации Android vs iOS
• Ускоряем карьерный рост в FAANG
• Алгоритмы — самый провальный этап собеседований •
• VK проведет конференцию по мобильной разработке — VK JT Mobile
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to perform geoqueries on Firestore (somewhat) efficiently
377ae0333d0f4b7b97307c9eea5ee21a.gifThe way we interact with apps is changing, so should the way they are designed.
377ae0333d0f4b7b97307c9eea5ee21a.gifWhat Type of Loading and Progress Indicators Implement in the App?
377ae0333d0f4b7b97307c9eea5ee21a.gif»20% for tech debt» doesn«t work
377ae0333d0f4b7b97307c9eea5ee21a.gifThe Senior Engineer Illusion: What I Thought vs. What I Learned
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngOperating Systems Course for Beginners

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

• Дейтинг-приложение Thursday работает только по четвергам
• Приложение ChatGPT поставило рекорд по выручке
• Маркетологи в мобайле: Денис Лазаричев (руководитель проектов performance-маркетинга ВТБ)
• Flighty использует машинное обучение, чтобы предсказывать задержки рейсов
• Самые скачиваемые и зарабатывающие приложения в России в июле 2024
• Trade My Spin строит бизнес на поддержанных тренажерах Peloton
• Кейс Ozon и Bidease: как снизить CAC и CPO более чем на 30%

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

• Да здравствует кастомный автозвук, или Мой DIY Bluetooth-пульт на основе ESP32
• Улучшаем многоквартирный умный дом: лифт сам нажимает кнопку
• Практический кейс реализации AutoML в банке
• KC868-AG Pro: Zigbee координатор (Tasmota и SLS)
• Apple готовит новый Mac Mini на M4
• Лучшие ноутбуки для студентов и школьников 2024
• Google TV Streamer — преемник Chromecast и центр умного дома

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

© Habrahabr.ru