introduction to firebase with android and beyond
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 [email protected]
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