Темы



Мобильная разработка за неделю #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