В октябре этого года компания Google провела ежегодную конференцию Google Firebase Summit. Эксклюзивных анонсов на данном мероприятии не было, однако даже знатоки платформы Firebase были приятно удивлены увидеть новые инструменты, в частности расширенный пакет возможностей которые сильно упрощают мобильную разработку.
Если совсем кратко, то Firebase может взять на себя все вспомогательные сервисы для вашего мобильного приложения, будь то: авторизация пользователя, база данных, PUSH уведомления, аналитика, информация по крэшам, тестирование (загрузил тест на сервер — он прогнался на всех нужных типах устройств), задачи машинного обучения (распознавание текста, изображений и тд.).
Нет сомнений: Google целится данным продуктом (Firebase) непосредственно в разработчиков, об этом говорит как минимум тот факт, что в открывающей презентации саммита половину докладов сопровождали демонстрациями работы продукта в режиме реального времени
Google на своих презентациях довела следование графику до совершенства, в 30 минутный доклад успевают выступить 3–4 человека с парой демок на каждого.
Демки продуманные и короткие: тут добавил такой код, установил такую конфигурацию — получил такой вывод из данных, так это работает. Примеры простые, и главное — понятные.
Firebase Management API
Запускать и конфигурировать новое приложение в Firebase теперь не обязательно руками через консоль, теперь для этого есть API. Это дает нам, например, возможность автоматизировать процесс запуска окружения под тестирование с набором предустановленных данных, избегая необходимости ставить заглушки на самом приложении.
Predictions
Позволяет предсказывать определенные события на основе данных аналитики.
Сколько пользователей что-то купят в вашем приложении поможет узнать функционал компонента Predictions
Как это работает? Последовательность определенных событий, отправляемых в Google Analytics, дает нам возможность утверждать что, например, пользователь два раза в последний месяц вводивший запрос «ремонт экрана iPhone» имеет склонность к покупке нового смартфона.
Firestore
— новая версия Realtime Database, в которой работать с данными большой вложенности теперь удобнее за счет абстракций документ, коллекция, подколлекция и соответствующего SDK для работы с ними.
Firestore теперь обзавелся эмулятором, который можно развернуть на своей машине как модуль npm, и тестировать получение и добавление коллекций и документов до публикации изменений на команду или в релиз.
Безопасность
Мне понравилась секция про безопасность, дает ответы на вопросы формата «мы не будем использовать сторонний сервис, это небезопасно».
Тезисы:
- ABAC (Attributes Based Access Control) vs RBAC (Role Based Access Control)
- набор правил валидируют данные, не запросы
- используйте кастомные токены (напр. админских действий)
- проверяйте ваши правила локально через эмулятор
Crashlytics
Сервис полноценно мигрировал на Firebase и дополнился рядом нововведений, таких как:
- в сессиях Crashlytics теперь можно найти события аналитики, отправленные в Google Analytics в рамках этой сессии
- можно проводить срезы по аудитории для выявления сегментов пользователей по событиям (напр. «у кого недоступен сервис из-за такой-то ошибки»)
Свой сервис для бета-тестирования
Логичным продолжением приобретения Crashlytics, который ныне уже практически полностью функционально доступен на площадке Firebase, было бы предоставление возможности загрузки приложений для бета-тестирования. Именно это нам и обещают в следующем году. Удастся ли Google справиться с проблемой настолько сложной инструкции по установке приложений для людей, технически неподкованных —главной бедой Beta от Fabric? Со слов самих участников команды Firebase — ждать каких-то значительных упрощений в интеграции с профилированием на iOS было бы поспешным.
Свою версию сервиса для тестирования приложений для iOS и Android Google обещает запустить в 2019 году
TestLab для iOS
Пожалуй, фича, обнаружить которую в пакете Firebase было совсем неожиданно. Позволяет прогонять тесты (написанные на XCTest), которые вы так любите писать для своих приложений, на разных устройствах и версиях iOS вплоть до iOS 12, делать скриншоты и записывать видео об их прохождении. Подчеркну, тесты прогоняются на реальных устройствах.
Performance
Тут вообще все серьезно, можно посмотреть статистку о нагрузке на систему, которую создает ваше приложение.
При применении облачного решения для тестирование стоит ответить на главный вопрос: какова цена масштабирования под большие объемы?
Remote Config
Теперь пушится прямо на устройство, теперь не надо организовывать сценарий обновления конфигурации с определенной периодичностью.
ML (Machine Learning) Kit
Компания активно развивает данное направление, что выглядит как «технологии в народ». Да, действительно, делать непростые вещи с использованием подходов машинного обучения стало невероятно просто, и самое важное — Google опять же берет инфраструктурные вопросы на себя.
Для целей минимизации размера приложения нам предлагается использовать model compression для ML Kit , который позволят ужать, например, 80 Mb модель до 860Kb с сохранением 93% точности модели.
Flutter
Круто:
- hot reload не требует перекомпиляции проекта для отображения изменения логики в приложении, как перезагрузить страницу браузера
- кроссплатформ на iOS и Android
- отзывчивый UI с анимацией до 60 fps
Не круто:
- свой язык (Dart)
- сложная первичная конфигурация
Нет, безусловно, новый декларативный модульных подход к разработке это удобно, но опыт использования данного инструмента не сильно помогает в развитии своих знаний в мобильной разработке в целом.
В больше степени порог вхождения в использование такого рода инструментов формируется неочевидной инструкцией по первичной конфигурации, прохождение которой иногда требует определенных лайфхаков.
Какой сервис станет следующим шагом в освоении компанией Google рынка «швейцарского ножа» для ваших приложений? Приживется ли Flutter как универсальный инструментарий кросс-платформенной разработки, или мы так и не увидим успешного примера в ближайшее время?