Мобильная разработка за неделю #552 (19 — 25 августа)
В этом выпуске отслеживаем утечки памяти в iOS и выносим ViewModel из Compose функций, тестируем производительность Flutter и React Native, определяем кто тратит больше всего денег в приложениях и многое другое. Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime
• Concurrency шаг за шагом — сетевой запрос
• Performance Testing для iOS
• 5 рандомных вопросов на собеседовании iOS разработчика
• Антимат в чате на iOS: как я мешаю пользователям сквернословить
• От Cocoapods к Tuist+SPM быстрыми шагами
• Apple все еще стоит на пути магазина приложений Epic
• На iPhone в ЕС можно будет менять телефон и приложения для обмена сообщениями по умолчанию
• Springboard в iOS падает при вводе четырех символов
• Руководитель App Store покидает свой пост, Apple готовится к организационным изменениям
• An Initial Hands-On with SwiftCloud
• Disabling Xcode Asset Symbol Generation
• Exploring SwiftUI: Creating a Playful Onboarding Screen
• Understanding the @FetchRequest property wrapper in SwiftUI
• How to create custom reusable container views in SwiftUI
• Creating a Swipeable View that is Backward Compatible with iOS 16
• The Hidden Treasures of Crash Reports
• Exploring Interactive and Useful Features in Swift 6
• SwiftUI+MapKit: Maps, Styles, Overlays and Controls
• Typed throws in Swift
• SwiftUI App Theme Switcher — iOS 17 & 18
• SwiftUI Task Modifier Lifecycle Handling
• MeshGradients in iOS 18 and Xcode 15
• Floating Tab Bar — iOS 17 & 18
• Swift MMIO — типобезопасный MMIO
• STTextView — мощный TextView
Android
• Выносите ViewModel из Compose функций
• Мечтают ли Андроиды о нейропроцессорных модулях? Перенос модели TensorFlow Lite в мобильное приложение
• Фантастические баги: как их ловить и править
• Избегайте неиспользуемых сценариев в многоуровневой архитектуре
• Google закрывает Google Play Security Reward Program
• Building BookMatch: A Journey into AI-Powered Book Recommendations
• Replace Useless Cases with Interfaces
• Nothing is really cool in Kotlin
• Forbidden Love of Preference and DataStore
• Understanding Side -effects in Jetpack Compose
• Quickly Toggle Between Artifactory and Local Android Libraries
• Boost Developer Efficiency: Automate Android Login Workflows with ADB and Python
• Designing Effective UIs For Enhancing Compose Previews
• Guide to Identify and Solve ANR Issues: Uncover the Hidden Culprits
• Kotlin reified Explained (no more type erasure)
• Teaching a Composable to jump
• Learn Kotlin and Android With Dove Letter
• Kotlin 2.0.20 Released
• Jetpack Compose: Top 10 mistake we all have made
• Fragments in Compose
• How to Show Snackbars From ANY Place In Your Compose App
• How to Render PDFs on Android in Jetpack Compose •
• Going fast with Kotlin
• From Code to Streams
• a href=«www.youtube.com/watch? v=vRzE6HIz-_M»>Dynamic Exploration of Static Analysis with Compose
• Applying the Decorator Pattern in Kotlin
• Reorderable — перетаскивание элементов в Lists и Grids в Jetpack Compose
• OTP Helper — автоматическое получение кодов из уведомлений
Кроссплатформа
• Flutter против React Native — тест производительности
• Руководство по deep links в Flutter-приложениях
• Валидация форм во Flutter как PRO. Мастер-класс по использованию form_model и BLoC
• Тестирование BLoC
• Почему вам стоит учить/использовать Kotlin Multiplatform
• Flutter: Module-based Code Coverage Thresholds
• Flutter: Google Maps Autocomplete SearchBar with Debouncing
• Flutter clean code and best practices
• Comprehensive Guide to Testing Riverpod Providers
• The rollercoaster of releasing an Android, iOS, and macOS app with KMP
• Using C & native platforms in Kotlin: Building a multi-platform advanced library
• Mastering Concurrency: End to End Stress Testing with Kotlin Multiplatform
• React Native MacOS App Tutorial — Book Management System
• BookMatch — BB рекомендации книг на KMP
Разработка
• Как я сделал успешный побочный проект и возненавидел его
• «По вертикали и по горизонтали»: как перенести бумажные сканворды в онлайн, чтобы решать с друзьями на удаленке
• Гайд: создаем функционального Telegram-бота на Dart
• 11 исследований, кризис и вызовы: всё о технической трансформации «Райффайзен Онлайн»
• VK Education открывает набор на бесплатные образовательные IT-курсы
• Задачи с собеседований: Leetcode — Является ли число палиндромом
• Как делать что угодно очень быстро
• Задача на логику из собеседования в Amazon
• Ozon Tech Community TeamLead Meetup
• Как успевать больше, оставаясь эффективным, и не выгореть
• Project Management Flow for Indies
• cAlgorithms we develop software by
• Exploring Indie Life: Reducing Friction by Analytics
• Server Driven UI: 6 reasons to not use it
• How DoorDash Defines Great Engineering Management
Аналитика, маркетинг и монетизация
• Топ быстрорастущих приложений в России в августе
• Кто тратит больше всего денег в приложениях
• Почему CapCut может отказаться от бесплатных пользователей?
• Как удерживать пользователей в мобильных играх
AI, Устройства, IoT
• Как Яндекс создал технологию эмоционального синтеза в Алисе
• Как с помощью ML делать профессиональные подборки лучше редакторов
• How to get from high school math to cutting-edge ML/AI
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.