Introduction to Firebase with Android and Beyond...

Post on 16-Apr-2017

525 views 1 download

transcript

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Introduction to Firebase With Android and Beyond…

Kasper Løvborg Jensen

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Kasper Løvborg Jensen

Chief Wizard, Founder Leafcastle Labs Associate Professor Aarhus University School of Engineering Lead / Lab Commander ORBIT Lab Organizer Google Developer Group Aarhus @KasperLJ Kasper@LeafcastleLabs.com

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

β

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Outline

•  Introduction – What is Firebase? – What can I use it for? – How do I get started?

•  Tech demos/hacks – Android –  IoT devices – Web

•  Discussion

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase

“Firebase is a fully managed platform for building iOS, Android, and web apps that provides automatic data synchronization, authentication services, messaging, file storage, analytics, and more. Starting with Firebase is an efficient way to build or prototype mobile backend services”

https://cloud.google.com/solutions/mobile/mobile-app-backend-services#firebase

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Philosophy

1.  Cross platform 2.  Developer experience 3.  Integrations

</> ++ $

Develop Grow Earn

https://firebase.google.com/

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Cross Platform

•  Android •  iOS •  Web •  Cloud •  IoT •  …

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

https://firebase.google.com/

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Core Features: Development •  Real-time Database •  Storage •  Authentication •  Remote Configuration •  Cloud Messaging •  Hosting •  Analytics •  Crash Reporting •  Testing / Cloud Test Lab

https://console.firebase.google.com

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Authentication

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Authentication

https://firebase.google.com/docs/auth/

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Authentication

•  Flexible – Email/password – Google, Facebook, Twitter, GitHub – Custom – Anonymous / temp

•  Standardized – Oauth 2.0 – OpenID Connect

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Database

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase Realtime Database

•  Cloud based, NoSQL •  Offline mode •  Synchs in realtime with clients •  Store data/objects as JSON •  Security Rules for security and data

validation

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Storage

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase Storage

•  Files – Photos, audio, video, etc.

•  Handles upload – Security and robustness

•  Based on Google Cloud Storage – Highly scalable – Sharable with GCP services

•  Integrates with Firebase Authentication

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Hosting

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Hosting

•  Static web content •  CLI tools for easy setup and deployment •  Free SSL build in •  CDN for global delivery •  Versioning and roll-backs •  Hosted at *.firebaseapp.com – Can transition to custom domain

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

CLI for hosting

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Remote Config

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Remote Config

•  Instrument your app and set up server – Key-value pairs – Rules

•  Quick updates •  Feature toggling •  A/B testing

https://firebase.google.com/

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Test Lab

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Test Lab •  Cloud based test infrastructure for real

devices •  Run test on configuration matrix and get

results: logs, video, screen dumps •  Supports: Espresso, Robotium, …

https://firebase.google.com/docs/test-lab/

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Crash Reports

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Crash Reports

•  Log details on crashes on Android and iOS

Source: Google

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Analytics

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Analytics •  Powerful built-in Analytics – Automatically captured data – Custom events

•  Define audience and segment analysis •  Integrates across services

Source: Google

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Cloud Messaging and Notifications

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Cloud Messaging •  Firebase Cloud Messaging (FCM)

–  Formerly known as GCM

•  Send Messages –  Notification (for user) –  Data (for app)

https://firebase.google.com/docs/cloud-messaging/

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Notifications •  Send notifications to app users •  Fine-grained control •  Integrated with Analytics

Source: Google

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Adds / AddMob

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Pricing

https://firebase.google.com/pricing/

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase as a Backend

https://firebase.google.com/

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Just Firebase

https://cloud.google.com/solutions/mobile/mobile-app-backend-services

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Using App Engine

https://cloud.google.com/solutions/mobile/mobile-app-backend-services

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Custom Server

(Formerly known as Managed VMs)

https://cloud.google.com/solutions/mobile/mobile-app-backend-services

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Existing Infrastructure

Synch through FB Add feature with FB

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Hands-on Hacking/Demo •  Console

–  Firebase overview –  Database structure

•  ESP8266/Arduino –  FirebaseArduino library

•  Web –  Hosting –  Firebase CLI: setup and deploy –  FirebaseJS

•  Android –  Android Studio Firebase tricks –  Firebase SDK and patterns –  Firebase UI

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Too Warm? Feeling Blue?

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

CrimsonBreeze TM

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

First: Setup Firebase

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Hack#1: IoT board

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Grove Sensors

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase on ESP8266/Arduino

•  FirebaseArduino library •  ESP8266 Arduino core •  “The Arduino library is under

heavy development, experimental, unversioned and its API is not stable”

https://github.com/googlesamples/firebase-arduino

https://github.com/esp8266/Arduino

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Setup() !

Based on: https://github.com/googlesamples/firebase-arduino/tree/master/examples/FirebaseRoom_ESP8266

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Loop() !

Based on: https://github.com/googlesamples/firebase-arduino/tree/master/examples/FirebaseRoom_ESP8266

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Hack#2 Web

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Web Interface

•  Plain old HTML, CSS and JavaScript •  FirebaseJS 3.4.1 •  Hosted on Firebase

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Web Interface

Authenticate Monitor and control

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Init

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Deploy

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

UI

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Config & Auth

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Database Synch

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Hack#3 Android

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Android Interface Authenticate Monitor and control

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Getting Started

•  Create project (Firebase console) •  Add Android and configure •  Download and add google-services.json

to your Android project

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase SDK

<project>/<module>/build.gradle

<project>/build.gradle

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Libraries

https://firebase.google.com/docs/android/setup

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

FirebaseUI

•  FirebaseListAdapter •  FirebaseRecyclerViewadapter •  “FirebaseUI plans to add several more

features, including standard auth controls, pagination/infinite scroll, and navigation”

https://github.com/firebase/FirebaseUI-Android

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Android Studio

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase Assistant

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase Assistant

•  Step by step guide •  Links to Firebase console – Auto-configure / fill

•  Configures Gradle and imports

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Where to go from here?

•  https://firebase.google.com/ •  Firebase developer channel on Youtube – Google I/O 2016 videos – DevBytes

•  Firebase code labs – We are doing one right now!

•  Join ORBIT Lab / attend GDG Garage

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

Firebase at Google I/O’16

•  Introducing Firebase https://www.youtube.com/watch?v=ySmWlU9j3j4

•  Firebase Overview https://www.youtube.com/watch?v=tb2GZ3Bh4p8

•  Firebase SDK for Android https://www.youtube.com/watch?v=AJqakuas_6g

Kasper Løvborg Jensen Leafcastle Labs | Aarhus University

THANK YOU! Questions?

@kasperlj

kasper@leafcastlelabs.com