Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Firebase for mobile apps

Firebase for mobile apps

Одна из ключевых возможностей Firebase - это таргетинг, то есть возможность изменять работу приложения для разных групп пользователей. Мы разберем, как и когда использовать эту функциональность, а также в деталях рассмотрим и другие возможности Firebase.

Artur Vasilov

November 26, 2016
Tweet

More Decks by Artur Vasilov

Other Decks in Programming

Transcript

  1. Firebase Analytics + Центральный компонент, который объединяет все другие сервисы

    Firebase + Автоматический сбор предопределенных событий + 500 кастомных событий + Таргетирование + Интеграция с BigQuery - Нельзя посмотреть параметры событий в консоле
  2. Audiences • Можно создавать группы пользователей по любым параметрам (события,

    страна, пол, возраст и другие) • С разными группами пользователей можно работать по-разному
  3. Remote config • Пользователи массово удаляют приложение из-за добавленной авторизации

    • Полный цикл изменения выпуска новой версии включает в себя: анализ, документацию, оценку, дизайн, реализацию, тестирование, фикс багов, релиз, ожидание выпуска, ожидание обновления ~ 2 недели • ... • Многие пользователи удалили приложение
  4. Выносим конфигурацию на сервер • Не так очевидно внесение изменений

    - может занимать время • Тяжелее настройка по группам пользователей { "auth_enabled": true, "main_color": "#f44336", "app_title": "GDG Kazan" }
  5. A/B testing • По какому-либо критерию выбираем контрольную группу •

    Устанавливаем разные поля в Remote Config для разных групп • Собираем аналитику для оценки эффективности решения
  6. Никакой магии :( @StyleRes public static int obtainThemeFromConfig() { String

    theme = FirebaseRemoteConfig. getInstance().getString(THEME_KEY); if (TextUtils.equals(RED_THEME, theme)) { return R.style.AppTheme_Red; } else if (TextUtils.equals(GREEN_THEME, theme)) { return R.style.AppTheme_Green; } else if (TextUtils.equals(BLUE_THEME, theme)) { return R.style.AppTheme_Blue; } return R.style.AppTheme_Red; }
  7. Firebase Cloud Messaging • Простая (очень) интеграция • Возможность отправки

    сообщений из консоли • Таргетирование по группам пользователей • Анализ результатов отправки сообщений
  8. Authentication • Легкий и безопасный способ авторизации в приложении •

    Поддержка самых популярных сервисов • Контроль статуса авторизации • FirebaseUI-Android
  9. Firebase UI-Android List<AuthUI.IdpConfig> authProviders = new ArrayList<>(); authProviders.add( new AuthUI.IdpConfig.Builder(AuthUI.

    EMAIL_PROVIDER).build()); authProviders.add( new AuthUI.IdpConfig.Builder(AuthUI. GOOGLE_PROVIDER).build()); startActivityForResult( AuthUI.getInstance() .createSignInIntentBuilder() .setProviders(authProviders) .build(), REQUEST_CODE);
  10. Real-time database • Облачная JSON NoSQL база данных • Синхронизация

    данных между пользователями • Управление нестабильным соединением • Условно-бесплатная :( • Идеально для своего мессенджера на коленке
  11. Real-time database { "events" : { "-KOCEiiQduWwBMxYUf4x": { "id": 1,

    "name": "Study Jams", "uid": "-KOCEiiQduWwBMxYUf4x" }, "-KOCEmo7DUrh7u_qyMQ_": { "id": 6, "name": "DevFest Kazan 2016", "uid": "-KOCEmo7DUrh7u_qyMQ_" } } } • Разрешение коллизий • Работа в оффлайне
  12. Real-time database DatabaseReference root = FirebaseDatabase. getInstance().getReference(); DatabaseReference eventsRef =

    root.child( "events"); eventsRef.addValueEventListener( new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { // TODO : obtain events from dataSnapshot } @Override public void onCancelled(DatabaseError databaseError) { } });
  13. Crash Reporting • Подключается одной строчкой в gradle • Интеграция

    с аналитикой: ◦ Предшествующие события ◦ Таргетинг
  14. Test Lab • Тестирование на различных устройствах с различными версиями

    Android • Сбор логов, скриншотов и видео • Robo или Espresso / UIAutomator • Возможность запуска из Android Studio
  15. Цены • 10 тестов на виртуальных устройствах и 5 тестов

    на реальных в день бесплатно (пишем один гигантский тест на все приложение) • $5 за один час работы устройства (720 тестов из расчета 5 секунд на тест)
  16. Слухи о закрытии в РФ Начиная с 7 декабря 2016

    г. сервисы Google Cloud Platform, Firebase и API можно будет использовать в России только в коммерческих целях. В связи с этим 7 декабря 2016 г. тип Вашего аккаунта будет изменен на юридическое лицо вместо физическое лицо. Тип аккаунта «Юридическое лицо» означает, что Вы используете его в коммерческих целях. Владельцем такого аккаунта может являться коммерческая организация, аффилированное лицо, индивидуальный предприниматель или товарищество. Если Вы используете службы Google Cloud Platform, Firebase и API в некоммерческих целях, Вам следует отказаться от их использования до 7 декабря 2016 г. Для этого нужно отключить оплату для всех проектов.
  17. Недостатки Firebase для Android • Для работы нужны Google Play

    services • Существуют отдельные проблемы в отдельных сервисах • Инициализация через ContentProvider • Архитектурные недостатки
  18. Итоги • Идеальный вариант для стартапа • Какие-то компоненты можно

    использовать уже сейчас в проектах любого уровня • Ждем будущих обновлений!