В этой подборке статей и новостей — Kotlin как продукт, навигационная битва, уроки для начинающих разработчиков и когнитивная перегрузка, происходящая прямо сейчас, лучшая типографика и любовь к нейронным сетям. Подключайтесь!

Язык — это в первую очередь рабочий инструмент, который миллионы людей используют ежедневно по много часов. Все эти люди решают разные задачи и сталкиваются с разными проблемами. Для команды разработки Kotlin знание этих сценариев и болей — основной источник идей, как улучшить пользовательский опыт и дать новые возможности программистам.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

• (+7) Интеграция CI/CD для нескольких сред с Jenkins и Fastlane. Часть 1
• (+1) Composable Architecture — свежий взгляд на архитектуру приложения
Core Location — как показать адрес, понятный человеку, с помощью CLGeocoder
Улучшение быстродействия iOS-приложения
SwiftUI: создание чипсов с autolayout контейнером
Как сделать приложение камеры на SwiftUI
Параллельное сравнение двух отличных инструментов отладки представлений в iOS
Использование UIReturnKeyType или inputAccessoryView в SwiftUI
10 советов по запуску Swift из терминала
Реализация модели машинного обучения Fritz AI в iOS-приложении
SlidableImage: слайдер “было-стало” для iOS
Dynamic Menu: физическое меню

Android

• (+7) Отладка приложений в экосистеме Huawei: облачная платформа для дебаггинга, сервисы A/B- и открытого тестирования
• (+3) Kotlin Android Extensions deprecated. Что делать? Инструкция по миграции
• (0) MVVM и выбор элементов в адаптере — Базовый адаптер
Android Broadcast: навигационная битва
Android Broadcast: сообщества разработчиков
Android Broadcast: безопасность Android приложений
Реактивное программирование (RxJava/RxAndroid) в Glassdoor
Обнаружение утечек памяти: Android Studio против LeakCanary
Proto DataStore Android: стоит ли игра свеч?
Приложение для рисования: пример кода на Android Jetpack Compose
Что может содержать меню отладки?
Углубляясь в мобильное железо
Туториал: обучение использованию шаблона EventBus
Плавающее окно в Android
Правильный запрос разрешения на местоположение в Android 11
Анимация загрузки в стиле Telegram
MVI-архитектура для Android
View Binding для ленивых
Создаем первое мобильное приложение на Kotlin Multiplatform Mobile за 10 минут
Удобный способ собирать оценки в приложении
Android RecyclerView с закрытыми классами Kotlin
Jetpack Compose для десктопных приложений
Dark Mode Toggle: темный режим на Jetpack Compose
Kotlin Lifecycle Delegates: управление жизненным циклом

Разработка

• (+40) Как я решил сделать игру, вдохновившись Heroes of Might and Magic, и потерял деньги (часть 3)
• (+17) Почему я ушёл с React Native и перешёл во Flutter: Часть 2
• (+11) Управление мобильными устройствами из KACE Cloud Mobile Device Management (MDM)
• (+9) Как я создал мобильную игру для своего ребёнка
• (+8) Разработка интерфейса Драйва: от запуска стартапа до глубокого анализа UI. Доклад Яндекса
• (+4) Магия электронной маски: анализ системы COVID Exposure Notifications
• (+3) Как Kotlin Multiplatform экономит время на разработку. Личный опыт создания игрового приложения для KotlinConf 2019
• (+3) Почему MVP вашего продукта может привести к краху идеи? Или как тестировать продукт на сформированном рынке
• (0) “Протестируй на всех браузерах на телефоне” или инструменты для тестирования Mobile Web приложений
Хочу в геймдев #15: Серверный программист
Podlodka #188: дизайн
Как я запоминаю все, что узнаю
25 уроков для начинающего разработчика
Когнитивная перегрузка: прямо сейчас на вашем экране
4 урока за 4 года работы в Facebook в качестве разработчика
«Кошелёк» объявил конкурс разработчиков на 1,000,000 рублей
Видео Firebase Summit 2020
Как спроектировать API и не облажаться
7 советов, которые помогут быстро улучшить типографику интерфейса
UX от А до Я — Ошибки: 14 советов, как справиться с неизбежными ошибками
10 ошибок при работе с цветом в UI
Сделайте это весело: хаос в продуктовом дизайне
14 правил, которых должен придерживаться каждый разработчик
Сплэш скрин на Flutter
Неглубокое погружение в универсальное юзабилити
Объяснение Continuous Deployment в коде
Уровни в архитектуре программного обеспечения
Ключевые принципы анимации

Аналитика, маркетинг и монетизация

• (+9) Проведение A/B-тестирования: пошаговый разбор
Calm использовал репортажи о выборах для продвижения приложения
make sense: О создании и развитии сообществ, метриках, мотивации людей и пользе для бизнеса
IronSource Aura выходит на российский рынок
myTracker запустил инструмент для отслеживания фрода
ByteDance покупает долю в китайском сервисе электронных книг Zhangyue
Самые зарабатывающие приложения в октябре 2020
У Pokémon GO лучший год в истории
Анализ рынка игр в России: исследование Wargaming и Superdata
Как продвигать мобильное приложение после публикации
Как создать хороший онбординг и заинтересовать пользователей с самого начала

AI, Устройства, IoT

• (+40) Делаем часы из электронной книжки PRS-505
• (+26) Как я перестал бояться и научился любить нейронные сети
• (+20) Скатерть-детектив: распознавание объектов за счет измерений емкости
• (+17) Топ-10 инструментов IoT-разработки в 2020
• (+16) Между бункером и виллой: как я строил умный дом в российской глубинке
• (+12) Как мы прошли путь от разработки прошивок для каждой камеры до создания универсального SDK для вендоров камер
• (+11) Создаем собственный GPS-Трекер на технологии LoRa
• (+6) ModBus Slave RTU/ASCII без смс и регистрации
• (+5) Интернет вещей по-русски. Минимализм и открытость OpenUNB
Raspberry Pi представила компьютер-клавиатуру за $70
Нейросеть научили определять носителей COVID-19 по кашлю
В CERN начинаются вводные онлайн-лекции по квантовым вычислениям

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.