How to Make an App: From Vision to Product
This is originally posted by the mentor on his blog. This post has been edited for clarity and some parts may appear different from the original post.
Have you ever woken up one morning with a creative idea that you believe will be very popular and you think will make you a millionaire? Then you are not alone. We all get struck by awesome ideas we think will change the course of the future. Some of them are just silly thoughts but a few of those ideas have the potential to change our lives. So why not take a chance? Let's make a refined product from our vision and change the future!
Most ideas just remain “ideas” due to the lack of proper guidance. But in this tutorial, I will be guiding you on how to make an app from the initial ideas you have in your head.
Some people think that developing an app is just writing a bunch of code; but writing code is just a single step in app development. All other stages are equally as important to develop a good app. I have categorized them into nine steps:
How to make an app
1. Initiation phase
Before starting this phase you need to have some ideas for your application. It does not need to be organized yet, just a fuzzy vision of the app will do the job. In this phase, we are going to define the purpose or goal of the app and create a detailed plan on how to achieve that goal. You also need to do some research about similar apps that are already available for download. This step will help you expand your vision.
Initiation phase of app development.
Here, you have to create a Project Plan defining all the tasks, stages, and future milestones of the project. In some projects, a Project Initiation Document will also be created, this defines the project so that at future points in the lifecycle, everybody is clear about the original goals, objectives, price, etc.
You can also draw the screens for the app that defines your concept. Sketching your idea will also help you to understand your vision more clearly. Sketching will help you visually conceptualize the main features and the approximate layout and structure of your application.
2. Requirements engineering
After you have your clearer vision for the app and have defined the goals, you can start with requirements engineering. In this phase we will expand the goal of the app. We will further define what the app will achieve, what it does, and how it will benefit the user. We will also establish the target audience, as knowing who the app is aimed for will affect how the app is priced and marketed. In this stage, we will also see whether the app is within the gasp of our budget or not. We can also discuss if the app is feasible or not. There are bunch of Wh- questions we need to ask ourselves in requirements engineering:
- What is the goal of the app?
- Why is my app different?
- Who has developed a similar app like mine?
- Who is the app targeted for?
- When will the user use this app?
- What are the benefits of the app for the user?
- Where are the users based?
App profit evaluation
When we develop an app, it isn't unusual to think about the possible ways we can profit from it. Therefore it is essential to consider various monetisation methods for mobile apps. Different techniques for earning profit from apps are:
- Paid App
- In-App Purchase
- Admob or iAd integration
Milestones are the stages that establish the development process of a mobile app. Determining milestones allow for better structuring of tasks and development time. Using milestones will give us a better idea of the timescale involved in creating the mobile app. On average, it takes 18 weeks to develop an Android or iOS app.
Wireframes and storyboard
Next step is to create a wireframe which will show how the mobile app will operate. Wireframing is the process of creating a mockup or prototype of your app. By creating wireframes and maybe even a storyboard, your ideas and the features you've thought of fuse into a much clearer picture from your original vision. There are many mockup softwares such as Balsamiq, Moqups, and HotGloo which can be used to create mockups and a storyboard for your app.
3. Technical analysis
Statistics and analysis
We need to consider following points in technical analysis :
- Scalability (inbuilt room for the app to grow)
- High Availability (designed with low down-time in mind)
- Maintainability (easy for future developers)
- Modular approach
- Portability (e.g. various mobile platforms – Google Android, Windows Mobile)
- Usability (developed with the end-user in mind)
- Version Control
In this phase we need to discuss about the technical things that are required to develop our app. For example, the type of back-end we need for our app, or decide whether we need any back-end or not. We need to determine the database requirement for our app, too. Having a database like SQLite (recommended) prevents data from being lost when the app is closed.
We also need to discuss following questions in technical analysis:
- Do we need to store the app’s data? If yes, how are we going to store it?
- What type of database are we going to use?
- Is our app static or dynamic?
- What are the security requirements of the app?
- How are we going to handle flaw in app’s security?
- Are we going for third-party integration? If yes, what are our options?
- How are we going to further develop the app in the future?
After finishing the technical analysis, we need to create a project documentation. The documentation should cover following topics
- Problem Statement
- Budget and timeline
Project documentation illustration
Design phase of app development
When you have your development documentation ready, the next step in your process is design. This step involves creating graphical interface by converting the wireframes into clean and attractive user interfaces. A User Experience (UX) Designer can create the interaction architecture of the design elements. A User Interface (UI) Designer for mobile solutions can create the look and feel of your app. This is a multistep process with its own review stages.
The user interface needs to be easy to use and have high quality design, as this is what will make it stand out in the app store. The design will incorporate your branding and should be designed with different mobile screen resolutions in mind.
(Illustration from : skilledup.com)
This is the main phase for the programmer. The type of technology used in development phase must be defined in the Technical Analysis Step. And the design developed in Design Phase must be applied while developing the app. The developer must narrow down the resemblance between the app and design document.
Development should run in parallel with testing so that errors and bugs can be caught early and hopefully, get fixed soon. At this stage the developer will write and maintain the source code which makes up the back-end of the app. Each platform has its own software development kit. The native programming language will vary depending on what platform the app is being created for.
Do you know what programming language is right for you? Pick a language!
At the end of the development phase, the result is evaluated according to the list of requirements that was created in the requirements engineering. It is also evaluated according to the designs. For example, tests may be conducted to determine whether the application does, indeed, support Android 2.3 or higher.
Why is testing necessary?
Congratulations! You have built an app. Now it’s time to get some of your target users to help you test it.Testing is an essential stage during the mobile app development process that must be taken seriously. Carrying out testing will examine the apps functionality, usability and consistency, whilst also exposing any issues so they can be fixed before the product is distributed.
There are different type of testing techniques that can be carried out after developing your app. Android Studio provides some inbuilt testing techniques which can be found here. Besides that these are some testing techniques you can apply :
Automated testing is done during app development. Automated testing is designed to ensure your app can work across the intended devices and that your script remains intact. Unit Testing and Integration Testing are part of Automated Testing. To learn how to create unit testing for your Android application, you can follow this link here.
User Acceptance Testing
User acceptance testing is a process to discover whether your mobile app works for users. In other words, put your app in the hands of a few people in your target audience. Once your app has passed the UAT test, you know that the solution “works”. It includes alpha and beta testing
Alpha testing is done by the users who are involved during app development. That means it is done by the people who are aware of the functionalities and technology used in the app.
Beta testing is done by the real users of the app who are unaware of the technologies used in the app. Beta testers will help you determine whether or not the app’s functions are operating well in a real-world environment.
Google Play Store logo
Congratulations! You have developed an app and it's ready for deployment. In this stage, we will upload the app into the platform's respective marketplace. Android apps are uploaded into Google Play Store, and iOS app in the App Store. To upload your app in Google Play Store, you must sign for Google Play Developer Account with one time fee of $25. After that you can upload as many apps as you want in your developer account. To upload your iOS app in App Store you also need to enroll for iOS Developer Program for $99.
After you have uploaded your apps to the market and users are already using your app, the next phase is, which goes continuously, is to maintain your app. You have to maintain your app to fulfill users' need and expectations. User feedback is essential to better understand how users are interacting with your app. In order to do this, we need to install an app analytics software. Analytics is not just about the number of downloads, but how, when, where, and who are using the app. The analytics can tell the client what channels users are coming from, their activation percentage, their retention percentage and whether they are getting any referrals. App analytics software is set up during the testing stage.
Here is a list of some of the most popular analytics software:
- Apsalar (iOS, Android)
- Flurry (iOS, Android, Windows Phone, Blackberry Java ME)
- Mixpanel (iOS, Android)
- Google Mobile Analytics (IOS, Android)
- Localytics (iOS, Android, Windows Phone, Blackberry, HTML5)
- Countly (iOS, Android, Windows Phone, Blackberry)
By tracking the app's performance, you have the option to make adjustments if necessary. It can also inform you whether or not additional support is necessary. Along with checking the analytics, the apps ratings and user feedback should also be monitored.
Mobile app testing
Once the app is developed you will need to market the app effectively. Advertising and marketing should work in parallel with every stage of the app development. They are both central to the process. It is essential that the app is marketed in a way that makes it stand out from the thousands of other apps in the App stores. There are few strategies to advertise your app for more downloads and one of the best solution is Google AdSense. Here you can advertise your app and it will show up as ads on other applications.
How to make an app: Conclusion
These are the main steps in the life-cycle of App Development. With the proper knowledge of these 9 steps you can succeed in app development. Similarly, you can always ask an expert to guide you.
Thanks for reading my article, if you have any questions then let me know in the comments. Also be sure to check out other essential topic on Android app development.