A man can only attain knowledge with the help of those who possess it. This must be understood from the very beginning. One must learn from him who knows
– George Ivanovich Gurdjieff
On the 22nd September 2016, I attended a conference called Google Launchpad Build. Launchpad Build is an event series aimed at raising awareness, amongst intermediate and expert developers with an existing Web or Android application, on how they can leverage the power of Firebase to improve their productivity. With Firebase, developers are able to quickly develop high-quality applications, grow your user base and earn more money. You can read more the event which took place all over Sub-Saharan Africa here. The all-day technical hands-on event was all bout Firebase. In this article, I am going to write about what went down.
So what is Firebase?
Firebase is a cloud services provider and backend as a service company. Firebase was founded in 2011 by Andrew Lee and James Tamplin and launched with a realtime cloud database in April 2012. The company was acquired by Google in October 2014. Firebase is not the only backend as a service provider, they are other big players in the market such as AWS(Amazon Web Services) and Microsoft Azure etc.
0.0 Keynotes session
The keynote was taken by Aniedi(Google Developer Relations Program Manager) where he talked about what the Google Launchpad Build is all about. That this event is going to take place in three countries – Nigeria, Nairobi and Johannesburg. He explained how Google Launchpad helps you to Start, Build and Scale your applications.
1.0 Firebase Overview Session
This session was taken by Femi Taiwo(CTO Inits and GDE Cloud). What is Firebase all about? Firebase is simply a platform with features complimenting each other which helps you quickly develop apps, grow your user base and of course make more money(ego). In the past, Firebase offered just three basic features such as Realtime database, Authentication and Hosting but now it offers more than that.
Firebase was made by developers for developers. So with this information, the developers of Firebase are aware the problems we as developers face every day when developing, debugging, shipping, maintaining and also making money from our apps. So in Firebase, developer experience really matters. Creating a really successful app is not that easy, most times a developer uses different tools from different vendors and integrate it into their apps but with Firebase you have everything integrated perfectly together which you access in your dashboard. Firebase has grown to over 450,000 developers using it as announced at Google I/O 16. Firebase is cross-platform, you can integrate your IOS, Android or Web app with it. So if you are a Windows developer, sorry!
1.1 Firebase Analytics
Femi also talked about Firebase Analytics, Firebase Analytics was created by the team that did Google Analytics, they built it from scratch. With Firebase Analytics, you get important info about your users such as HOW a user behave and WHERE they are coming from. This feature is free to use for your app, it provides insight on app usage and user engagement. Firebase Analytics is integrated into other features such as Firebase Notifications, Firebase Crash reporting etc.
1.2 Developing your app
Tools available to develop your app provided by Firebase include Backend Services such as Realtime Database, Authentication, Hosting, Storage, Cloud Messaging, Remote Config. App quality services include Test Lab For Android, Crash Reporting.
1.2.1 Realtime database
Features of the realtime database include Cloud-hosted NoSQL database, Synchronization & conflict resolution, Access directly from your app. With synchronization, every connected devices or clients are synchronized in realtime in milliseconds, so once you update your database with new data, immediately all your clients are also updated without you writing any code to always be pulling data from the database. As a developer if you want to build rich and collaborative apps, this is a very handy feature for you. Another cool and wonderful thing about this feature for a native app is the capability to keep a local copy of the database in the device, so the app can continue to work while offline. When it gets online back, it is updated the database in the cloud. See how cool that is.
Firebase makes authentication very easy for developers and end-users. Users are already used to login to apps both web and mobile. As a developer, there is no need to build your own authentication service when you can easily use Firebase Authentication. Your users have the options of being authenticated with either email and password, Google, Facebook, Twitter and GitHub sign-in. Firebase will also manage your users session so that users remains logged in after the application restarts or browser closes. It can also be integrated with your existing account system if you have one. Firebase Authentication integrates tightly with other Firebase services. You can create your own interface or use the open-source UI library which is fully customizable. The UI library is available for Android, IOS and Web.
With Firebase hosting, you can host your static site which will include your HTML, CSS, JS and images. These files are cached and CDN(Content Delivery Network) around the world.This makes the delivery fast to your users. It also provides SSL out of the box by default so your communication with your users are secure. That is really nice!
Firebase storage allows your users to upload the download files over the internet, when there is a poor network, it gracefully handles poor network connection. It makes use of Google Cloud Storage.
1.2.5 Firebase cloud messaging
Firebase Cloud Messaging(FCM) is a free service that allows sending messages to your users across a variety of platforms. Messages can be addressed to single devices, group of devices or even topics. Notifications help to drive user interaction.
1.2.5 Remote Config
With Firebase remote config, you can effectively modify your app without re-deploying. You can change the behaviour or appearance of your app. It’s also integrated with Analytics, so you can drive in-app behaviour for different audiences remotely.
1.2.6 crash reporting
Firebase Crash Reporting helps developers diagnose and fix app problems app after it has shipped. It develops a comprehensive report about crashes in your app. Crash Reporting is currently in beta release, there are some known issues on Android and iOS.
1.2.7 Test lab for android
Firebase test lab creates a test environment for you test your Android apps before shipping it to your users. Test results include logs, screenshots, videos. It enables you to test on a wide variety of devices and device configurations. This is a very powerful tool to test your app so that you can catch and fix bugs before shipping it to your users.
Firebase invites enables your users to share your app to their friends or family, It supports both SMS and email. The user selects recipients from their Google contacts and contacts stored locally on the device, optionally customises the invitation message and sends the invitations. This feature is built on dynamic links, enabling them to deep link into the app content. Google helps you in suggesting the likely contact to install the app.
1.2.9 DYNAMIC LINKS
Firebase creates a great user experience by providing a single URL, which can manage the installation flow, and provide deep links to app content. When a user clicks on a deep link, it does not just take him anywhere on the web but also anywhere on the app as well. Firebase Dynamic Links works across all platforms such as IOS, Android and the Web. Dynamic links can also be used to share app content. They are also integrated with Firebase Analytics to provide insights.
1.3.0 Google adwords
Google Adwords is not integrated with Firebase which helps you to reach potential customers with online Ads. It helps you drive installs of your app. Linking Firebase and Adwords gives you access to powerful tools that help you see how your investment drives app installs and in app actions. Gain deep insights to add conversions and run targeted ad campaigns using Firebase Analytics audiences with which to engage your user base.
1.3.1 app indexing
Firebase app indexing gets your app into Google Search. It helps re-engage your app with your users with tight integration with Google Search. Gets autocomplete for in-app content in the Google Search bar. As users interact with your app, it can boost its search ranking.
Firebase Notifications is a free service that enables targeted user notifications for mobile app developers. It offers a very simple UI for generating notifications — you don’t need to write code, you can use the Firebase Notifications console.It’s built on the same infrastructure as Firebase Cloud Messaging. You can target different audiences. For Android, no coding is needed for background notifications, and very little is needed for iOS or foreground ones. Notifications can be tracked and measured with conversion funnel insights.
After the whole overview of Firebase by Femi, we went deep and had codelabs into features such as Hosting With Firebase by Ire(GDE), Realtime Database with Firebase by James(GDE), Authentication with Firebase by Kenneth(GDE), Firebase Remote Config by Segun(Android Engineer). Moyinoluwa(Android Engineer and GDG Lagos co-organizer) did sketch notes for each of the presentations and tweeted about them which are really cool and hilarious, you can see them here.
All slides for the event can be found here.
I really appreciate the Google Developers team and GDG Lagos for bring this fantastic event to Lagos and opening our eyes to the power of Firebase. With this powerful information, I will make sure I use Firebase in my next app project and hope you too do the same.
References and further reading: