В этом выпуске работаем с SwiftUI на iOS 14, снова обсуждаем Google I/O 2024 и проводим скриншот-тестирование для превью Compose, оцениваем Flutter 3.22, пишем 2D-игры для кнопочных телефонов нулевых и многое другое. Подключайтесь!

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



iOS

• SwiftUI на iOS 14: преодолевая баги и улучшая перформанс в 3 раза
• MVVM: архитектурный шаблон для структурирования представлений SwiftUI
AVPlayer seek(to:… vs seek(…tolerance
• Apple обновляет Форумы для разработчиков
• Глубокие ссылки для локальных уведомлений в SwiftUI
• Новый App Store Transparency Report 
• TOP 10 горячих клавиш для Xcodу
• Swift Plugins: ускоряем сборку проекта
• Объединяем Combine и Swift Concurrency
•  MVVM: An architectural coding pattern to structure SwiftUI Views
•  Quick guide on Combine essentials in Swift
•  How to modularize Monolith iOS App
•  Comparing CI/CD tools for iOS
•  Unleashing the Power of Web3 and Blockchain in iOS
•  Safely distribute new Machine Learning models to millions of iPhones over-the-air
•  Reducing iOS Test execution time with Selective Testing
•  Reducing the Size of Cash App for iOS
•  SwiftUI TabView Offset Reader — Scrollable Tabs
•  Meet mergeable libraries
•  Fix failures faster with Xcode test reports
•  Dive deeper into SwiftData
•  CocoaHeadsNL Meetup: Adidas Apps Architecture/Managing our large iOS App
•  3 Advanced Tips to Code Like a Pro in Swift (from an ex-Apple engineer ?)
•  Hacker Text Effect — SwiftUI
•  Build your next website in Swift
•  Unidoc — масштабируемый механизм документирования кода Swift
•  Foil — правильная обертка для UserDefaults
•  TimecodeKit — таймкоды SMPTE для Swift

Android

• Генеративный ИИ в Android и эффективность фоновой работы приложения — важное с Google I/O 2024
• Скриншот-тестирование для превью Compose
Пишем plugin для Jetbrains IDE: отображение файлов вне проекта в Project Tool
• Как создать аудиоплеер. Часть 1. Что под капотом
• По обе стороны Android печати
• «Картинка в картинке» приходит на Google TV
• Google запускает новую функцию, чтобы вернуть пользователей к установленным приложениям
• Обсуждаем Google I/O 2024
• Взлом и защита Android-приложений
• Моментальный запуск: как VK Клипы работают с плейбэком видео на Android
•  Kotlin 2.0 Release
•  Kotlin 2.0 — Android project migration guide
•  Why Calling a Composable from a Regular Function Isn’t Possible
•  Design Social Media app like TikTok for Android
•  Essential Android Design Patterns: MVVM, MVP, and More
•  Need of ViewCompositionStrategy in Jetpack Compose
•  What’s new in Kotlin 2.0.0
•  Mastering Jetpack Compose Performance
•  Something Worth Sharing — How to use Composables on Social Media
•  Adaptive Compose Layouts
•  The Complexities of Clean Architecture Use Cases
•  Sustaining best performance with Android adaptability technology
•  Advanced graphics features in mobile games with Vulkan
•  3 things to improve your Android App experience: Edge to Edge, Predictive Back, and Glance
•  Make it faster — Android Developers Backstage
•  How to Use the Google’s New Screenshot Testing Framework for Compose
•  KotlinConf’24 — Keynote
•  Ketch — загрузчик файлов на основе WorkManager
•  ComposeLife — игра «Жизнь» на Jetpack Compose

Кроссплатформа

• Flutter 3.22 — наше мнение
• Победители Global Gamers Challenge
• Яндекс выпустил DivKit. Я – Nui
• Что Flutter 3.22 нам готовит?
• Сравнение архитектурных паттернов GetX и BLoC
• Упрощение тестирования с Approval Tests в Dart
•  Qt 6.7.1 Released
•  On-device Vector Database for Dart/Flutter
•  Essential Libraries for Compose Multiplatform
•  5 extra packages to use with Flutter 3.22 in 2024
•  How to Setup a Room DB for Kotlin Multiplatform Compose

Разработка

• Геймдев, про который мы забыли: как работали 2D-игры на кнопочных телефонах нулевых
• Создание продуктов — это безжалостный гринд
• Утечки памяти в мобильных приложениях: руководство для QA-инженеров
Какие возможности клавиатур подглядеть у Tinder, YouTube и Revolut
• Мое решение 3-х проблем MVx
• Как мы спасаем жизни с помощью геймификации
• Пермишены (permissions) для тестировщика: зачем нужно, что такое и как с этим работать
• Новая жизнь или начало экзистенциального кризиса?
• Как я делаю build больших Android/iOS проектов со 128 GB памяти на старом Mac
• Fortran и COBOL снова вошли в Индекс TIOBE
• Как собеседовать мобильных инженеров? Системный дизайн спешит на помощь!
• Проводим и проходим Mobile System Design-интервью
• Стоит ли сегодня идти в айти?
• Как сделать приложение на базе ChatGPT
•  Writing commit messages
•  How Amazon built a high-performant, durable, & consistent in-memory database
•  Test-Driven Development (TDD) is Not the Solution
•  Hidden vs. Disabled In UX
•  Things You Should Never Do As A Software Engineer
•  How I failed at Test-Driven Development and what it took to get it right

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

• Максимальную стоимость покупки в Google Play подняли до $1000
• Praktika использует ИИ-аватаров для более естественного изучения языков
• Multicast Games: как удержаться на высоте в геймдеве (и как на это влияет мобильная аналитика)
• Raya, приложение знакомств для знаменитостей, зарабатывает $100 млн
• Эмуляторы ненадолго захватили App Store и быстро сошли на нет
• Web-To-Web User Acquisition Guide 2024

AI, Устройства, IoT

Большие языковые модели гораздо линейнее, чем мы думали
• Как устроен рекомендательный сервис, который выдерживает 700 тысяч запросов в секунду. Доклад Яндекса
• Резервный мониторинг послушного дома
• Daylight DC1 — попытка создать спокойный компьютер
• Copilot получает Extensions

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