В этом выпуске работаем с 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
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш 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
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.