В новом дайджесте много корутинов, немного темных тем, экономики приложений, спасения тревожных миллениалов, VPS, Swift и Kotlin. Подключайтесь!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

iOS
• В экономике iOS-приложений в США занято 2.2 млн человек
• Школа мобильной разработки 2021: iOS
• Удаление учетных записей в iOS-приложениях станет обязательным с 30 июня
• Apple говорит о покупке EA
•
SwiftUI — простое управление состоянием MVVM
•
6 причин, по которым команда MEGA полностью перешла на SwiftUI
•
Редактирование пакетов Swift в Visual Studio Code
•
100 рецептов SwiftUI
•
Освоение TimelineView в SwiftUI
•
Создаем красивый экран загрузки для вашего iOS-приложения
•
Выводим приложение в оффлайн с Salesforce Mobile SDK
•
Инъекция кода с Dyld Interposing
•
Объяснение замыканий в Swift
•
Как делать автоматические вычисления тригонометрии в Swift
•
SwiftUI в 2022 году
•
Как повысить производительность кода за счет сокращения инициализации типа коллекции
•
16 полезных расширений для SwiftUI
•
Как адаптировать View для каждого устройства
•
Кто еще хочет улучшить качество кодовой базы
•
Как создать Redux-подобный контейнер в Swift с нуля
•
Реализуем шаблон Координатор с помощью Combine
•
Spiral: спирали для SwiftUI
•
Swift Algorithm Club: алгоритмы и структуры данных с объяснениями
Android
• Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
• Онлайн-собеседование, корутины
• Путь Android-приложения к поддержке темной темы: пример Tokopedia
• Школа мобильной разработки 2021: Android
• Бесплатный курс по корутинам
• Google Play временно разрешает сторонние платежи
• Используете ли вы самый мощный инструмент Kotlin?
• В Google Play появились теги доступности
• VK запустила бета-версию магазина приложений RuStore
•
Более чистый способ взаимодействия между Composable и ViewModel в Jetpack Compose
•
Простая инъекция зависимостей с помощью Koin 3.2 и аннотаций Koin
•
Первый взгляд: «песочница конфиденциальности» Google и ее влияние на SDK
•
Кастомный прогресс бар с Jetpack Compose Canvas API
•
5 шагов к Google Fonts в Jetpack Compose
•
Как мы уменьшили наш ANR в три раза
•
Навигация в Compose за 3 минуты
•
Путь Tokopedia к поддержке темного режима
•
Jetpack Compose под капотом: события касания
•
Стратегии управления зависимостями Gradle
•
Lazy Grid макеты в Compose
•
Как создать ярлыки в приложении для Android
•
15 лучших библиотек Android на 2022 год
•
Slack Clone: Jetpack Compose и чистая архитектура
•
Compose Reports to HTML: отчеты компилятора в HTML-страницах
•
ComposePPT: презентации PowerPoint на Compose
Кроссплатформа
• Как заработать 1000 евро и набрать миллионы игроков на браузерной игре
• Как подружить Elementary и BLoC
• Dart 2.17: Продуктивность и интеграция
• VFX Graph и вихри
• 11 вещей, о которых вы должны помнить перед стартом нового проекта на Flutter
• Сборка приложений и игр для MacOS на Flutter 3.0
• 15 лучших инструментов Flutter, которые вы должны знать
•
Кастомные сообщения во Flutter
•
Лучший пакет навигации во Flutter
•
Зачем (и когда) использовать Flutter вместо Unity
•
Основные ошибки, которые допускают разработчики во Flutter
•
Эффект тени во Flutter
Разработка
• 14 Важных UI/UX типсов для твоего дизайна
• Спасаем тревожных миллениалов от необходимости звонить: как в приложении для заказа пиццы появился чат
• Вы против мира глупости: советы разгневанным разработчикам
• 1000 и 1 нюанс. UX-проектирование и тестирование сложного функционала или почему не нужно спешить делать дизайн
• Уроки 5 лет аудита кода стартапов
• Ошибки на технических собеседованиях
• Niantic запускает VPS и социальную сеть
• Go в API для мобильного приложения. Создаем совместный список покупок с мгновенными уведомлениями
• Нелегкий путь к динамическому анализу мобильных приложений
• GraphQL, что ты такое?
• Podlodka #269: интернет-реклама
• Visual Studio 2022 получает поддержку ARM и компьютер Project Volterra
• ARCore Geospatial API улучшает создание мирового AR-контента
•
Стойте! Вы используете пул-реквесты неправильно
•
Почему я избегаю async/await
•
Stack Overflow уничтожает разработчиков
Аналитика, маркетинг и монетизация
• Видео Avito Analytics meetup
• Как качественно измерять трафик в мобильных приложениях
• Мобильная реклама в России и Украине: отчет Appodeal
• Стандартных метрик уже недостаточно: как найти и удержать ядро своей mid-core игры
• Важность локализации рекламных креативов для игр в Китае
• Рекламная стратегия в условиях рецессии
• VK Play провела исследование игровой аудитории в России
AI, Устройства, IoT
• Долго. Дорого… Делать гаджет в России – учиться, терять деньги, жить на работе
• Насколько естественен естественный язык? Представляем датасет RuCoLA
• Как начать работать с библиотекой для машинного обучения Metaflow
• TinyML — машинное обучение на микроконтроллерах
• V Bionic — победитель 2022 Imagine Cup
•
Что я узнал из 50 собеседований ML-инженеров
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

