In this article we will outline the major steps of developing mobile applications at an abstract level, and some considerations to make at each step.
The planning stage should occur immediately after you have imagined your idea for an app. "Planning" here does not refer to deciding how your app will look or how you will program it; rather, the planning stage should aim to answer several high-level questions about the feasibility of your idea in the current market space.
Planning generally includes market research and running a feasibility study. Questions such as "are there other apps that do what mine will do?", "is there a need for my app?", and "what is my app's value proposition?" must be answered. It is very important to understand whether there is a niche in the market for your app idea before you spend considerable resources in building the app and marketing it.
You also want to decide what platforms your app will be available for (iOS, Android, Web, etc.). If you are developing for more than one platform, you will want to decide if you'll take a hybrid approach or develop natively for each platform. When deciding which platform(s) make sense for your app, be sure to consider what competition already exists there and where the majority of your audience is. These last two questions can help you decide not only the feasibility of the app as a whole, but also where you might want to concentrate initial development efforts to make a proof-of-concept.
In planning, it is important to invest a large amount of time upfront to make sure that your app at least has a chance at success. Ask the questions 1) are there people willing to use your app and 2) there are people willing to pay for your app. Before you move on to the design phase you should be able confidently answer "yes" to these questions.
Don't be afraid to spend lots of time here since you haven't invested many resources yet. Better to be confident in the marketability of your app than to publish it and realize you should've geared your app toward a different audience, or not wasted your time on even developing it at all.
For more information regarding this, we recommend reading our article 3 Considerations Before Designing An App.
Prototyping is the stage where you start rapidly producing wireframes and iterating on user feedback. A wireframe can be thought of as a low-fidelity guide to the UI and UX of your app and offers a general sense of the app's functionality and flow without getting into the smaller details of colour or style. Your wireframes do not need to be fully featured - just focus on representing core functionalities (essentially, the minimal viable product, or MVP) of your app and receiving feedback on that.
There are tools out there that can help you collect feedback on your app wireframes, such as InVision. Obtaining feedback from a large number of people in your target audience is absolutely critical. Without it, you might design an app that doesn't quite hit the mark for usability for your audience. For example, you could develop a flight booking app that requires two hands to comfortably operate the interface, only to discover when you release that your audience of business people won't bother to use it because they only have one hand free as they hurry through the airport with their bags.
It is important to have an iterative approach at this stage so you can present as many mock-ups to your users as possible, letting your plan for the app's functionality adapt and evolve. Don't be afraid to spend time here, because you want to make sure you are making an app that will indeed meet your audience's needs! It's better to start headed in the right direction than to have to return to this stage halfway through development.
After iterating over the critiques you've received from your audience and verifying that your users are positively receiving your prototype, it is time to move on to the design phase.
There are many components to the design phase of app development, so we will only briefly cover some of the most important ones. Firstly, it is up to your UX and UI designers to further refine the approved wireframes. This means placing and crafting UI elements, defining user flow, understanding the importance of the element hierarchy, etc. At this point, you should produce high-fidelity mockups that your developers can then turn into a working app, along with details on what happens when elements are tapped, swiped, dragged, etc.
A brand guideline must be established as well (if you don't already have one), so that your app's branding is consistent and well-understood by both your designers and developers. To design a cohesive app, it's important that each screen respect your guidelines.
Designing a marketing strategy should also occur at this stage. This generally means figuring out how you will tell people about your app (social media, creating a blog, etc). It may also involve making a website to collect emails from users who may be interested in your product, a newsletter, or a social media following.
The development stage is where you actually begin to write the code for the "final" version of app. This is where you use the feedback you have received from the wireframes and make some final, potentially large, decisions.
This is where methodologies such as waterfall or agile can be implemented. Generally, an agile approach is more desirable for developing a mobile application. These methods of developing a software product will be discussed further in a later article.
Also, integrating an analytics engine into your app during this phase is critical. Create events for all possible user interactions so you can see how your app is being used and the general flow of users. This information will become very useful to learn about your users and further iterate on your app's design once it is released to the world so you can make the best product possible.
Ideally, testing occurs in parallel to the development stage. It is important to continually test to keep post-release costs low. Unit tests, UI tests, and integration testing are necessary to ensure that you work out any major bugs or oversights as early as possible. Test cases can increase time spent in the development stage, but in the long run they can dramatically reduce both time and monetary costs of maintenance and support.
Testing will also pay off later in the maintenance stage of your app. When you make a minor change, you can run all your test cases and identify where your changes may have broken other parts of the app without having to have a human manually walk through each test case.
This is where you will submit your app to the App Store of Play Store for approval. Learning this process is important since you will be doing this every time you release a new version of the app. At this point in the development process, you should have worked out most of the major bugs your testers found and you should have a quality app that will pass the guidelines for the store where you will be uploading it to.
Congratulations! Your app is available to the public. But your work is not over. After releasing your app, you essentially return to the prototyping stage. You will be reviewing feedback from your users, potentially adding new features, and then re-releasing again. These 5 steps will be looped, further refining your product to your audience over time.
This is also the stage where you begin marketing your product. The marketing strategies and social media efforts planned and developed prior to this stage should give your app a chance of being seen out there in the wild.
This stage really begins at the same time as release and should progress in parallel. Maintenance is where you monitor the status of your app, fix any bugs that may be present, and make sure the app continues to work as expected. Updating your app for new versions of the OS, or to support new devices, is also a part of maintenance.
Ongoing maintenance of your app never ends. Until you decide to discontinue support for your app (potentially abandoning your users), you will be maintaining your app indefinitely.