В новой еженедельной подборке готовность 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, где подборки статей и новостей выходят каждый день.


• SwiftUI все еще не готов к продакшену
• Правильно подключаем тяжелые зависимости к Xcode проекту через Swift Package Manager
• Асинхронный код синхронно: как устроено юнит-тестирование в СберМаркете
• Бесплатные книги по Swift от Flight School
• 6 советов, как улучшить программирование в Swift
• Золотые правила “weak self”
• Регулировка contentOffset с помощью UICollectionViewLayout
• Pull to refresh в SwiftUI
• Координация навигации по вью в SwiftUI с помощью паттерна Flow Coordinator
• В Apple показали гарнитуру смешанной реальности
• Apple представила новые функции доступности
• Apple разрешает автоматически увеличивать цены на подписку
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Знакомьтесь: библиотека TiRecycler
• Как и зачем собирать Android приложение в docker контейнере
• Как работает UI в Android. Не все так сложно
• Запросы в сеть с Clean Architecture и MVVM. Boilerplate ч. 2
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• 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
•

•

•

•

•

•

•

•

•


• Как выжить при быстром росте аудитории, когда игра за день становится хитом
• Модель игрового цикла: как устроены хорошие игры
• Мой вопрос с кодинг интервью в 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-ом подписок
•

•

•

•

•

•


• Самые популярные категории приложений 2022
• MyTracker открывает возможность для создания кастомизированных метрик
• AppsFlyer запустил Единый источник истины для iOS
• «Не унывайте, пацаны»: основатели российского приложения для медитации ещё не вышли в прибыль, но уже идут в США
• В России начал работать магазин приложений NashStore — российский аналог Google Play
• Минцифры и VK анонсировали запуск магазина Android-приложений RuStore
• Мобильный маркетинг в 2022: спасибо, что живой

• Мой опыт с резиновым мужиком. Github Copilot
• Kincony KC868-A16: контроллер 16-го уровня
• Находим главное в отзывах. Опыт разработчиков геопоиска Яндекса
• Практические применения генеративных моделей: как мы делали суммаризатор текстов
• 55+ перспективных технологий IoT, которые вы должны иметь на своем радаре (обновление 2022 года)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.