How to Make an App: The Journey of Transaction
Tips and Suggestions for Making A Successful Application
Developing an application is a twisted rollercoaster, contrary to popular belief. Sometimes you just get the weirdest epiphanies and other times, you just cannot wait for it to be over. If you're a first time app developer, then you have come to the right place to start your journey.
Statistically, over 4,375 apps are released on the Google Play Store and an average of 1082 apps are released on the Apple App Store everyday. With a market as competitive and already congested as what we have today, it is essential now more than ever for developers to stop and contemplate the value of their apps. Before actually making an app, it is crucial to generate passion about your idea and ensure what you have is really useful and convenient to operate.
I am going to take you through the basic stages of app development that I went through while developing my IOS application - Transaction. Transaction is a tool that allows users to record and sort any payments that they make to anybody. Its main features include . So in this post, I have mentioned all the steps that I followed and resources that I used while making Transaction and I hope you take some ideas from it.
Step 1: Think of a Problem You Are Trying To Solve
The best way to escape a problem is to solve it.
The first and the most essential step of app development is to identify a problem. I know, it's very cliche, but this is undoubtedly the most essential piece of advice that people often neglect in the product creation process. Directly jumping into the idea brainstorming phase is probably not going to lead you anywhere. And even if you do end up thinking of an idea, it is very likely that the application is not very appealing to you audience.
Now, how can one think of a problem? The most effective way of making an authentic and valuable application is to personally connect with it. So, follow these steps to identify the problem you wish to solve:
Make a list of 10 most annoying problems you face in an average day.
Identify any existing economic and feasible solutions to these problems, and eliminate the problems for which a perfectly viable solution already exists.
Grade the remaining problems on a scale of 1-7, 1 being the least obstructive and 7 being the most.
Pick three problems with the highest rankings and determine whether they could be solved through a digital product. If not, repeat the previous steps.
Then lastly, reach out to friends and family, and find out whether they face the same problem. You could also do some research online.
Repeat these steps until you are satisfied with the problem you have picked.
Write down your one selected problem in one sentence, highlighting all the important keywords which the solution should focus on.
One example of such a problem statement is the one I created for my application Transaction. So, I have personally experienced many people included my own grandmother who have trouble keeping track of the payments she makes to people, like the house-help or the vegetable vendor, or even to her own relatives. I could literally feel her pain when she had to take money back from somebody, but she just couldn't remember how much. Similarly, my father was in the construction business, and he had to deal with many workers on a daily basis, which included lending them money. He faced a similar situation. This was the problem I tried to solve using my application, and the problem statement I identified was:
"People have trouble keeping track of the day-to-day small transactions and payments they make or receive, especially when they are busy throughout the day and do not have time to manually organise their accounts."
And just like that, you have your problem statement! Now, that you have identified a problem, it is time to think of a way to solve it.
Step 2: Think of a Plausible Solution
The second stage of the app development process is clearly the most intuitive and requires the most amount of creativity on the developer's end. While you were brainstorming the problem you most likely came across some potential ideas for solving those problems. It is now time to write all these solutions down.
Now when it comes to finding a solution, this solution could take any form. You could be producing a completely novel and authentic idea, or you could simply be improving upon an existing product with the features that it lacks.
The best way to start thinking of a solution is always to interact closely with people who face this problem in their lives constantly, and inquire into their existing solution for the problem.
Once you have come up with plausible solution, ensure that:
Your solution is viable, meaning it is physically practical to replicate it in real-life.
Your solution is economic, meaning most (if not everyone) can afford it.
Your solution is easy-to-use, so that the complexity of the solution does not hinder optimum user-experience.
Your solution is adaptable, meaning that it has the capability to be replicated in different geographic regions and different socio-cultural backgrounds (if applicable).
Your solution is scalable, meaning that it has potential to grow and expand in the future.
Keep in mind that your solution does not need to be extraordinarily innovative or you do not need to discover the Theory of Relativity in order for your app to be outstanding. However, it is necessary that your solution is convenient and efficient more than anything else.
I personally rather enjoyed this part while making 'Transaction'. When I asked around in my neighbourhood, I found that most people who aren't very tech-savvy chose to use your traditional notebooks to record payments. In some cases they even chose to just message each other and keep track that way, but that is completely inefficient and tedious to scroll all the way up each time. So, I decided to take inspiration from this and decided to make a digital notebook of sorts where people can record their transactions at the click of a button, and divide the records as per their contacts so that they can access them anytime they want.
If your most favoured solution meets the above requirements, then bravo! You have successfully generated an app idea and it's time now for you to gear up and pursue it with all your might.
Step 3: Visualise your Application
Great, now that you have a possible solution to the problem, it is time to start thinking of it in software terms. You do not have to full-blown wireframe your app or anything just yet, but what you should start thinking about at this point is the following:
Is my app logically feasible?
What primary function do I want my app to perform?
How is my app different/ more valuable than the others?
How long would it take to develop my application? Do I have that much time at hand? If not, what aspects of my idea could I cut down on?
Do I have the right equipment (hardware and software) to make the application I need?
Which OS should my app work on? (More about this in Customer Research)
After answering these questions to a level that you are satisfied with, it is time to focus on two other very important aspects of your application: Target Audience and Niche.
Beginning with Target Audience, it is essential to decide who your application is meant to reach out, so that it is easier for you to decide on the features that you will include. Consider the following while picking your target audience:
Geographic region (if applicable)
Gender (if applicable)
Industry (for example, households, businesses, schools, etc.)
Financial Capacity (applicable if your app includes trade)
You might not find all these categories relevant, but it always advisable to narrow your target audience down as much as possible, for your product to be more personally appropriate to your users. Moreover, you can even target multiple audiences, but make sure to identify you primary - your highest priority.
When it comes to Transaction, my selected audience was mainly divided into two: women or men who take care of the household budget, and owners of small local businesses.
Next we have the niche. A niche is a category or field of the market to which your app is focused toward. This is the industry your application falls under and will determine the future of your product. After selecting a niche, one might also want to select a sub-niche. Examples of this could include Finance, which is the niche that my application focuses on, and the sub niche as Personal Finances. Some other examples are:
Health - Fitness
E-Commerce - Online Book Store
Travel - Flight Booking
If you are someone who wants their app to get popular really fast, and you are not really fixated a concrete idea just yet, then I would suggest you go through Google Trends or AnswerThePublic to identify the most popular niches and the most browsed topics as per you requirements.
Below is the graph form Statista, outlining the most popular app categories in the US as of 2020 September.
Once you are done with this, you are now equipped with the necessary tools to begin sculpting your application.
Step 4: Brainstorm Feasible Features
Congratulations! This step is the first step toward making your app a reality. If yo've made it this far, you must be really serious about your idea.
Anyway, now you have to list out the possible features you will include in your application. These features should mainly be categorised into three parts:
Primary - The main essence of your app
Secondary - The minor features of your app which increase utility
Complementary - The features which improve upon any of the primary or secondary features
Extra - Those features which are not required in the first version of your application, but you would like to consider in future updates.
What features you wish to include in your application depends on your niche and customer, however there are a few basic things to keep in mind:
Speed - It is necessary that your app has features to ensure that its function can be performed as quickly as possible.
Security - You must ensure that your user's information is safe and their privacy is properly maintained. Do not implement any feature which is not secure.
Push Notifications - This is a great way of keeping your user connected to your application even when it is not active.
Responsiveness - Your application must be responsive to the different device sizes and orientations (portrait and landscape).
Personalisation and Customisation - A good application will always be flexible to the user's preference and allowing them to personalise it is an excellent way to establish an emotional connection.
Searching and Browsing - If applicable, allow users to search for content on your app in order to save time and effort.
I would advise that you take your own good time with this step and consult possible customers and experts in you niche. The features of your application determine its usability and its very essence, so in a way this is the most important part of app development.
Step 5: Market and Customer Research
Woohoo! Hard part over, right? Now I can just jump into the techno-sci-fi part of my app? Unfortunately, no. One of the main reasons that most apps these days fail to meet expectations both their own and their users' is due to ignorance toward this step. Studies have suggested that Market and Customer Research can increase your app/website traffic by 34%.
This stage is also the one where you decide the operating system you want to make your app for. Of course, that choice drastically depends on your skill set, since Android development, IOS development and multi-platform development all require knowledge of different skills and programming languages (Java/Kotlin, Swift, React Native respectively). For example, I picked IOS due because I wanted explore Swift development. So, you can skip the next bit if you have already picked your platform.
Before we begin, I would like to suggest that if you are a first-time app developer, it is recommended to start with a single-platform app to gain some hands-on experience. When it comes to picking your platform, research has suggested that IOS developers tend to earn more for their applications. Moreover, the Apple App Store is considered a much more secure and selective. A few things to consider while selecting your platform would be:
Target Audience and the platform preferred by them
The credibility of the platform in terms of launching your app
The popularity of your app category on the Store for your chosen app
Purpose of the application
Of course, your skillset
For further help in selecting your platform, you might want to consider reading some blogs on the Internet and research a bit more. Make sure your decision is well-informed and not rushed.
Moving on, the next most important element of this step is Researching Competition. This consists of browsing on the app store and going through some of the popular apps in your category.
Below are the top Android and IOS Apps according to Statista for reference.
With basic research you should be able to shortlist other applications which fulfil the same purpose as yours. Don't get disheartened if you find many, you can always make your authentic and better. It is important for you to find your value proposition - the feature that makes your app unique. Once you have identified your competition, you can evaluate it using the SWOT methods and use it to your advantage:
Strengths: Advantages of the application which you can take inspiration from (make sure to respect intellectual property and do not plagiarise)
Weaknesses: Disadvantages of the application which you can make sure not to include in your application
Opportunities: The elements which are lacking in this application and how you could incorporate those features in your application.
Threats: The possible 'threats' or problems the existence of this application could create for you and plans for you to tackle them APPROPRIATELY.
It might be helpful to go through the reviews for these applications on the app store to gain more information and identify any complaints the users might have. You should also consult possible customers and ask about their preferences and suggestions as part of customer research. Some questions you can ask them:
What do they look for in an app before installing it?
What are some problems they generally face in apps?
What kind of colour schemes do they find appealing in apps?
What existing app do they find the easiest to navigate through?
How likely they are to use your application?
Once you are satisfied with the research you have done, it is now time for you start developing illustrations for your app.
Step 6: Put the Design on Paper
Well, not literally on paper, but yes you can do that too if you wish. Designing the look and feel of your app will actually contain two-steps, one will be the basic rough drafts, and one should ideally be your final choice.
The first step here, is to make rough sketches or storyboards of what you want your app to look like. This is where all your market research comes in handy. There is no rulebook or guide to how you should go about making these sketches, but these are a few recommendations:
Thoroughly plan out every detail of your app, from the placement of every button, to the size of every textfield you choose.
Keep it simple, do not include too many screens or too much navigation which might confuse your user.
Keep the number of steps before the user can actually utilise the primary feature of the app, to the minimum (as tempting as it might not be, do NOT give in).
Consider screen sizes and app/google store guidelines (particularly the Human Interface guidelines by Apple).
Research and find out if your desired UI layout features are feasible or supported by the programming environment/language you will be using. This is especially a challenge I faced with Transaction, particularly because I used SwiftUI which is relatively new and does support all the UI features which Storyboard Development did.
Most importantly, get your application designs reviewed by your potential customers, and get their UNBIASED feedback, since they are the ones in the end who will use it.
If you're not big on designing and need help, you could consider visiting the following websites, where you could explore or purchase designs and UI-Kits for your app as suitable:
Or if you're simply stuck trying to choose the perfect colour scheme for you application, Canva is a great place to start. Their Colours is an excellent tool to identify a colour scheme and the aesthetic associated with it, along with analysing the meaning behind the colours. You can also find blogs there which helps you pick colours based on niche.
Once you have all your design ideas and resources in place, it is now time to create a concrete UI/UX storyboard or wireframe for your application. Based on your market research, personal preference, and feedback from others, pick one UI/UX idea and develop a wireframe for it, taking care of every detail. Just for reference, a wire-frame is a static illustration of your software which focuses on the allotment and layout of the content.
Some great wire-framing softwares include:
If you wish you could even do this on paper, but my personal recommendation would be to digitise your designs so that you could picture them on a screen. Also keep in mind, that these designs are not set in stone and might be subject adjustments, so don't worry about that, and just go with your instincts for now.
Once you have your wireframe ready, it's now time to dive into the technical side of things!
Step 7: Brainstorm Logistics and Technicalities
Brainstorming the logistics and technicalities is one of the most fundamental prerequisites of developing any software. This step really depends on what kind of application you will develop and what functions it will performs.
Under this step you might want to think about the following:
User Interactions with your application
Database organisation and structure
Storage of data (offline or online)
Networking (if any)
Any additional libraries or packages you might need to implement app features
At this point, it could be helpful to refer to your list of features and simply write down on the the technical logic or syntax you could behind implementing that feature, so that you can decide early whether and modifications or additional packages are required.
I will not be diving too deep into the software-side of things as that is out of the scope of this blog. But if once you are through with this, you are now finally ready to get into the field and start some hands-on work.
Step 8: Making your application
Finally, it is that moment we have all been waiting for, it is time to make your app a reality!
This part is where you actually work the magic and puts life into your application. It is now time to show off your programming skills and get coding.
Before you actually start coding, I suggest you create a repository for your project on GitHub which will help you retain progress and allow you the freedom to experiment with your code without fear.
You will also need a suitable editor for your application. For Android developers, the standard editor to use is Android Studio, and for IOS it is XCode. These editors have exceptional Storyboard features which help you picture the UI of your application while coding. They also have source control features so won't have to worry too much about that yourself.
Although I will not be getting into the details of programming in this tutorial, I will provide some basic tips which might help. So, making your application usually has two parts:
Part 1: Generate the UI/UX of your application
Part 2: Structuring your Database
Part 3: Add Functionality
While making actually your app, it is very likely that you will face many errors and problems which most of the times don't even make sense. However, do not let this get you down. Whenever you face such hindrance, a great forum to check out is StackOverflow - a very supportive community where you can post your queries and problems, and even take inspiration from the solutions for others' posts.
You might also want to browse through online forums to find out the best logic and syntax for implementing some of your features. It is always better to do that, and many a time you will end up finding a much more convenient method of implementing your desired functionality.
For all my IOS developers out there, here are some forums which really saved my life when it came to troubleshooting and error handling while developing Transaction:
Apple Developers Forum
Hacking with Swift
If you will be including a server to your application, I would suggest looking into Firebase, which is my personal preference for a server. Although my app Transaction did not involve any networking, I did use Core Data to store locally on the users phone.
Lastly, another tip I want to give you all is to not be afraid to take risks while making you application. Don't be afraid to try out different packages, syntax, features, or layouts. And absolutely do not forget to enjoy the process.
Step 9: Voila!
Eureka, you have just finished your very first very successful application!
Not sure what to do next? Here are a few possibilities:
Brand designing and icon generation
Self-Testing on Simulators
Beta-Testing by others
Submitting to the App Store / Google Play Store
The biggest room in the world is the room for improvement.
Phew! That was very long and exhausting, right? If you have made it this far, allow me to extend my sincere gratitude to you. I really hope you found my very first helpful, and if you did please do not forget to drop your precious likes and comments. Before I sign off, my final tip to you is: When developing always remain patient and keep trying, perseverance is the key to success!
Until Next Time :)