“How Do You Make an App” – this search phrase occurs as one of the most popular questions generating traffic to our website, so I thought it could be worth to share a few tips about it.
Probably you would like to jump into the development process as soon as possible, but it’s crucial to get involved in a few stages before that. Using this approach, you can increase chances to build a successful digital product and to monetize your business as a result.
Empathize with the end-user
If you are an experienced in your industry then probably it’s easy for you to describe who is your customer, what’s the typical day of this person, how your customer interacts with technology, if he’s tech-savvy? Using this knowledge, you can get into your customers’ shoes, and it will be easier for you to build an app which your clients use every day. You can quickly write down all useful information using available online templates for End User Profile and Persona.
Define and prioritize your customers’ problems
Again and again, we can see a lot of issues in our industry and building our application we tend to solve all existing problems. If you have an unlimited budget and no deadline, then it’s okay, but probably you don’t. So what’s the solution for that? First of all, generate a list of all problems you see, you can ask your existing customers, friends or coworkers to join the brainstorm. After that, you can set priorities for all elements; you can do it by yourself or by involving other people to vote. Having prioritized list you can move to generate ideas on how to solve the problem. For this step you can use Trello or Miro to keep all information in one place.
Generate ideas to solve customers’ problems
At this stage, you should be able to describe your customer / end-user in details. After that, you should have a prioritized list of challenges that your customers will be grateful for solving. Based on this knowledge you can generate ideas to solve it. It’s essential to be open-minded at this stage. As people, we tend to focus on already generated ideas and we reject ideas which can change our previous vision or plan. Talk to your coworkers, clients, friends. Discuss with developers and designers about alternative ways to solve customers problems. Collecting the feedback you will learn a lot about different approaches, try to gather information about time and budget needed to for each solution.
App Prototype to validate the business assumptions
After you find a solution which fits your business plan you should try to prepare the app prototype to validate your idea as soon as possible, using a minimum budget. You can work with UX/UI designer to visualize a whole app using, for example, Adobe XD. After that, you should meet with your potential client and present your app. Another way is to share your prototype online on social media and collect feedback using for example typeform.com or Google Forms. Using this strategy, without spending a lot of money, you can learn a lot about your customers. Thanks to that in the next step you will avoid the situation when your app is released, but app users don’t want to use it.
Build the first version of your app (MVP)
Do your clients like your idea and prototype? Did you fill up your product backlog with new ideas, improvements and tweaks? Using this knowledge it’s time to build the real thing! For last years a lot of web and mobile libraries and frameworks have been created.
It’s smart to use available tools and not to reinvent the wheel.
Do you want to build a mobile app? Consider using cross-platform tools to build a mobile application for multiple platforms (Android, iOS). Take a look at React Native, Ionic or Flutter.
Do you want to build a web app? New frameworks are released every day. If your product is a small or mid-size application then you should consider focusing on one, full-stack approach. MEAN or LAMP stacks are one of the examples. In conclusion, it’s easier to build and maintain digital product when a whole development team uses only one programming language, but you should be aware there’s no, one single language that will be the best fit for all cases.
Most popular app modules
Auth – Register/Login
Do you want to allow users to sign up and sign in? You can use for example Firebase or Auth0! Using these solutions save a lot of time, and time is one of the most important things when we talk about startups and minimum viable products.
If your plan includes more than landing page or one-page website then you should think about how to manage and publish content describing your business and app. Clients like to know as much as possible about the app they use. It’s smart to show them all benefits before they sign up and download. You can use your website and social media as a platform for communication with your users. To publish your content easily you will need to use one of available Content Management Systems (CMS). For that, you can take a look at Ghost or WordPress.
Maps – Locations
Do you want to allow users to search for locations, venues, shops on a map? Use Google Maps API and Google Places API. These APIs can be easily integrated with many frameworks. In a few hours, you can get a basic app including map with pointers loaded from database or CSV file.
Checkout & Payments
If you want to charge users for access to your app you should consider different providers. From the business point of view, you should check fees, available markets/countries, payment channels (local banks, credit cards) and estimated cost of implementation.
You will find a lot of different solutions on the market. Some of them can be integrated in 1 day using available API and SDK and some takes weeks to test the first payment.
Stripe and Paypal / Braintree meet 90% of startups requirements in terms of the checkout process. You will get a convenient dashboard and advanced reporting tools and your development team will be happy to implement it because both tools are very well documented.
Back office & Administration panel
This element is tricky for MVP. We all want to have nice reports with all data, colourful charts, live chats, ticketing modules, but from my experience for most MVP apps simple admin panel with a few smart tables will be enough. At this stage try to find the easiest way to get what is really important. If you need reports – check if you need web panel for that or you can just implement daily reports with all data in the Excel sheet. Probably you will save tens of hours of development and spend that money on features which are more valuable for your customers.