В новой еженедельной подборке готовность SwiftUI и тяжелые зависимости, Android в докере и обсуждение новинок Flutter, выживание при росте аудитории, вопрос с кодинг интервью, интеграция API и многое другое!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

iOS
• SwiftUI все еще не готов к продакшену
• Правильно подключаем тяжелые зависимости к Xcode проекту через Swift Package Manager
• Асинхронный код синхронно: как устроено юнит-тестирование в СберМаркете
• Бесплатные книги по Swift от Flight School
• 6 советов, как улучшить программирование в Swift
• Золотые правила “weak self”
• Регулировка contentOffset с помощью UICollectionViewLayout
• Pull to refresh в SwiftUI
• Координация навигации по вью в SwiftUI с помощью паттерна Flow Coordinator
• В Apple показали гарнитуру смешанной реальности
• Apple представила новые функции доступности
• Apple разрешает автоматически увеличивать цены на подписку
•
Цикл рендеринга SwiftUI
•
SwiftUI все еще не готов к продакшену
•
Значения среды как альтернатива внедрению зависимостей в SwiftUI
•
Предварительная выборка в iOS
•
Расширенные протоколы в Swift
•
SwiftUI для разработчиков UIKit
•
Создание кастомной геометрии со стандартными формами в SceneKit под SwiftUI
•
Разница между singleton и Singleton в Swift
•
Как внедрить шаблон MVVM в разработку приложений для iOS
•
Заполнители типов взгляд на новую функцию Swift 5.6
•
Фингерпринтинг локального устройства в iOS
•
Туториал по Vision Framework для iOS: обнаружение контуров
•
Соединяем iOS AppDelegate, SceneDelegate и ViewController
•
Шаблон Xcode MVVM-C для сокращения времени разработки
•
7 шорткатов Xcode для больших проектов
•
Apple GPU и невозможная ошибка
•
Colorue: рисование на iOS
•
Sankey: диаграммы Санки для iOS
•
Runestone: текстовый редактор для iOS
Android
• Знакомьтесь: библиотека TiRecycler
• Как и зачем собирать Android приложение в docker контейнере
• Как работает UI в Android. Не все так сложно
• Запросы в сеть с Clean Architecture и MVVM. Boilerplate ч. 2
•
Каталоги версий Gradle для отличного управления зависимостями
•
Новый способ совершать сетевые звонки на Android
•
Вопросы для собеседования среднего уровня по Android
•
Ищем ofnsrb в UI с помощью CPU профайлера в Android Studio
•
Повышение качества кода Kotlin для кодовой базы Faire
•
Fastlane: автоматизируйте развертывание и выпуск бета-версий приложений для Android
•
Jetpack Compose для поздних последователей
•
Кастомные анимации Canvas в Jetpack Compose
•
Оставьте Retrofit, переходите на Ktor в Android
•
Делаем Android-приложение библиотечным модулем
•
Девять кругов ада в миграции проекта Kotlin Multiplatform на koin-annotations
•
Используете ли вы самый мощный инструмент Kotlin?
•
API сканирования штрихкодов Google — сканирование кодов без разрешения камеры
•
MiStoryView: истории для Android-приложения
•
Floating Action Button Speed Dial: плавающая кнопка с действиями
Кроссплатформа
• Flutter 3: что нового
• Начинаем работу с Flutter Casual Games Toolkit
• Как на Flutter-проекте реализовать разделение Google-сервисов и Huawei-сервисов
• Нестандартное оформление кнопок, текстовых полей и других элементов управления Flutter
• Тестирование Flutter-приложений: гайд по разработке тестов на Flutter
• Выразительные Unit тесты в Dart/Flutter
• Flutter каналы платформы
• Kotlin Multiplatform Mobile — совместное управление состоянием пользовательского интерфейса
• Kotlin 1.5.30 и KMM/KMP
•
Пинболл с I/O на базе Flutter и Firebase
•
7 удивительных инструментов разработки приложений на Flutter
•
Адаптивные макеты во Flutter
•
Повышает ли Flutter производительность разработчиков?
•
Анонс набора инструментов для казуальных игр Flutter
•
Воркшопы DartPad от GDE по Flutter
•
Оптимизируем React Native
•
Ускоряем Kotlin Multiplatform
•
Автоматический перевод приложения Flutter
Разработка
• Как выжить при быстром росте аудитории, когда игра за день становится хитом
• Модель игрового цикла: как устроены хорошие игры
• Мой вопрос с кодинг интервью в Google
• Эволюция инди-игры: от Google Play до собственного магазина
• Туда, не зная куда: каким мы увидели Qase
• История телепортации в андроиде
• Многие софтверные компании — посмешище
• 7 причин, по которым я объясняю ответы во время технического интервью
• Найти всё, что скрыто. Поиск чувствительной информации в мобильных приложениях
• Инструменты разработки и LiveOps: Как стабильно управлять тоннами контента игры
• Дизайн приложений: примеры для вдохновения #76
• Подборка новых, необычных и стильных мобильных iOS приложений
• Видео Ozon Tech Mobile Meetup
• Podlodka #268: формальные методы и верификация программ
• Jellyfish запускает отраслевые бенчмарки для команд разработки
• VK открывает набор на оплачиваемую стажировку для начинающих разработчиков игр
• Facebook замораживает найм в продуктовые команды
• VPS и ARCore Geospatial API
• $20 млн: Pipedream — простая интеграция API
• $42 млн в Серии B: Komodor — платформа устранения сбоев в Kubernetes
• Что не так с UX-ом подписок
•
Кейс UX/UI — Drill IT
•
Модульные тесты замедляют меня
•
Как я выторговал офер в 300 000 от Google
•
Прекратите создавать UI компоненты с нуля
•
Системный дизайн и рекомендательные алгоритмы 20 крупных компаний
•
26 главных вопросов по программированию, которые помогут пройти собеседование в Microsoft
Аналитика, маркетинг и монетизация
• Самые популярные категории приложений 2022
• MyTracker открывает возможность для создания кастомизированных метрик
• AppsFlyer запустил Единый источник истины для iOS
• «Не унывайте, пацаны»: основатели российского приложения для медитации ещё не вышли в прибыль, но уже идут в США
• В России начал работать магазин приложений NashStore — российский аналог Google Play
• Минцифры и VK анонсировали запуск магазина Android-приложений RuStore
• Мобильный маркетинг в 2022: спасибо, что живой
AI, Устройства, IoT
• Мой опыт с резиновым мужиком. Github Copilot
• Kincony KC868-A16: контроллер 16-го уровня
• Находим главное в отзывах. Опыт разработчиков геопоиска Яндекса
• Практические применения генеративных моделей: как мы делали суммаризатор текстов
• 55+ перспективных технологий IoT, которые вы должны иметь на своем радаре (обновление 2022 года)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

