At Google, we understand how important the quality of your application is in order to grow your user base, increase customer satisfaction and boost your revenues. When we took a closer look at data from 1-star reviews on Google Play, we observed that more than 50% of these reviews are related to bugs and crashes in the app.
For many developers, finding and resolving these problems prior to release can be very challenging. As the Android ecosystem continues to grow rapidly, it can be a daunting task to maintain a high quality, performant app that scales well for your users. As your user base grows, you may only have access to a handful of devices to use for testing. Accessing devices that are unavailable in your country is also difficult. Moreover, setting up a proper testing infrastructure that facilitates pre-release testing is a very expensive and time-consuming process that requires continual maintenance.
To help streamline the testing of mobile applications, we’re introducing Firebase Test Lab for Android, a platform where you can automate testing with the same tools that Google uses to test its own products. With a few easy steps, you can launch your tests on our physical devices to help ensure the best possible quality for your applications.
Testing Android applications normally involves writing instrumentation tests to script the interactions with the app. If you’ve already written tests using Espresso, UI Automator 2.0, or Robotium, you can begin running those tests today on devices hosted by Firebase Test Lab.
Authoring instrumentation tests is easier now with Android Studio 2.2 (or newer) using the new Espresso Test Recorder tool. All you have to do is launch your app in recording mode, and the test recorder will observe and remember all your interactions with the app, then generate test code in Espresso that duplicates those interactions. You can then turn around and run these tests in Firebase Test Lab.
Even if you’re not writing your own tests, you can still use Firebase Test Lab. We have a fully automated, intelligent test called a Robo test that will crawl your app by performing interactions with your app’s user interface. You don’t have to write a single line of code to gain the benefits of this automated coverage.
With each test you run, you will select from a variety of device manufacturers and models, Android versions, and configurations (Virtual devices are also now available as a beta offering). Firebase Test Lab will then run your tests on multiple devices simultaneously to satisfy your selections as quickly as possible. When the tests are complete, the results from the test will be stored in your Firebase project.
Testing works best when it happens throughout the development process, not just before you publish your app on Google Play. To simplify this process, Firebase Test Lab gives you the ability to invoke tests directly from within the tools you’re already using, such as Android Studio and the Firebase Console. Our command-line interface allows you to run your tests through your continuous integration setup. Additionally, after you opt-in to receive the pre-launch report in the Google Play Developer Console, every new version of an app you publish to an Alpha or Beta channel will receive a free, five minute Robo test. These test results will become visible in the Play Store Developer Console.
The Play pre-launch report generated from running the Robo tests is currently available at no cost! For more customized testing using Firebase Test Lab, customers on the Blaze Billing Plan will be charged $5 per physical device hour, and after October 1st, 2016, $1 per virtual device hour. Prior to that, virtual devices are available at no charge. See our pricing page for details.
Running your first test on Firebase Test Lab is easy. You can follow our step-by-step codelab which walks you through various scenarios for running your first test. You can refer to our full documentation here. If you have questions or encounter any issues, please ask in the Firebase Google group.
Happy testing!
For most developers, building an authentication system for your app can feel a lot like paying taxes. They are both relatively hard to understand tasks that you have no choice but doing, and could have big consequences if you get them wrong. No one ever started a company to pay taxes and no one ever built an app just so they could create a great login system. They just seem to be inescapable costs.
But now, you can at least free yourself from the auth tax. With Firebase Authentication, you can outsource your entire authentication system to Firebase so that you can concentrate on building great features for your app. Firebase Authentication makes it easier to get your users signed-in without having to understand the complexities behind implementing your own authentication system. It offers a straightforward getting started experience, optional UX components designed to minimize user friction, and is built on open standards and backed by Google infrastructure.
Implementing Firebase Authentication is relatively fast and easy. From the Firebase console, just choose from the popular login methods that you want to offer (like Facebook, Google, Twitter and email/password) and then add the Firebase SDK to your app. Your app will then be able to connect securely with the real time database, Firebase storage or to your own custom back end. If you have an auth system already, you can use Firebase Authentication as a bridge to other Firebase features.
Firebase Authentication also includes an open source UI library that streamlines building the many auth flows required to give your users a good experience. Password resets, account linking, and login hints that reduce the cognitive load around multiple login choices - they are all pre-built with Firebase Authentication UI. These flows are based on years of UX research optimizing the sign-in and sign-up journeys on Google, Youtube and Android. It includes Smart Lock for Passwords on Android, which has led to significant improvements in sign-in conversion for many apps. And because Firebase UI is open source, the interface is fully customizable so it feels like a completely natural part of your app. If you prefer, you are also free to create your own UI from scratch using our client APIs.
And Firebase Authentication is built around openness and security. It leverages OAuth 2.0 and OpenID Connect, industry standards designed for security, interoperability, and portability. Members of the Firebase Authentication team helped design these protocols and used their expertise to weave in latest security practices like ID tokens, revocable sessions, and native app anti-spoofing measures to make your app easier to use and avoid many common security problems. And code is independently reviewed by the Google Security team and the service is protected in Google’s infrastructure.
Fabulous uses Firebase Authentication to power their login system. Fabulous is a research-based app incubated in Duke University’s Center for Advanced Hindsight. Its goal is to help users to embark on a journey to reset poor habits, replacing them with healthy rituals, with the ultimate goal of improving health and well-being.
The developers of Fabulous wanted to implement an onboarding flow that was easy to use, required minimal updates, and reduced friction with the end user. They wanted an anonymous option so that users could experiment with it before signing up. They also wanted to support multiple login types, and have an option where the user sign-in flow was consistent with the look and feel of the app.
“I was able to implement auth in a single afternoon. I remember that I spent weeks before creating my own solution that I had to update each time the providers changed their API” - Amine Laadhari, Fabulous CTO.
Chu-Day is an application (available on Android and iOS) that helps couples to never forget the dates that matter most to them. It was created by the Korean firm Malang Studio, that develops character-centric, gamified lifestyle applications.
Generally, countdown and anniversary apps do not require users to sign-in, but Malang Studio wanted to make Chu-day special, and differentiate it from others by offering the ability to connect couples so they could jointly countdown to a special anniversary date. This required a sign-in feature, and in order to prevent users from dropping out, Chu-day needed to make the sign-in process seamless.
Malang Studio was able to integrate an onboarding flow in for their apps, using Facebook and Google Sign-in, in one day, without having to worry about server deployment or databases. In addition, Malang Studio has also been taking advantage of the Firebase User Management Console, which helped them develop and test their sign-in implementation as well as manage their users:
“Firebase Authentication required minimum configuration so implementing social account signup was easy and fast. User management feature provided in the console was excellent and we could easily implement our user auth system.” - Marc Yeongho Kim, CEO / Founder from Malang Studio
For more about Firebase Authentication, visit the developers site and watch our I/O 2016 session, “Best practices for a great sign-in experience.”
Firebase App Indexing, formerly known as Google App Indexing, allows users to re-engage with their installed apps through a seamless integration with Google Search.
If your mobile app users search for related content on Google, they’ll be given the option to launch your app directly from the search results.
By using the Firebase App Indexing SDK to drive user engagement for your app, you can also help improve the ranking of your content in search and provide auto-completions based on your content to your users.
If users don’t have your app on their device, an installation card can show up in search results when they search for apps like yours.
Research has shown that the average U.S. mobile user has 36 apps, but doesn’t regularly use 75% of them. Firebase App Indexing is designed to help users rediscover their apps through surfacing important content within them. With more searches done on mobile devices than on desktops worldwide, and 40% of searches returning results for indexed apps, using Firebase App Indexing is a great opportunity for you to get your app in front of users that are interested in your content.
You can learn more about Firebase App Indexing, including how to get started on the Firebase Developers site.
Firebase Notifications is a free service that enables user notifications for Android and iOS devices. Through the Firebase console, you can send notifications quickly and easily across platforms with no server coding required. These notifications can be directed at your individual users; to topics that they subscribe to; or to segments defined by analytics audiences.
Notifications is built on Firebase Cloud Messaging, and provides an option that lets you create a notification platform with minimal coding effort. It supports a graphical console for sending messages, removing the need for you to create a server. With this console, you can re-engage and retain your user base, foster app growth, and support marketing campaigns. If you are currently using Google Cloud Messaging, we highly encourage you to migrate to Firebase Cloud Messaging to for your Android and iOS apps to take advantage of Firebase Notifications. Check out our migration guide here.
Firebase Notifications integrates closely with Firebase Analytics, allowing you to define custom audiences and direct notifications to them. So, for example, you can send notifications to user segments for a particular app, version of an app, or language.
Creating notifications is very straightforward -- you simply use the Firebase Notifications GUI in the console to compose and send notifications to apps that are linked to your project in the console. When your app is in the background on a user’s device, notifications are delivered to the system tray. Tapping the notification opens the app. With a little code, it’s easy to add handlers to receive the message when the app is in the foreground, and respond to it by, for example, launching a foreground activity.
This talk about Firebase Notifications from Google I/O 2016, goes over Firebase Notifications, showing how the console works, as well as how easy it is to write code to implement notifications into your app or site.
Busbud is the bus travel booking website, serving over ten million departures to travelers around the world every week. It lets the user search, compare and buy tickets from hundreds of bus companies in thousands of cities and bus routes. It uses notifications to communicate with users about changes that are relevant to them, and to re-engage with them with discount codes and promotions.
Using Firebase Notifications, they were able to send, receive and see push notifications in 3 minutes. They only needed to re-compile their app using the Firebase libraries. Once done, they were able to send messages to users in a specific language, audience or topic using a single line of code.
“Firebase [Notifications] let Busbud jettison code we didn't want to maintain, made it trivial to send new targeted notifications via the console while tracking engagement and is a powerful tool that makes the Busbud app a great companion for bus travellers.” Jean Baptiste Morin, Lead Mobile Developer, Busbud
You can learn more about Firebase Notifications at the Google Developers site, where you can see documentation and examples for Firebase Notifications on Android and iOS.
We're all familiar with the idea of URLs that take you to a specific place on a website. And with the push towards mobile computing, it's becoming a lot more common to see URLs that can take you to a specific place within a specific mobile app. A concept most of us know as deep linking.
The idea of deep linking into your app is compelling, and it's easy to understand why. With just one URL, you can not only send users right into your app, but also to a precise location inside your app. Imagine if your email campaign promoting the hot new feature of your app could take users directly to that new feature with a single click. Or if the "Try our app" button on your website could not only take users to your app, but bring them directly to whatever content on your site inspired them to install your app in the first place.
Unfortunately, deep linking into an app isn't perfect. It's difficult to get the same link to point to both your iOS and Android app. And they might behave differently -- or simply break -- if your user doesn't have your app installed. Most importantly, if your target user has to install your app from the app store first, the context of that original link is often lost, and your users are left with your generic home screen rather than a customized warm welcome.
That's why we've created Firebase Dynamic Links: they're deep links that work the way you want them to. With one single link, you can send users either to your iOS or Android app, if they have it installed. And if they don't, you can send then to the appropriate listing in the App Store or on Google Play. Most importantly, these links survive the installation process, so when a user starts up their app for the first time, you can still retrieve the deep link URL that brought them to your app in the first place.
As a fun summer promotion, Shazam recently partnered with Coca Cola to allow users to share some of their favorite tunes with their friends through the fine art of lip-sync videos.
Friends who received these videos got to view them inside a web page. Before implementing Firebase Dynamic Links, these web pages contained two separate links: "Install the app" and "Make your own video", and it was up to the user to know which link to click on. But after implementing Firebase Dynamic Links, Shazam was able to replace these two links with a single "Make your own video with Shazam" link that either took future lip-sync stars directly into the app, or the appropriate app store for their platform.
Thanks to their use of Dynamic Links, users who installed the app got to directly jump to the part of the app they cared about, and Shazam discovered that users who installed their app through this kind of onboarding flow had a 15% higher retention after 2 weeks than users who started up their app normally.
Firebase Dynamic Links can be created on the fly, so your app or website can generate a new link whenever you'd like. You can also use the Firebase console to create Dynamic Links with our online form, in case you have non-technical members of your team who want to create their own links and don't feel like spending their time hand-escaping URLs.
Because Firebase Dynamic Links are part of the Firebase platform, they work alongside other features like Firebase Analytics. Not only can we give you basic information like the number of people who clicked on a link, but the Firebase platform will automatically track utm_ parameters (these are parameters your marketing team typically adds to any external campaign) so that you can analyze any of your important in-app events by the campaign or medium that brought them there in the first place.
Firebase Dynamic Links are free to use, and you can get started today -- no matter how much or how little of the Firebase platform you end up using. Need some ideas to get you started? Here's a few suggestions:
And of course, Dynamic Links are a great fit with your latest Email, SMS, or social media campaigns.
To find out more about Firebase Dynamic Links, you can check out our documentation here, and hop on into the Firebase console to get started.