В нашей новой подборке ловим баги на клиентах, пишем автотесты и встраиваем аналитику, изучаем KMM и новинки Flutter, дизайн системы и работу CTO, игровую логику и траты россиян на приложения. Подключайтесь!
![](https://habrastorage.org/webt/7t/dc/jo/7tdcjom1r1tyuszh3e96t-fp3_w.png)
Для сбора клиентских ошибок мы используем собственную разработку под кодовым названием Gelatо. Последние два года я работал над её серверной частью и за это время открыл для себя много нового из мира разработки Error Tracking систем.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
• (+6) Cucumber и BDD. Пишем UI-автотесты на iOS
• (+2) Интеграция библиотеки на Swift в UE4
• iOS Rich пуш-уведомления
•
Контрольный список iOS 14 для разработчиков
•
SwiftUI 2.0 CardView с анимацией Lottie
•
SwiftUI — это Flutter от Apple
•
UI тестирование глубоких и универсальных ссылок в iOS
•
Создаем свой первый виджет для iOS
•
Приложение с Swift Composable Architecture: SwiftUI
•
Центрирование изображения на лице с помощью Apple Vision Framework
•
Основы iOS в Revolut
•
Как работать с векторными ассетами
•
Xcode и возможности LLDB: управление приложениями в реальном времени
•
Распространение приложений: Firebase против Testflight
•
Императивное и декларативное программирование на Swift
•
Создаем круглый индикатор загрузки на Swift 5
•
MVVM: реализация Model-View-ViewModel на Swift
•
LFColoringBook: раскраска для iOS
Android
• (+14) Отрисовка первого кадра Android-приложения
• (+13) За двумя мобильными сервисами: HMS и GMS в одном приложении
• (+12) Встраиваем аналитику от Huawei в Android приложение
• (+11) Таргетирование уведомлений, управление ценами в разных регионах и другие возможности HMS для интернет-платежей
• (+3) Compose. Jetpack Compose
• (0) Автоматический Code Improvement при коммите в Android Studio
• Google Assistant получил углубленную интеграцию с Android-приложениями
• Android Broadcast: Kotlin Multiplatform Mobile
• Android Broadcast: как сделать жизнь разработчика лучше
• Google откладывает ужесточение политик в Индии до 2022 года
• Andriod NDK: Как использовать CMake и ndk-build в одном проекте
•
Тестирование скриншотов Jetpack Compose с помощью Shot
•
Биндеры в Android
•
Готовим приложения к новейших функциям биллинга Google Play
•
Как реализовать встроенные покупки в вашем приложении для Android
•
Запуск Java-программ непосредственно на Android (без создания приложения)
•
Реализации дизайн-системы с помощью Jetpack Compose
•
Понимаем RxJava по-новому
•
Изменение Android-разработки с Jetpack Compose и Coroutines
•
Использование Github Actions для автоматизации процесса релизов
•
Notally: блокнот для Android
•
PropertyFindAR: недвижимость в AR
•
Konfetti: конфетти для Android
Разработка
• (+22) Завтрак с легендарным геймдизайнером Американом МакГи: о новой Алисе, России и депрессии
• (+20) Анонс Flutter 1.22 + Релиз Dart 2.10: на шаг ближе к null-safety
• (+16) Как UI победил UX в Things 3 (iOS)
• (+14) Свободы и ограничения дизайн-систем
• (+11) Flutter + чистая архитектура: разбираем на примере
• (+10) CucumberTalks: избегаем антипаттернов и пишем выразительные сценарии
• (+9) Как сэкономить на разработке мобильного приложения
• (+8) Великолепный Марио: рождение легенды
• (+4) История разработки мобильной игры «Полет на Буране»
• (+4) Улучшение UX мобильного приложения на реальном примере
• (+3) Топ-11 лучших систем управления тестированием 2020
• Podlodka #184: профессия: CTO
• Amazon Timestream упрощает работу с большими базами данных
• Что такое игровая логика и с чем ее едят
• Книги по iOS и Android разработке в Humble Book Bundle
• Дизайн приложений: примеры для вдохновения #18
• Мы отошли от плоского дизайна. В каком направлении мы двигаемся дальше?
• 5 основных анти-трендов современного дизайна
•
Мотивация или почему так сложно завершить личный проект
•
К 2030 году разработчики программного обеспечения могут устареть
•
Как повысить производительность мобильного приложения
•
Старым разработчикам тут не место
•
Как моя IDE влияет на мое программирование
•
19 вещей, которые я позаимствовал у великих разработчиков
•
Почему Kotlin и Swift — братья?
•
Что каждый продакт-менеджер должен знать об A/B-тестировании
•
Ответ на 40 самых популярных вопросов из собеседовании программиста в Facebook
•
Показатели производительности мобильных приложений и их KPI
Аналитика, маркетинг и монетизация
• (+5) Локализация видеоигр для японского рынка: что нужно и что не нужно делать
• make sense: О запуске продукта без команды разработки, маркетинге и монетизации сервиса для ментального здоровья
• Microsoft создала 10 правил для магазина приложений
• App Annie: россияне в 3 квартале 2020 потратили в приложениях $348 млн.
• Бывший инженер Apple создал игру в слова
• Paired: мобильный сервис укрепления отношений
• Самые скачиваемые приложения в сентябре 2020
• Самые зарабатывающие приложения в сентябре 2020
• Исследование myTracker: как различаются платежи пользователей в разных категориях приложений
• Какая мотивация у разных типов игроков?
• Стриминг ретро-игр от Antstream
• НаПоправку.ру — Как мы за 5 месяцев сделали приложение с функционалом сайта, который создавали 5 лет
• Как анализ конкурентов помогает в поисковой оптимизации приложения
• Look-alike по событиям в мобильных трекерах: зачем нужен инструмент и как с ним работать
• Фрод в мобильной индустрии — какие механизмы помогают с ним бороться?
AI, Устройства, IoT
• (+25) Низкоуровневое программирование микроконтроллеров tinyAVR 0-series
• (+22) Как роботизировать техподдержку с помощью машинного обучения
• (+21) Программирование устройств на основе модуля ESP32
• (+18) Куда катится мир нейросетей: интервью с создателем iPavlov
• (+8) Living on the Edge: Intel Atom, Celeron, Pentium для интернета вещей
• (+5) Нейросети: где взять данные для тонкого обучения алгоритмов?
• Приложение Skoda определяет неисправности по звуку
• NVIDIA представила новый Jetson Nano
•
Крошечное машинное обучение: следующая революция в области искусственного интеллекта
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/7t/dc/jo/7tdcjom1r1tyuszh3e96t-fp3_w.png)
Для сбора клиентских ошибок мы используем собственную разработку под кодовым названием Gelatо. Последние два года я работал над её серверной частью и за это время открыл для себя много нового из мира разработки Error Tracking систем.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](https://habrastorage.org/webt/5e/k7/bf/5ek7bfhjzilma-pbharuioaa7lw.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• (+6) Cucumber и BDD. Пишем UI-автотесты на iOS
• (+2) Интеграция библиотеки на Swift в UE4
• iOS Rich пуш-уведомления
•
![](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/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)
• (+14) Отрисовка первого кадра Android-приложения
• (+13) За двумя мобильными сервисами: HMS и GMS в одном приложении
• (+12) Встраиваем аналитику от Huawei в Android приложение
• (+11) Таргетирование уведомлений, управление ценами в разных регионах и другие возможности HMS для интернет-платежей
• (+3) Compose. Jetpack Compose
• (0) Автоматический Code Improvement при коммите в Android Studio
• Google Assistant получил углубленную интеграцию с Android-приложениями
• Android Broadcast: Kotlin Multiplatform Mobile
• Android Broadcast: как сделать жизнь разработчика лучше
• Google откладывает ужесточение политик в Индии до 2022 года
• Andriod NDK: Как использовать CMake и ndk-build в одном проекте
•
![](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/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• (+22) Завтрак с легендарным геймдизайнером Американом МакГи: о новой Алисе, России и депрессии
• (+20) Анонс Flutter 1.22 + Релиз Dart 2.10: на шаг ближе к null-safety
• (+16) Как UI победил UX в Things 3 (iOS)
• (+14) Свободы и ограничения дизайн-систем
• (+11) Flutter + чистая архитектура: разбираем на примере
• (+10) CucumberTalks: избегаем антипаттернов и пишем выразительные сценарии
• (+9) Как сэкономить на разработке мобильного приложения
• (+8) Великолепный Марио: рождение легенды
• (+4) История разработки мобильной игры «Полет на Буране»
• (+4) Улучшение UX мобильного приложения на реальном примере
• (+3) Топ-11 лучших систем управления тестированием 2020
• Podlodka #184: профессия: CTO
• Amazon Timestream упрощает работу с большими базами данных
• Что такое игровая логика и с чем ее едят
• Книги по iOS и Android разработке в Humble Book Bundle
• Дизайн приложений: примеры для вдохновения #18
• Мы отошли от плоского дизайна. В каком направлении мы двигаемся дальше?
• 5 основных анти-трендов современного дизайна
•
![](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)
• (+5) Локализация видеоигр для японского рынка: что нужно и что не нужно делать
• make sense: О запуске продукта без команды разработки, маркетинге и монетизации сервиса для ментального здоровья
• Microsoft создала 10 правил для магазина приложений
• App Annie: россияне в 3 квартале 2020 потратили в приложениях $348 млн.
• Бывший инженер Apple создал игру в слова
• Paired: мобильный сервис укрепления отношений
• Самые скачиваемые приложения в сентябре 2020
• Самые зарабатывающие приложения в сентябре 2020
• Исследование myTracker: как различаются платежи пользователей в разных категориях приложений
• Какая мотивация у разных типов игроков?
• Стриминг ретро-игр от Antstream
• НаПоправку.ру — Как мы за 5 месяцев сделали приложение с функционалом сайта, который создавали 5 лет
• Как анализ конкурентов помогает в поисковой оптимизации приложения
• Look-alike по событиям в мобильных трекерах: зачем нужен инструмент и как с ним работать
• Фрод в мобильной индустрии — какие механизмы помогают с ним бороться?
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• (+25) Низкоуровневое программирование микроконтроллеров tinyAVR 0-series
• (+22) Как роботизировать техподдержку с помощью машинного обучения
• (+21) Программирование устройств на основе модуля ESP32
• (+18) Куда катится мир нейросетей: интервью с создателем iPavlov
• (+8) Living on the Edge: Intel Atom, Celeron, Pentium для интернета вещей
• (+5) Нейросети: где взять данные для тонкого обучения алгоритмов?
• Приложение Skoda определяет неисправности по звуку
• NVIDIA представила новый Jetson Nano
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.