Firebase Improved My Android Skills

Udean Mbano
DVT Software Engineering
5 min readSep 21, 2022

If you’ve been looking for a robust platform for building mobile and web applications, Firebase is your best bet. Here’s my story.

My experience and knowledge of using Firebase backend began with an Android sales and merchandising application. My skills improved significantly during this app development journey, and I became more knowledgeable about common physical device errors.

So what is Firebase?
Firebase is a platform developed by Google for creating mobile and web applications. It was initially an independent company founded in 2011. In 2014, Google acquired the platform, which is now their flagship offering for app development.

There are many benefits of using Firebase. Here’s a list of some of them:

  • Higher performance
  • Better quality
  • Higher crash-free percentages with fewer fixes
  • Greater stability
  • Higher sales or revenue growth
  • Analytics, product experimentation, product marketing and reporting.

Some features come at a cost; however, it is worth it. I’ll be discussing the mobile side of Firebase and how it supports Android(Google) and IOS(Apple) operating systems.

The main tools we used from Firebase backend for our application were Firebase Analytics, Firebase Crashlytics, Test Lab and Cloud Messaging. The application used location updates and could send data to the firebase backend whenever the user was online.

This was achieved using analytic keys set in the mobile application. The analytic keys set were address, network carrier, username, company name, IMEI number, current time, time offset, device id and job name. When viewing the analytics dashboard, one would split the view by country or region and know how many users have submitted a particular job, i.e. custom forms or product surveys. For example, in Kenya, on the 3rd of April 2021, we had 400 form submissions in Nairobi for the company ABECO.

Further to that, we could see which users submitted the most forms. As an Android developer, you would have gained valuable analytical skills that will give confidence to your manager as a feature developed will have statistics on usage.

Crash reporting helped developers see which users were experiencing crashes, and it was easy for support to reach out to them for logs. The Crashlytics keys set in the application had information address, network carrier, username, company name, activity name, IMEI number, current time, time offset, device id and screen name.

The Crashlytics logs were useful as they had a detailed stack trace of how the crash would have happened. Crashlytics also gives insights into if particular errors are happening on certain API levels or android versions. That would make it easy to search for a solution online for the errors and make an alpha apk to test on the same user to see if it is resolved then promote to Beta. Crash reporting also sends email alerts if a crash is consistently happening on a user's device.

The crash reporting dashboard shows what percentage of users are crash-free connected on all versions of the application and can be further broken down per mobile application version. As an Android developer, you gained valuable knowledge on handling errors for different devices, updating application code to prevent errors, correcting dependencies and following the best-recommended code practices. The dashboard always reflected 100–98% crash-free users by applying code and bug fixes. The percentage is also influenced by users who upgrade the application versions and those who prefer to use old versions.

Test lab was the most interesting part of the Firebase backend. The user had the option to generate Roboscripts (JSON files), or Expresso instrumented tests (Kotlin or Java files) recorded in Android studio. A user's Android studio had to be linked to a firebase account. Once the user uploads his debug apk and test files, they will have to select a set of devices to test on with an option to select different Api levels.

There is also an option to save those test selection criteria known as a preset with any name you want. Meaning the user can repeat the test with different apk versions. When the test lab matrix is complete, whether it was successful or not, a notification will be sent by email. After the test lab run, the user could go through all screens tested on the app and view screenshots in sequential order.

Users had a choice of viewing a recorded testing video, and if there was a crash, they could replay it. The test lab matrix would provide a developer with a stack trace of the error logs. As an android developer, you gained the ability to deliver well-tested features on multiple devices from the test lab, ensuring a reliable apk release to your customers.

Cloud messaging was a helpful tool installed or configured in the mobile application to reach out to users on mobile devices via notifications. An example scenario of using a messaging service would be to send an alert of a new apk release or system maintenance notice so users would not be surprised if jobs are not uploading. This feature enabled developers to generate alerts and advise users to reach out if problems affect their usual activities. Reminders on upgrading to a newer apk version on the Google Play store were necessary for users to enjoy the full benefits of newer versions.

With Firebase, you can customize the presentation of your data, and it can be linked to other Google products, such as BigQuery. Other services offered by Firebase are Cloud Firestore, Cloud Functions, Authentication, Hosting, Cloud Storage, Google Analytics, Predictions, Cloud Messaging, Dynamic Links, Remote Config etc.

For any company that develops mobile applications, Firebase backend can help them develop and automate their apps to launch them with a five-star rating on the market. Various tools are also available to help users create the best applications possible.

Make your app the best it can be. Follow the link below and start using Firebase for application development.

https://firebase.google.com/

https://firebase.google.com/pricing

--

--