В этом выпуске переезд Lingualeo на PostgreSQL, главные ошибки свободного ПО, война Epic c Apple, восприятие интерфейсов и золотой век программирования, «часы Уизли», поведение пользователей и многое другое!
Мы попросили нашего лидера бэкэнд разработки, Олега Правдина, рассказать о том, как они с командой параллельно с поддержкой основного продукта собрали новую модульную структуру сервиса на базе PostgreSQL, перенесли бизнес-логику в базы данных и провели миграцию с миллионами пользователей.
Сегодня мы попробуем разобраться, почему Open Source приложениями никто не хочет пользоваться. Статья получилась довольно длинной, но не пугайтесь, будет интересно.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.
iOS
• (+29) Airport — маркетплейс для приложений в TestFlight
• (+23) Как мы загружали банковскую карту из iPhone в брелок
• (+14) Знакомимся с Needle, системой внедрения зависимостей на Swift
• Обновление Lightroom удалило все пользовательские фотографии на iOS
• Apple отзывает сертификаты разработчиков у Epic Games и ставит под удар Unreal Engine
• Как подготовиться к iOS 14 и новым правилам конфиденциальности Apple
• Анимация View в SwiftUI
• Как я получил свою первую работу iOS-разработчика
• Организация вашего Swift-кода в Xcode с помощью локальных пакетов
• Микровзаимодействия в SwiftUI — анимация кнопок меню
• Новое в области искусственного интеллекта в iOS 14
• Как создать вариант сборки в iOS-приложении
• 24 расширений Swift для более чистого кода
• Как настроить большой iOS/tvOS/watchOS проект для большой команды и избежать конфликтов?
• Время сборки Xcode с BitBar
• MotionToastView: красивые «тосты» для iOS
• Countdown: таймер на SwiftUI
Android
• (+16) Внедрение IMA SDK в Android-приложениях
• (+11) Автотесты на Android. Картина целиком
• (+11) Декомпилируем приложение xiaomi сканер и забираем результат сканирования
• (+1) История про «боль» и как мы ее исправляем
• Анализ Android-рынка в Китае
• Отключение Jetifier
• Написание эффективных Layouts
• Google Play In-App Review API: интеграция и опыт работы
• Более умные приложения с Awareness API
• Создание лучшего и более чистого RecyclerView.Adapter с Kiel
• Обнаружение объектов в Android с помощью Firebase ML Kit
• Activities не то, что вы думаете
• Android MVVM с Firebase Firestore
• Кодлабы для новых игровых технологий Android
• Добавление удивительных переходов в Android-приложение с помощью Material Motion
• Фрагменты: восстановление внутреннего устройства
• MovieHunt: правильная архитектура кино для Android
• InstaGrabber: открытый клиент Instagram
Разработка
• (+29) Восприятие интерфейсов пользователями на примере панелей из Lego
• (+21) Data-driven подход к разработке контента: как мы создаем роботов в War Robots
• (+14) Глоток свободы: как флеш-игры повлияли на игровую индустрию
• (+7) Сервис на языке Dart: каркас серверного приложения
• (+6) Mind Map в тестировании — или легкий способ тестировать сложные приложения
• (+1) Выбор мобильных устройств: пошаговая инструкция для начинающих QA. Часть II
• Хочу в геймдев #11: как попасть в зарубежную геймдев-компанию
• Podlodka #177: криптография
• Золотой век программирования закончился?
• Открыт прием заявок на чемпионат по программированию Yandex Cup
• Обзор рынка мобильной разработки в кризис: что происходит и к чему готовятся агентства?
• 5 принципов качественного UI
• Появление дизайнеров-полубогов. ИИ и машинное обучение
• Аффордансы в дизайне. Дизайн привычных вещей
• Как создать иллюстрации, когда не умеешь рисовать
• Дизайн приложений: примеры для вдохновения #13
• FigmaExport: как автоматизировать экспорт UI-Kit из Figma в Xcode и Android Studio проекты
• Как формируется стоимость разработки мобильного приложения?
• Делайте больше, делая меньше
• React Native против Flutter: решение ожидается в 2020 году
• 6 месяцев использования GraphQL
• Разработка Open Source системы иконок в Microsoft
• Создание чистого приложения «Game of Life» на Flutter с использованием гексагональной архитектуры и TDD
• Как определять токсичные вакансии разработчиков по их описаниям
• Захватит ли ИИ UX?
• Фреймворк быстрых UX-исследований
• Почему я отказался от Google Firestore (и никогда не вернусь)
• 4 признака неопытного разработчика
Аналитика, маркетинг и монетизация
• (+7) Объединяем закрытый WhatsApp и открытый SIP – Часть 1
• Почему действия Epic вредят игровой индустрии
• Epic запускает чемпионат #FreeFortnite
• iPhone с предустановленным Fortnite продают за $10,000
• Facebook поддержал Epic в борьбе с монополией Apple
• Взлет приложений для здоровья и фитнеса в 2020
• myTarget оценивает влияния наружной рекламы на установки приложений
• Яндекс запустил супер-приложение Go, помогающее решать повседневные задачи в городе
• Likee почти догнал TikTok
• Симуляторы показали самый большой рост в 1 полугодии 2020
• App Annie: как изменилось поведение пользователей в мобайле в первом полугодии 2020
• Что нужно учесть при оптимизации страницы приложения на иностранные языки
• Как мы за 2 месяца бесплатно получили 400 тысяч установок из TikTok
AI, Устройства, IoT
• (+110) Проект «часов Уизли» с демонстрацией местоположения членов семьи
• (+45) Склеиваем несколько фотографий в одну длинную с помощью машинного обучения
• (+13) Спасти рядового датасайнтиста. Как работать над компьютерным зрением, чтобы сделать проект и не потерять себя
• (+4) Интернет автомобилей: кому нужны данные о вашей езде
• Рынок умных часов растет
• BlackBerry готовит новый смартфон с клавиатурой
• Университет машинного обучения Amazon открывает свои курсы для всех
• Google AI Vision и Text to Speech на Raspberry Pi
• Как создать собственного личного AI-помощника с помощью Python
• AI учится играть в Super Mario Bros!
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Автор: DigitalEcosystems