iOS• В экономике iOS-приложений в США занято 2.2 млн человек
• Школа мобильной разработки 2021: iOS
• Удаление учетных записей в iOS-приложениях станет обязательным с 30 июня
• Apple говорит о покупке EA
•
SwiftUI — простое управление состоянием MVVM•
6 причин, по которым команда MEGA полностью перешла на SwiftUI•
Редактирование пакетов Swift в Visual Studio Code•
100 рецептов SwiftUI•
Освоение TimelineView в SwiftUI•
Создаем красивый экран загрузки для вашего iOS-приложения•
Выводим приложение в оффлайн с Salesforce Mobile SDK•
Инъекция кода с Dyld Interposing•
Объяснение замыканий в Swift•
Как делать автоматические вычисления тригонометрии в Swift•
SwiftUI в 2022 году•
Как повысить производительность кода за счет сокращения инициализации типа коллекции•
16 полезных расширений для SwiftUI•
Как адаптировать View для каждого устройства•
Кто еще хочет улучшить качество кодовой базы•
Как создать Redux-подобный контейнер в Swift с нуля•
Реализуем шаблон Координатор с помощью Combine•
Spiral: спирали для SwiftUI•
Swift Algorithm Club: алгоритмы и структуры данных с объяснениями
Android• Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
• Онлайн-собеседование, корутины
• Путь Android-приложения к поддержке темной темы: пример Tokopedia
• Школа мобильной разработки 2021: Android
• Бесплатный курс по корутинам
• Google Play временно разрешает сторонние платежи
• Используете ли вы самый мощный инструмент Kotlin?
• В Google Play появились теги доступности
• VK запустила бета-версию магазина приложений RuStore
•
Более чистый способ взаимодействия между Composable и ViewModel в Jetpack Compose•
Простая инъекция зависимостей с помощью Koin 3.2 и аннотаций Koin•
Первый взгляд: «песочница конфиденциальности» Google и ее влияние на SDK•
Кастомный прогресс бар с Jetpack Compose Canvas API•
5 шагов к Google Fonts в Jetpack Compose•
Как мы уменьшили наш ANR в три раза•
Навигация в Compose за 3 минуты•
Путь Tokopedia к поддержке темного режима•
Jetpack Compose под капотом: события касания•
Стратегии управления зависимостями Gradle•
Lazy Grid макеты в Compose•
Как создать ярлыки в приложении для Android•
15 лучших библиотек Android на 2022 год•
Slack Clone: Jetpack Compose и чистая архитектура•
Compose Reports to HTML: отчеты компилятора в HTML-страницах•
ComposePPT: презентации PowerPoint на Compose
Кроссплатформа• Как заработать 1000 евро и набрать миллионы игроков на браузерной игре
• Как подружить Elementary и BLoC
• Dart 2.17: Продуктивность и интеграция
• VFX Graph и вихри
• 11 вещей, о которых вы должны помнить перед стартом нового проекта на Flutter
• Сборка приложений и игр для MacOS на Flutter 3.0
• 15 лучших инструментов Flutter, которые вы должны знать
•
Кастомные сообщения во Flutter•
Лучший пакет навигации во Flutter•
Зачем (и когда) использовать Flutter вместо Unity•
Основные ошибки, которые допускают разработчики во Flutter•
Эффект тени во Flutter
Разработка• 14 Важных UI/UX типсов для твоего дизайна
• Спасаем тревожных миллениалов от необходимости звонить: как в приложении для заказа пиццы появился чат
• Вы против мира глупости: советы разгневанным разработчикам
• 1000 и 1 нюанс. UX-проектирование и тестирование сложного функционала или почему не нужно спешить делать дизайн
• Уроки 5 лет аудита кода стартапов
• Ошибки на технических собеседованиях
• Niantic запускает VPS и социальную сеть
• Go в API для мобильного приложения. Создаем совместный список покупок с мгновенными уведомлениями
• Нелегкий путь к динамическому анализу мобильных приложений
• GraphQL, что ты такое?
• Podlodka #269: интернет-реклама
• Visual Studio 2022 получает поддержку ARM и компьютер Project Volterra
• ARCore Geospatial API улучшает создание мирового AR-контента
•
Стойте! Вы используете пул-реквесты неправильно•
Почему я избегаю async/await•
Stack Overflow уничтожает разработчиков
Аналитика, маркетинг и монетизация• Видео Avito Analytics meetup
• Как качественно измерять трафик в мобильных приложениях
• Мобильная реклама в России и Украине: отчет Appodeal
• Стандартных метрик уже недостаточно: как найти и удержать ядро своей mid-core игры
• Важность локализации рекламных креативов для игр в Китае
• Рекламная стратегия в условиях рецессии
• VK Play провела исследование игровой аудитории в России
AI, Устройства, IoT• Долго. Дорого… Делать гаджет в России – учиться, терять деньги, жить на работе
• Насколько естественен естественный язык? Представляем датасет RuCoLA
• Как начать работать с библиотекой для машинного обучения Metaflow
• TinyML — машинное обучение на микроконтроллерах
• V Bionic — победитель 2022 Imagine Cup
•
Что я узнал из 50 собеседований ML-инженеров← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.