iOS• SwiftUI все еще не готов к продакшену
• Правильно подключаем тяжелые зависимости к Xcode проекту через Swift Package Manager
• Асинхронный код синхронно: как устроено юнит-тестирование в СберМаркете
• Бесплатные книги по Swift от Flight School
• 6 советов, как улучшить программирование в Swift
• Золотые правила “weak self”
• Регулировка contentOffset с помощью UICollectionViewLayout
• Pull to refresh в SwiftUI
• Координация навигации по вью в SwiftUI с помощью паттерна Flow Coordinator
• В Apple показали гарнитуру смешанной реальности
• Apple представила новые функции доступности
• Apple разрешает автоматически увеличивать цены на подписку
•
Цикл рендеринга SwiftUI•
SwiftUI все еще не готов к продакшену•
Значения среды как альтернатива внедрению зависимостей в SwiftUI•
Предварительная выборка в iOS•
Расширенные протоколы в Swift•
SwiftUI для разработчиков UIKit•
Создание кастомной геометрии со стандартными формами в SceneKit под SwiftUI•
Разница между singleton и Singleton в Swift•
Как внедрить шаблон MVVM в разработку приложений для iOS•
Заполнители типов взгляд на новую функцию Swift 5.6•
Фингерпринтинг локального устройства в iOS•
Туториал по Vision Framework для iOS: обнаружение контуров•
Соединяем iOS AppDelegate, SceneDelegate и ViewController•
Шаблон Xcode MVVM-C для сокращения времени разработки•
7 шорткатов Xcode для больших проектов•
Apple GPU и невозможная ошибка•
Colorue: рисование на iOS•
Sankey: диаграммы Санки для iOS•
Runestone: текстовый редактор для iOS
Android• Знакомьтесь: библиотека TiRecycler
• Как и зачем собирать Android приложение в docker контейнере
• Как работает UI в Android. Не все так сложно
• Запросы в сеть с Clean Architecture и MVVM. Boilerplate ч. 2
•
Каталоги версий Gradle для отличного управления зависимостями•
Новый способ совершать сетевые звонки на Android•
Вопросы для собеседования среднего уровня по Android•
Ищем ofnsrb в UI с помощью CPU профайлера в Android Studio•
Повышение качества кода Kotlin для кодовой базы Faire•
Fastlane: автоматизируйте развертывание и выпуск бета-версий приложений для Android•
Jetpack Compose для поздних последователей•
Кастомные анимации Canvas в Jetpack Compose•
Оставьте Retrofit, переходите на Ktor в Android•
Делаем Android-приложение библиотечным модулем•
Девять кругов ада в миграции проекта Kotlin Multiplatform на koin-annotations•
Используете ли вы самый мощный инструмент Kotlin?•
API сканирования штрихкодов Google — сканирование кодов без разрешения камеры•
MiStoryView: истории для Android-приложения•
Floating Action Button Speed Dial: плавающая кнопка с действиями
Кроссплатформа• Flutter 3: что нового
• Начинаем работу с Flutter Casual Games Toolkit
• Как на Flutter-проекте реализовать разделение Google-сервисов и Huawei-сервисов
• Нестандартное оформление кнопок, текстовых полей и других элементов управления Flutter
• Тестирование Flutter-приложений: гайд по разработке тестов на Flutter
• Выразительные Unit тесты в Dart/Flutter
• Flutter каналы платформы
• Kotlin Multiplatform Mobile — совместное управление состоянием пользовательского интерфейса
• Kotlin 1.5.30 и KMM/KMP
•
Пинболл с I/O на базе Flutter и Firebase•
7 удивительных инструментов разработки приложений на Flutter•
Адаптивные макеты во Flutter•
Повышает ли Flutter производительность разработчиков?•
Анонс набора инструментов для казуальных игр Flutter•
Воркшопы DartPad от GDE по Flutter•
Оптимизируем React Native•
Ускоряем Kotlin Multiplatform•
Автоматический перевод приложения Flutter
Разработка• Как выжить при быстром росте аудитории, когда игра за день становится хитом
• Модель игрового цикла: как устроены хорошие игры
• Мой вопрос с кодинг интервью в Google
• Эволюция инди-игры: от Google Play до собственного магазина
• Туда, не зная куда: каким мы увидели Qase
• История телепортации в андроиде
• Многие софтверные компании — посмешище
• 7 причин, по которым я объясняю ответы во время технического интервью
• Найти всё, что скрыто. Поиск чувствительной информации в мобильных приложениях
• Инструменты разработки и LiveOps: Как стабильно управлять тоннами контента игры
• Дизайн приложений: примеры для вдохновения #76
• Подборка новых, необычных и стильных мобильных iOS приложений
• Видео Ozon Tech Mobile Meetup
• Podlodka #268: формальные методы и верификация программ
• Jellyfish запускает отраслевые бенчмарки для команд разработки
• VK открывает набор на оплачиваемую стажировку для начинающих разработчиков игр
• Facebook замораживает найм в продуктовые команды
• VPS и ARCore Geospatial API
• $20 млн: Pipedream — простая интеграция API
• $42 млн в Серии B: Komodor — платформа устранения сбоев в Kubernetes
• Что не так с UX-ом подписок
•
Кейс UX/UI — Drill IT•
Модульные тесты замедляют меня•
Как я выторговал офер в 300 000 от Google•
Прекратите создавать UI компоненты с нуля•
Системный дизайн и рекомендательные алгоритмы 20 крупных компаний•
26 главных вопросов по программированию, которые помогут пройти собеседование в Microsoft
Аналитика, маркетинг и монетизация• Самые популярные категории приложений 2022
• MyTracker открывает возможность для создания кастомизированных метрик
• AppsFlyer запустил Единый источник истины для iOS
• «Не унывайте, пацаны»: основатели российского приложения для медитации ещё не вышли в прибыль, но уже идут в США
• В России начал работать магазин приложений NashStore — российский аналог Google Play
• Минцифры и VK анонсировали запуск магазина Android-приложений RuStore
• Мобильный маркетинг в 2022: спасибо, что живой
AI, Устройства, IoT• Мой опыт с резиновым мужиком. Github Copilot
• Kincony KC868-A16: контроллер 16-го уровня
• Находим главное в отзывах. Опыт разработчиков геопоиска Яндекса
• Практические применения генеративных моделей: как мы делали суммаризатор текстов
• 55+ перспективных технологий IoT, которые вы должны иметь на своем радаре (обновление 2022 года)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.