The mobile app development cycle has increased in complexity over the course of the industry’s relatively short lifespan. Customers have higher expectations, operating systems offer more options and a variety of regulations require developers’ attention. Here at Flurry Analytics, we have invested substantial time and resources fine-tuning our app development process, which we are happy to share in this post.
Our mobile app offers our customers a lifeline to their app’s current health while away from the Flurry developer portal, providing access to their apps’ usage metrics, as well as receiving important real-time alerts. This app development process was instrumental in helping us transform Flurry’s mobile app to meet the growing needs of our customers and ensure we take full advantage of iOS and Android technological advancements. In this post, we’ll walk you through our process in hopes that it will help guide you through your own app development journey.
First and foremost, in order to design a bespoke native experience with the right set of features, an app team must have all stakeholders at the table. At a minimum, this should include a product manager, UX designer, mobile developer, and QA engineer. Each of these team members brings a unique set of skills that allows him or her to be the resident expert in that field.
Step 1: Strategy, Analysis & Planning
Pro Tip: Understand Your Unique Product Requirements
At the start of the development process, make sure your team is on the same page regarding your unique product requirements. What are your primary goals in this stage of app development? Perhaps you’re launching a new feature, taking advantage of new technologies, or optimizing for engagement and retention. In Flurry’s case, our mobile app product requirements are driven by cross-platform initiatives, Flurry Analytics’ data inputs, and platform evolution. Let’s discuss each of them.
Cross-Platform Initiatives
Through a combination of market research, customer feedback, and competitive research, we create a roadmap of features for Flurry Analytics. From there, we determine which features need to be available in the mobile app. In our case, not all features that are planned in our developer portal need to be included in our mobile app. For example, in the dev portal customers can run complex custom queries, but this feature doesn’t translate well to mobile, nor have our customers asked that we make it available for mobile.
User Data & Analytics
Second, leverage any and all user data you have for your app. Our own Flurry Analytics’ data guides many of our development and design decisions. We leverage the power of our own analytics to consistently improve the user experience of our app. For example, our own user data showed that the majority of our app users navigated to the real-time analytics tab upon launching the app. In a later version, we leveraged this insight to make real-time analytics the default home page for all users.
Mobile Platform Evolution
Third, both iOS and Android platforms continue to evolve and we take advantage of these evolving technologies. We recently added dark mode, biometrics, and Apple Watch support, and will be adding widget support soon. In essence, Flurry app’s product and feature pipeline is a combination of top down and bottom up approach.
Step 2: UX Design: Wireframes & Mockups
Pro Tip: Include UX Design Early in the Development Process
Design is extremely critical in the development of a successful app and during our development process, three key themes emerged. First, involve design early. When engineers collaborate with product designers during the feature development process, issues surface earlier, giving the team more time to find solutions. Second, always ship right rather than ship fast. Do not give a user something that does not work well or is inconsistent with the overall experience in the app or you risk losing them as a user forever. Third, collaboration and open-mindedness are key to a successful cross-functional team. Designers are resident experts in design and interactions; however, suggestions can come from the unlikeliest of places. Having an open mind to hear differences in design and the willingness to make changes are a recipe for success.
Our UX design starts with two scenarios. In the first scenario, we look at what can be improved or is lacking in our current product. In this scenario the UX designer creates low fidelity mockups and discusses them with engineers. In the second scenario, the product manager devises a new feature for a use case that needs to be resolved. In this case, the UX designer makes a new design solution and discusses it with the engineers. This design will go through a number of iterations before implementation.
Step 3: Technical Development
Pro Tip: Pay Extra Attention to Mobile-specific Considerations
Development should begin with a bird’s eye view of the feature. What is the overall objective for this particular feature and what does it need to accomplish for the user? Once we’ve answered these questions, we break down every feature into the UI Layer (design), Business Logic and view interaction (product requirement), and Data Layer which consists of the API layer and the DB layer. To top it off, we also like to add a wow factor.
Throughout our development, we pay extra attention to mobile-specific considerations such as screen sizes, battery and network usage, permissions, screen rotation, memory capacity, OS level, background, and foreground experience, to name a few. For every feature we develop, we make sure to not drain the battery, consume extra memory, or ask for permissions without providing value.
During the development of the Flurry App, our intent is to provide a very rich mobile experience. Even though both iOS and Android platforms offer the same features, they do so in a native way. We pay close attention to deliver parity across the platforms. To accomplish this, our engineers discuss the models, logic, and functionality across both iOS and Android. The icons, padding, color, transitions, navigation are all native to the platform the app is running on.
Step 4: Testing & Quality Assurance (QA)
Pro Tip: Product Quality is a Team Effort
The quality of an app should not rest on the shoulders of one person, but rather the entire team. The first line of defense against defects in our app is our unit test framework. Developers are required to create unit tests for any new features that are implemented. Our second line of defense is our dedicated QA team, which consists of one iOS and one Android QA engineer, who are responsible for creating and executing automated and manual tests prior to every release. Our automated tests are run in an in-house device lab across an array of devices and OS combinations. Our third line of defense is providing a way for the entire company to test the new features. As soon as a new feature is implemented, a new build of our app is made available on an internal app so every person in the company can download the Flurry Analytics mobile app and help with testing. As I said earlier, the quality of our app doesn’t rest on the shoulders of one person but rather on our entire team.
Developing and launching a mobile app should be a methodical, calculated process. Once you have established your cross-functional team of experts, ensure you are all on the same page regarding the objectives and product requirements. Include UX design early in the development process to help surface issues early in the process and give the team time to find solutions. Once you’re ready to begin the technical implementation, it’s a good time to level-set with the team to once again ensure the objectives are clear. And of course, don’t forget the user in all of this. This app development process has guided us through several major releases for the Flurry mobile app. We hope it can be helpful for you too. And don’t forget to download Flurry’s mobile app, available on iOS and Android.