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

iOS
• Как автоматически обнаруживать утечки памяти в CI/CD с помощью UI-тестов
• Как iOS-команда Medium эффективно работает с legacy кодом
• Переводим текст в SwiftUI-приложении с помощью фреймворка Translation
• Как улучшить время сборки в iOS с помощью модуляризации
• Режимы наложения/смешивания в SwiftUI
• Apple объявила о новой структуре сборов для приложений в ЕС
• Дизайн-система в SwiftUI
• Как пиратские приложения обходят проверку App Store
• Итоги одного года мобильной разработки с использованием NLP
• Combine с нуля — реактивщина это просто
•
Non-Sendable types are cool too you know
•
Async await in Swift: The Full Toolkit
•
How to add animation to MeshGradient in SwiftUI
•
Olympic Logo in SwiftUI
•
iOS App Launch Optimization: How Cityflo Achieved 2.22x Faster Load Times
•
Useful packages to improve your SwiftUI development workflow
•
Implementing Seamless App Version Management in iOS with CloudKit
•
Exploring SwiftUI: Creating a BottomSheet
•
Nested Grid Layout Anomaly: Analysis Approach and Resolution Strategies for SwiftUI Layout Issues
•
How to automatically manage, monitor & rollout new machine learning models across your iOS app user base
•
Exploring HealthKit: Working with State of Mind APIs
•
iOS App Reverse Engineering
•
Have Fun with Apple’s Virtualization.Framework
•
Building Compositional Grid Layout With iOS 18 APIs
•
The Best iOS Dev Portfolio Strategy
•
How to Reduce Log Verbosity in the Xcode Debug Console
•
Getting the MOST out of Xcode 16
•
Building App Intro Animations with Shape Morphing Effect Using SwiftUI
•
Disk — хранение структур, изображений и данных
•
iOS Clean Architecture — чистая архитектура, MVVM и Combine
Android
• FPC/Lazarus и Android
• Что стоит знать о Jetpack Compose: руководство для начинающих
• Реализация Server-Driven UI в Android
• Пишем своё приложение для установки PIN на другие приложения
• Кастомная тема Jetpack Compose
• Google запускает базу знаний о безопасности Android-приложений
• В Android 15 режим edge-to-edge обязателен, но Google добавил возможность отказаться от него
• Google Play сможет обновлять сторонние приложения
•
Hassle-free Snackbar in Jetpack Compose
•
Making security easy: How we are helping you fix vulnerabilities in your Android apps
•
Jetpack Compose Previews: Delving Deep Into Their Inner Workings
•
Clean Data Sources in Android
•
Full-Text Search in Android: Integrating FTS4 with Room
•
My notes on Android optimization. Part 1. Measuring startup time
•
Android Device Streaming: Announcing Early Access to Samsung, Xiaomi, and Oppo Device Labs
•
Precise Intent Resolution — Android 15
•
The best way to load data in ViewModels
•
Building an effective abstraction layer for UI resources on Android
•
How Suspend Functions Work in Kotlin: Under the Hood in Android
•
MutableState or MutableStateFlow: A Perspective on what to use in Jetpack Compose
•
Decompile and Recompile APK using APKTOOL: Beginners Guide
•
Targeting Android 15 — Why Your App Is NOT Ready
•
Channels in Kotlin Coroutines|
•
Guide to Improving Compose Performance
•
Background Work in Android: Strategies and Best Practices
•
Applying the Strategy Pattern in Kotlin
•
Zoomable — увеличение жестами в Jetpack Compose
•
WhatsApp Clone Compose — копия WhatsApp на Compose и Stream SDK
•
Compose Game Engine — 2D игровой движок
Кроссплатформа
• PWA вместо приложения: плюсы, минусы, подводные камни
• Flutter 3.24: что нового
• Архитектура Flutter проекта простым языком. Clean Arch (MVVM, DI, Bloc, Inversion of Control)
• Полный гайд по тестированию на Flutter. Часть 6: Тестовые двойники: Faking vs Mocking
•
Understanding Composited Layers to improve the performance of Flutter apps
•
Convert Your Native Project to Kotlin Multiplatform
•
How BigPay Increased Flutter Developer Velocity
•
Getting started with Flutter GPU
•
Custom Render Boxes and Painting in Flutter
•
How to Develop a Super App with React Native?
•
Deep dive into writing macros in Dart 3.5
•
Lifecycle path to Multiplatform
•
Kotlin Multiplatform in Google Wo|rkspace
•
KMP in Action A Production Case Study
Разработка
• ОС «Аврора» — веб-сервер в кармане
• Жутко, но факт: как Uber тестирует платежи в продакшене
• «Арендовал телефон — стал фермером»: знакомство с Mobile Farm
• Тулкиты кодогенерации Android vs iOS
• Ускоряем карьерный рост в FAANG
• Алгоритмы — самый провальный этап собеседований •
• VK проведет конференцию по мобильной разработке — VK JT Mobile
•
How to perform geoqueries on Firestore (somewhat) efficiently
•
The way we interact with apps is changing, so should the way they are designed.
•
What Type of Loading and Progress Indicators Implement in the App?
•
«20% for tech debt» doesn’t work
•
The Senior Engineer Illusion: What I Thought vs. What I Learned
•
Operating Systems Course for Beginners
Аналитика, маркетинг и монетизация
• Дейтинг-приложение Thursday работает только по четвергам
• Приложение ChatGPT поставило рекорд по выручке
• Маркетологи в мобайле: Денис Лазаричев (руководитель проектов performance-маркетинга ВТБ)
• Flighty использует машинное обучение, чтобы предсказывать задержки рейсов
• Самые скачиваемые и зарабатывающие приложения в России в июле 2024
• Trade My Spin строит бизнес на поддержанных тренажерах Peloton
• Кейс Ozon и Bidease: как снизить CAC и CPO более чем на 30%
AI, Устройства, IoT
• Да здравствует кастомный автозвук, или Мой DIY Bluetooth-пульт на основе ESP32
• Улучшаем многоквартирный умный дом: лифт сам нажимает кнопку
• Практический кейс реализации AutoML в банке
• KC868-AG Pro: Zigbee координатор (Tasmota и SLS)
• Apple готовит новый Mac Mini на M4
• Лучшие ноутбуки для студентов и школьников 2024
• Google TV Streamer — преемник Chromecast и центр умного дома
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.


