Naveen Swarna Apps
Before any production work can begin on your app idea, a discovery phase is an important first step. By gathering information and nailing down any objectives, you’ll have a clear idea of what problems you’re trying to solve with the project before starting to really firm up the concept. This is also a time to see what else is out in market, identify your audience, and pull together any market research pertinent to the project.
Before the concept phase of your application, you’ll want to have done your research and finalized your objectives and value propositions. Now it’s time to lay important groundwork for your app. With the help of a product manager, this is when you can really refine your idea, get a developer to weigh in on the app’s functionality early on, write up a specification document, and a technical specification document.For Android app development, it’s also imperative that you establish which devices your app will run on, and the earliest version of the Android OS your app will support. Once this is determined, you’ll be developing for and optimizing for those targeted devices and operating systems all the way through the testing phase.
A spec document lays out the business logic of the app, while a technical spec document scopes out the features and functionality of the app. This will help you determine the requirements of the app, and whether or not you’ll need server-side support and integration. (For example, a utility-style app like a flashlight does not require server or database support. A messaging app, however, will.) Common technical aspects to consider include: Do you have a Google Play publisher account to publish the app through? What is the earliest version of the Android OS your app will support? Will the app be distributed to multiple countries?
A project manager and developer with experience in Android app development, mobile app development in general, and technical knowledge (an understanding of what is required from a coding standpoint to bring an app’s features to life) are needed to size up the scope of the development workload.
Once the tech specification document is written—translating all of the features of your app into specifications for your development team—it’s time to create wireframes. Wireframes act as a user experience (UX) map—demonstrating what a user’s options will be—and an information architecture blueprint, laying out which parts of the site will have what content. A good wireframe hinges on excellent UX as well as user interface (UI) design, so engage a designer at this phase to help think through a natural flow for your app.
Establish and approve what content goes where in your app, its functions, and the flow of the user experience with wireframes. This is the next phase of your tech spec document, demonstrating how the app will come to life. A product manager, Android app development and deployment experience, and UX/UI expertise are needed.
At this phase, you’ll want to consider a few different angles: creating an appealing visual design (how it looks), an intuitive UI (how it works), and an engaging UX (how it feels to the user).
The Action Bar. The Action Bar exists in every Android app and does a few important things: it houses the app’s navigation, lets the user know where they are in your app, and includes predictable actions the user might take on each page. Contextual Menus. These menus—like dialog boxes or floating menus—include more specific actions directed at specific frames within your app’s UI. Material Design. Material Design is the style of design provided by Android that dictates how elements look, move, and interact with each other. It comprises all the patterns, layouts, styles and animations of your app’s UI. Take a look at the Android Material Design Guidelines for more details information. Create design mockups and prototypes of the Android UI for the development team. This phase is collaborative with the development phase—expect some back and forth between designer and developer.
At this phase, you’ll want to consider a few different angles: creating an appealing visual design (how it looks), an intuitive UI (how it works), and an engaging UX (how it feels to the user). For more information, read our article describing the differences between UI and UX design. A designer will create the look and feel of each screen of your app, with all of the graphics, icons, custom animations, and more that will visually define your app. The designer will also be generating design prototypes for the development team. Any graphics created will be imported into the Xcode development environment, and the designer will remain engaged through the development phase, as developers may come back with problems or ideas the designer may need to address.Create design mockups and prototypes for the development team. Establish the design system for the application, a style guide, and the patterns used in the application. This phase is collaborative with the development phase—expect some back and forth between designer and developer.
Scalability is one of the most important things for a mobile application—it has to be written to support growth from the very beginning. “Architecting” an app at this phase is crucial and could prevent you from having to completely rewrite it when it needs to grow. This phase happens parallel to design so you’re ready to kick off the development phase next.Create a cohesive plan for the software architecture of the app—both the front-end architecture and the back-end architecture. If you’re opting for a back end as a service (BaaS) software bundle, there will still be integration required.For smaller projects, one Android developer may be able to create software architecture for an app. For larger projects, you’ll need at least one developer with experience in software architecture—and plenty of expertise with both the front end and the back end.
This is the most complex phase—expect many iterations, with a constant feedback loop between your designer and your developer along the way. At this phase, both the front-end and back-end architecture of your app are built as a coordinated effort. While your app’s functionality is created, its system architecture is getting built. The front-end interface and the back-end server support software are dependent on one another, and the process usually involves a lot of back and forth. On the front end, you’ll be making decisions about how your app’s functions come to life with code—its computing logic. At the same time, any back-end engineering—any server-side components your app needs to run, like a database, APIs, middleware, etc.—are coded and integrated in this phase, linking them to the front end. Code a scalable app that’s fully integrated to all of your back-end software—the database, mobile APIs, and other related infrastructure it needs to run. If you don’t have the scope to build a server-side infrastructure, you may opt to purchase a Backend as a Service (BaaS) software bundle.
These include an array of storage options and features, but they aren’t completely “turn-key”—you’ll still need a developer who understands back-end engineering to integrate it into your app. Also, writing unit tests and running integration testing are crucial steps in this phase. Unit tests will run bits of code within the app software to ensure there aren’t bugs, while integration testing will ensure your backend is running smoothly and doesn’t affect your app’s performance.An experienced Android developer versed in both server-side and client-side coding, with an understanding of responsive design, Android’s software development kit (SDK), Android Studio, the Java or Kotlin programming languages, the Gradle build system, server-side scripting, database administration and integration, and server administration.
Thorough quality assurance (QA) testing is up next. Your developer will run unit tests, user tests, and run through the Launch Checklist to make sure everything is wrapped up. In testing, your developer will either install and run your app on a device plugged into their machine, or they will run the app on the Emulator, testing screen by screen to ensure there are no bugs and everything works smoothly. They’ll debug the application with the Android Device Monitor and tools available in the SDK. Cover all your bases when you test. You’ll need to test for functionality (does it work well?), load time and handling (does it slow down when traffic increases?), and UX (how easy is it to learn or get used to?). Also, review any crash reports to locate fixes.
Ensure your app runs well on all of the targeted devices and versions of the Android operating system that you’ve built your app to support. This is especially important given the sheer number of different devices and older operating systems Android has running, and you’ll need to test for each. Test your app against Google’s quality criteria, determine content rating, country distribution, the size of the app, screen resolution, and more. Your app should run without crashing, slowing down, or any bugs.A developer with knowledge of Android’s latest submission requirements, cross-device testing, knowledge of security and privacy measures, and UX/UI expertise are needed.
At this phase your developer/development team is preparing your app for release by assembling a release-ready Application package (APK). You’ll need a Google Play Publisher Account before you can register for a Developer Account. Set up Google Payments if your app will be for sale, or has in-app products. The release-ready APK is optimized, its code is cleaned up, it gets a release key, a final round of testing, then it’s uploaded to the Developer Console. If the app meets all requirements for UI, compatibility, and quality, you’re ready to publish. Publishing is the process that makes your app available to end users—and puts your app live and in the Google Play Store.