Blog
Back

Firebase for Mobile: 2018 Updates

#Development 27 december 2018

В октябре этого года компания Google провела ежегодную конференцию Google Firebase Summit. Эксклюзивных анонсов на данном мероприятии не было, однако даже знатоки платформы Firebase были приятно удивлены увидеть новые инструменты, в частности расширенный пакет возможностей которые сильно упрощают мобильную разработку.

Если совсем кратко, то Firebase может взять на себя все вспомогательные сервисы для вашего мобильного приложения, будь то: авторизация пользователя, база данных, PUSH уведомления, аналитика, информация по крэшам, тестирование (загрузил тест на сервер — он прогнался на всех нужных типах устройств), задачи машинного обучения (распознавание текста, изображений и тд.).

Нет сомнений: Google целится данным продуктом (Firebase) непосредственно в разработчиков, об этом говорит как минимум тот факт, что в открывающей презентации саммита половину докладов сопровождали демонстрациями работы продукта в режиме реального времени

Google на своих презентациях довела следование графику до совершенства, в 30 минутный доклад успевают выступить 3–4 человека с парой демок на каждого.
Демки продуманные и короткие: тут добавил такой код, установил такую конфигурацию — получил такой вывод из данных, так это работает. Примеры простые, и главное — понятные.

Firebase Management API

Запускать и конфигурировать новое приложение в Firebase теперь не обязательно руками через консоль, теперь для этого есть API. Это дает нам, например, возможность автоматизировать процесс запуска окружения под тестирование с набором предустановленных данных, избегая необходимости ставить заглушки на самом приложении.

Predictions

Позволяет предсказывать определенные события на основе данных аналитики.

1.png

Сколько пользователей что-то купят в вашем приложении поможет узнать функционал компонента Predictions

Как это работает? Последовательность определенных событий, отправляемых в Google Analytics, дает нам возможность утверждать что, например, пользователь два раза в последний месяц вводивший запрос «ремонт экрана iPhone» имеет склонность к покупке нового смартфона.

2.png

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 было бы поспешным.

3.png

Свою версию сервиса для тестирования приложений для iOS и Android Google обещает запустить в 2019 году

TestLab для iOS

Пожалуй, фича, обнаружить которую в пакете Firebase было совсем неожиданно. Позволяет прогонять тесты (написанные на XCTest), которые вы так любите писать для своих приложений, на разных устройствах и версиях iOS вплоть до iOS 12, делать скриншоты и записывать видео об их прохождении. Подчеркну, тесты прогоняются на реальных устройствах.

Performance

Тут вообще все серьезно, можно посмотреть статистку о нагрузке на систему, которую создает ваше приложение.

При применении облачного решения для тестирование стоит ответить на главный вопрос: какова цена масштабирования под большие объемы?

5.png

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 как универсальный инструментарий кросс-платформенной разработки, или мы так и не увидим успешного примера в ближайшее время?


Content-hub

0 / 0
+7 495 981-01-85 + Become a customer
Services Cases Content-hub