So, who loves Apps? Everybody. Mobile Apps have emerged to be an industry disruptor in the same lines as the Internet. Naturally, application development practices and methodologies have seen a wave of changes in the last few years.
Developers are churning out apps with performant backend systems and amazing new feature sets. But the building blocks and moving parts of a mobile app still remained distributed till a year or so ago (and for some even up to this day Sigh!!).
And then came in FIREBASE!! (Ignore all caps, we just have been adoring this :))
Firebase has taken up the throne of being the one-stop platform for building great apps.
Some trusted names around the world use Firebase in their products. The list includes The New York Times, Shazam, Alibaba, Lyft, Trivago and Venmo.
And of course, we use it too.
Read on this first article of a 2-part series about how Firebase makes life easier for engineering teams.
##So, what is Firebase and how does it help? Since their acquisition, Firebase has turned from a single-offering to a suite of products and tools for developers, all inter-connected and all so amazing. Firebase is now the all-new undisputed unified platform for mobile developers. Some may even argue, Firebase did what Parse could not. Let’s look at some of its offerings: (Disclaimer: Firebase also offers products and solutions that you can use for your web apps as well and are pretty cool too. But to keep things simple we will keep this article confined for mobile apps.)
1. Real-Time Database, Storage and Cloud Functions
Maintaining servers, databases and backend architecture can be a daunting task for app developers. Most client-side developers may face hurdles with this and often pick a rudimentary stack or language to get things moving.
Firebase has a solution to it with its cloud-hosted real-time(this was their forte earlier as well) database on NoSQL that lets you store and sync data between your users in real-time. But it just doesn’t stop there.
You can use the SDKs(Android, iOS and Web) to update data in real-time on your client apps via JSON. Firebase also offers secured and scalable storage using Cloud storage for uploads and downloads and you can use Firebase Hosting for developer assets as well.
Some key capabilities and features are as follows:
- Real-time Data Synchronization that updates within milliseconds on client-side.
- Offline Usage as SDKs persists data on client disks.
- Security and Data validation through Firebase Database security rules. Expression based rules can be written.
- Firebase Remote Config can store developer specified key-value pairs that change the content and behaviour of apps and user segments without the need for an update.
- Cloud Functions(Beta) can help you manage backend code and a whole lot of DevOps tasks.
- Easily Integrate with Google Cloud Platform if you’re up for it.
2. User Authentication and Onboarding
Most apps need User Identification and Authentication for either personalization, data storage, customized experiences or security. And how much time do developers spend creating a secure backend architecture, APIs and client-side UI and handling for this? Weeks or months I hear? What if you could do it within 2-3 days? (Sorry for not being over-confident and saying 10 mins as most SDK providers do. Let’s be realistic, we need time to test it as well. We are talking about building **good** mobile apps here.)
Firebase Authentication gives you easy sign-in and authentication for your users via custom email and password, phone number authentication or popular services like Google, Facebook, Twitter and more. You can use their SDKs and a drop in UI builder using Firebase UI to build user onboarding and logins. Firebase uses industry standards like OAuth2.0 and OpenID Connect so security is tight! You can also easily integrate this with your own custom backend and user database.
And it doesn’t stop just there! Use Triggers to extend this service with Cloud Functions. May trigger a function to send a Welcome Email for new user signups or send a “Don’t Leave Us!” email to users who uninstalled your apps.
3. Crash Reporting and Test Lab for Android
Let’s face it. Mobile Apps crash! Whether you’re the popular Social Media service that everyone loves and hates(pointing at the blue guys!) or a startup just getting ready for a first show.
Your mobile apps are prone to crashes and errors in development and in production. This is even more painful with the wide fragmentation of device makes and models, OS Versions and Custom ROMs. And the more it happens the more brutal your audience gets. The best you can do to tackle this is to adopt a “find early, detect better and fix fast” strategy.
This is where Firebase Crash Reporting comes in. It creates detailed error and crash reports for your apps. The best part is the errors are clustered and grouped so you don’t have to battle with them all over the place.
Reports are triaged based on severity, device & environment information and performance logs. You get a full trace of the bugs so they are easy for you to fix. You can also extend this functionality with Firebase Analytics by adding exceptions so that you can see the affected user-base with the faced issues. Update: Crashlytics, the popular crash reporting service, will soon become the primary crash reporter for Firebase.
Test Lab for Android is another service from Firebase that Android Devs and QAs will find very useful. Test Lab, an exclusive for Android apps (iOS guys will have to wait for it!) is a physical device farm*(AWS Device Farm anyone?)* for uploading your APKs, choosing your devices and OS and running automated or workflow tests as defined by you. Even if you don’t write any tests at all it still goes ahead and does a pretty good job. You can get logs, videos, and screenshots as reports. You can also use your Espresso and UI Automator 2.0 instrumentation tests right from Android Studio and it works pretty well with existing CI tools.
4. Performance Monitoring
How many times did you wonder, “How is my app performing with X, Y, Z OS versions in the real world?” or being blindly confident that “My app works wonderfully both on LTE and HSPA!”. We all have come across these situations and used a lot of 3rd Party Integrations for it. The insight we got was always at a 30,000 feet level.
Firebase Performance Monitoring(still in Beta) gives you performance stats of your iOS and Android apps right down to the traces. It gives you helpful insights based on Traces and HTTP/S Network Requests monitoring and gives you information about Carriers, Radio, OS, Device, Country, App Versions, etc.
You can create custom traces using the SDK and can measure Response Times, Payload Sizes and Success/Failure Rates for network requests.
Conclusion We hope this article helped you understand the benefits of using Firebase in your next or existing mobile project. Your Dev Teams will just love it!
In Part 2 of this article, we will talk about how you can Grow your App and Engage your Audience better using other Firebase products. Till then stay tuned!