В нашем новом выпуске рассказываем про то, как потратить миллион на создание собственного переводчика, про виртуальные митапы для Android-разработчиков, про влияние эпидемии на рынок приложений, про рекордные траты пользователей и многое другое!
![](https://habrastorage.org/r/w1560/webt/hl/bg/pt/hlbgptecbmsnk_p6dtjzrsydpzs.png)
Когда у меня в очередной раз закончились деньги, наступил кризис. Я не смог найти работу, ситуация стала критической. Пришло время посмотреть на все вещи трезвым взглядом. Нужно было честно признаться себе, что я не знаю, какие ниши выбрать для бизнеса. Создавать проекты, которые просто нравятся, — путь в никуда. Предлагаем вашему вниманию цикл статей, посвященных оптимизации рендера под мобильные устройства: телефоны и планшеты на базе iOS и Android. Цикл будет состоять из трех частей. В первой части мы рассмотрим особенности популярной на Mobile тайловой архитектуры GPU.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
• (+4) MVVM на основе Combine в UIKit и SwiftUI приложениях
• (+4) Проблемы инструментария в больших проектах
• (+3) Добавляем темную тему в iOS
• Apple представила новый iPad Pro с лидаром
• В App Store запретили и игры про коронавирус
• Конференция Apple WWDC 2020 пройдёт в онлайн-формате
•
5 расширений Swift, которые сделают вашу жизнь проще
•
Как изменить иконку вашего приложения в SwiftUI
•
Что такое фреймворк vDSP в Swift?
•
Быстрое руководство по лучшей типографике для iOS
•
Как реализовать UITableView и UICollectionView с RxDataSources
•
Дебаг Apple L8 — основы реверс-инжинеринга
•
Swift-ери это сам — список задач с CloudKit
•
Генерация видео-субтитров на iOS-устройстве с помощью SwiftUI и ML Kit
•
CoronaTracker: трекер коронавируса
•
Simple iOS Login: экраны входа
Android
• (+10) Раскладываем на части FragmentLifecycleCallbacks
• (+6) Осваиваем разработку через тестирование в Android с помощью UI-тестов
• (+4) 30+ лаконичных профессиональных рекомендаций для Android разработчика
• (+3) Передаем Android логи через интернет с Timber и Node.JS
• (+3) Работaем с View асинхронно с использованием корутин
• Открываются Android Dev Virtual Meetup
• Аудитория Android Go превысила 100 млн. человек
• Google запрещает установку сторонних приложений (для пользователей Advanced Protection Program)
• Время рассмотрения приложений в Google Play увеличено до недели
• Обзор Material Design Components
• 51 ресурс для начинающих и профессиональных Android-разработчиков
• Конференция I/O 2020 полностью отменена
•
Обновление запросов без изменения адаптера RecyclerView с использованием FirebaseUI
•
8 веских причин для модульности в Android
•
Интерфейс чата для Android с использованием RecyclerView и Groupie
•
Исследуем Server-Driven UI
•
Внедрение систем движения с материальными компонентами для Android
•
Как уменьшить размер вашего Android-приложения с помощью R8
•
Создание компонентной архитектуры в Android Jetpack Compose
•
Нативные зависимости в Android Studio 4.0
•
Диалоги для Android на Kotlin: туториал
•
Motion Toast: уведомления для Android на Kotlin
•
Material Components Android Examples: работаем с Material Components
Разработка
• (+27) Машинное обучение в Unity: учим МО-агентов перепрыгивать через стены
• (+26) Погружение в Charles Proxy
• (+19) «Разрабатывая что-то заранее и полностью спроектированное, ты делаешь мертворожденную штуку» — разговор с The Breakfast
• (+17) Чем больше, тем хуже или почему важен игровой цикл
• (+11) Интервью с Вячеславом Уточкиным, директором образовательных программ по геймдеву ВШБИ НИУ ВШЭ: 20 вопросов о геймдеве
• (+10) Война с тормозами. Оптимизация количества рендеров компонентов в React Native
• (+6) Увлекательные сайд-проекты, которыми можно заняться уже сегодня
• (+2) Размытие фонового изображения в Unity
• (0) Геотрекинг в React Native
• Podlodka #155: Бьёрн Страуструп
• Android Broadcast #9: Как сделать крутую конференцию
• Вышел Magicverse SDK от Magic Leap
• Приложение GitHub вышло из беты
• Предустановку приложений ускоряют
• Темная тема или светлая: что лучше для пользователей?
• Snap запустил веб-редактор масок Lens Web Builder
• Ощущения дефицита в UX: как можно манипулировать пользователями
•
Как GitHub заблокировал меня (и все мои библиотеки)
•
ArangoDB: идеальная база данных для проектов с высоким уровнем неопределенности
•
Flutter vs Native vs React-Native: проверка производительности
•
Список из 100 классных и интересных публичных API для вашего следующего проекта
•
Использование ИИ для UX-дизайна мобильных приложений
•
Создание кросс-платформенного приложения с вкладками на Flutter
•
Естественное отображение на практике: новый регулятор громкости в iOS 13
•
Как «Принц Персии» победил ограничения памяти Apple II
•
Как сделать универсальное приложение
•
Я разработал, построил и запустил MVP-продукт за 5 дней
•
Как писать хорошую документацию к коду
Аналитика, маркетинг и монетизация
• (+27) Как связать вовлечение с монетизацией в мобильных играх и приложениях
• (+9) Правила локализации для разработчиков
• (+8) Локализация инди-игр: стоит ли игра свеч?
• (+6) Источник правды: как аналитик учит менеджера и разработчика работать вместе
• Кейс от inDriver: как создать идеальное райд-шеринговое приложение для 31 страны с разными языками и культурой?
• Tapjoy запустил Multi-Reward Engagements
• В 2019 средний пользователь iPhone в США потратил на приложения $100
• Proxy: бесконтактные двери
• Влияние коронавируса на экономику приложений — исследование App Annie
• Приложение Kitche, помогающее уменьшить пищевые отходы, получило инвестиции
• Расходы на приобретение пользователей для игр в 2022 году достигнут $48.5 млрд
• В Иране запустили приложение для диагностики коронавируса, но оно только следит за пользователями
•
MVP против прототипа против PoC: каков наилучший подход для измерения Product/Market Fit?
AI, Устройства, IoT
• (+33) Как мы используем item2vec для рекомендаций похожих товаров
• (+24) Как мы создавали галерею нейросетевого искусства и почему не даём копировать картины
• (+12) На вкус и цвет: градации подходов к Умному дому
• (+5) Работаем с датчиком CO? Xiaomi ClearGrass Air Detector локально, без китайских серверов
• Google представил Pigweed — инструменты разработки для встроенных систем
• Переводчик Google научили переводить речь в реальном времени
• Google начал сертифицировать разработчиков TensorFlow
•
Самые полезные инструменты машинного обучения 2020
•
Обнаружение коронавируса на рентгеновских изображениях с Keras, TensorFlow и глубоким обучением
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/hl/bg/pt/hlbgptecbmsnk_p6dtjzrsydpzs.png)
Когда у меня в очередной раз закончились деньги, наступил кризис. Я не смог найти работу, ситуация стала критической. Пришло время посмотреть на все вещи трезвым взглядом. Нужно было честно признаться себе, что я не знаю, какие ниши выбрать для бизнеса. Создавать проекты, которые просто нравятся, — путь в никуда. Предлагаем вашему вниманию цикл статей, посвященных оптимизации рендера под мобильные устройства: телефоны и планшеты на базе iOS и Android. Цикл будет состоять из трех частей. В первой части мы рассмотрим особенности популярной на Mobile тайловой архитектуры GPU.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](https://habrastorage.org/webt/5e/k7/bf/5ek7bfhjzilma-pbharuioaa7lw.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• (+4) MVVM на основе Combine в UIKit и SwiftUI приложениях
• (+4) Проблемы инструментария в больших проектах
• (+3) Добавляем темную тему в iOS
• Apple представила новый iPad Pro с лидаром
• В App Store запретили и игры про коронавирус
• Конференция Apple WWDC 2020 пройдёт в онлайн-формате
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• (+10) Раскладываем на части FragmentLifecycleCallbacks
• (+6) Осваиваем разработку через тестирование в Android с помощью UI-тестов
• (+4) 30+ лаконичных профессиональных рекомендаций для Android разработчика
• (+3) Передаем Android логи через интернет с Timber и Node.JS
• (+3) Работaем с View асинхронно с использованием корутин
• Открываются Android Dev Virtual Meetup
• Аудитория Android Go превысила 100 млн. человек
• Google запрещает установку сторонних приложений (для пользователей Advanced Protection Program)
• Время рассмотрения приложений в Google Play увеличено до недели
• Обзор Material Design Components
• 51 ресурс для начинающих и профессиональных Android-разработчиков
• Конференция I/O 2020 полностью отменена
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• (+27) Машинное обучение в Unity: учим МО-агентов перепрыгивать через стены
• (+26) Погружение в Charles Proxy
• (+19) «Разрабатывая что-то заранее и полностью спроектированное, ты делаешь мертворожденную штуку» — разговор с The Breakfast
• (+17) Чем больше, тем хуже или почему важен игровой цикл
• (+11) Интервью с Вячеславом Уточкиным, директором образовательных программ по геймдеву ВШБИ НИУ ВШЭ: 20 вопросов о геймдеве
• (+10) Война с тормозами. Оптимизация количества рендеров компонентов в React Native
• (+6) Увлекательные сайд-проекты, которыми можно заняться уже сегодня
• (+2) Размытие фонового изображения в Unity
• (0) Геотрекинг в React Native
• Podlodka #155: Бьёрн Страуструп
• Android Broadcast #9: Как сделать крутую конференцию
• Вышел Magicverse SDK от Magic Leap
• Приложение GitHub вышло из беты
• Предустановку приложений ускоряют
• Темная тема или светлая: что лучше для пользователей?
• Snap запустил веб-редактор масок Lens Web Builder
• Ощущения дефицита в UX: как можно манипулировать пользователями
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• (+27) Как связать вовлечение с монетизацией в мобильных играх и приложениях
• (+9) Правила локализации для разработчиков
• (+8) Локализация инди-игр: стоит ли игра свеч?
• (+6) Источник правды: как аналитик учит менеджера и разработчика работать вместе
• Кейс от inDriver: как создать идеальное райд-шеринговое приложение для 31 страны с разными языками и культурой?
• Tapjoy запустил Multi-Reward Engagements
• В 2019 средний пользователь iPhone в США потратил на приложения $100
• Proxy: бесконтактные двери
• Влияние коронавируса на экономику приложений — исследование App Annie
• Приложение Kitche, помогающее уменьшить пищевые отходы, получило инвестиции
• Расходы на приобретение пользователей для игр в 2022 году достигнут $48.5 млрд
• В Иране запустили приложение для диагностики коронавируса, но оно только следит за пользователями
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• (+33) Как мы используем item2vec для рекомендаций похожих товаров
• (+24) Как мы создавали галерею нейросетевого искусства и почему не даём копировать картины
• (+12) На вкус и цвет: градации подходов к Умному дому
• (+5) Работаем с датчиком CO? Xiaomi ClearGrass Air Detector локально, без китайских серверов
• Google представил Pigweed — инструменты разработки для встроенных систем
• Переводчик Google научили переводить речь в реальном времени
• Google начал сертифицировать разработчиков TensorFlow
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.