• Как автоматически обнаруживать утечки памяти в CI/CD с помощью UI-тестов
• Как iOS-команда Medium эффективно работает с legacy кодом
• Переводим текст в SwiftUI-приложении с помощью фреймворка Translation
• Как улучшить время сборки в iOS с помощью модуляризации
• Режимы наложения/смешивания в SwiftUI
• Apple объявила о новой структуре сборов для приложений в ЕС
• Дизайн-система в SwiftUI
• Как пиратские приложения обходят проверку App Store
• Итоги одного года мобильной разработки с использованием NLP
• Combine с нуля — реактивщина это просто
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• FPC/Lazarus и Android
• Что стоит знать о Jetpack Compose: руководство для начинающих
• Реализация Server-Driven UI в Android
• Пишем своё приложение для установки PIN на другие приложения
• Кастомная тема Jetpack Compose
• Google запускает базу знаний о безопасности Android-приложений
• В Android 15 режим edge-to-edge обязателен, но Google добавил возможность отказаться от него
• Google Play сможет обновлять сторонние приложения
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• PWA вместо приложения: плюсы, минусы, подводные камни
• Flutter 3.24: что нового
• Архитектура Flutter проекта простым языком. Clean Arch (MVVM, DI, Bloc, Inversion of Control)
• Полный гайд по тестированию на Flutter. Часть 6: Тестовые двойники: Faking vs Mocking
•

•

•

•

•

•

•

•

•

•


• ОС «Аврора» — веб-сервер в кармане
• Жутко, но факт: как Uber тестирует платежи в продакшене
• «Арендовал телефон — стал фермером»: знакомство с Mobile Farm
• Тулкиты кодогенерации Android vs iOS
• Ускоряем карьерный рост в FAANG
• Алгоритмы — самый провальный этап собеседований •
• VK проведет конференцию по мобильной разработке — VK JT Mobile
•

•

•

•

•

•


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

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