How to make an app?

How to make an app?

How to make an app? Lessons learned after running a software company for 13 years.

You got it! Do you want to do something big? Have an excellent idea for the next billion-dollar app? But how to create an app?

This article will detail the lessons learned during our 13-year entrepreneur journey running a software development company and creating hundreds of mobile apps. We’ll reveal the hidden secrets of how to bring your ideas to life. We will provide practical steps based on our own experience making mobile apps and share some tips that worked well for us. Here are the 13 steps to building a mobile app.

  1. Write down your high-level idea
  2. Choose either Android or iOS
  3. Wireframe, mockup, and prototype your app
  4. Collect feedback from customers
  5. Create your app backend
  6. Code your app frontend
  7. Create your app landing page
  8. Implement your app analytics dashboard
  9. Optimize your app for SEO
  10. Beta test your app with real users
  11. Publish your app
  12. Promote your app to reach the right users
  13. Improve your app with customer feedback

Mobile phone usage continues to grow, and these are the most accessible devices in the world. Believe it or not, there are more phones than people! While the number of people using mobile phones continues to rise, developing a mobile app, it’s not necessarily straightforward or cheap. This tutorial will provide you with simple steps that will speed up app development and save you money.

Here is a warm-up that will save you save thousands of dollars! All lessons learned the hard way, of course. ☹

Don’t start coding right away

We started to code our first product in 2004 without any customer validation. It took two years and, at the moment it was ready, there was no market need for the product. The product was great, had all the features you can imagine, but customers did not want it! Wow, we will never forget that and never make the same mistake again.

The first lesson we learned the hard way is that you should NOT start coding right away! Coding is the most expensive piece of the equation, and you will be able to have significant savings planning the north of the product. Finding developers is hard and costly! The hourly rate will vary from $25/hour in offshore development to $200/hour in Silicon Valley. So, make sure you write down your idea first, make some market research, design some sketches, and get feedback with potential customers before coding the app. This simple rule may save you thousands of dollars and possibly avoid you creating an app that nobody wants.

Please keep it simple and start with an MVP

The second thing to bear in mind is that the development cycle has to be small! An MVP — Minimum Viable Product should be ready in no more than three months. I know what you are thinking: “My app has all these features and it’s impossible to have it ready in 3 months”. Don’t fool yourself because before collecting customer feedback and real-life data you don’t know (you think you do, but you don’t) which features are required for a successful product. It may be an exception here for enterprise apps that in most cases demand complex legacy systems integrations, but even in this case, the initial development should be as simple as possible to meet minimum business/security requirements.

Get feedback from customers as early as possible

Validate the hypotheses of your app as soon as possible and at the lowest conceivable cost! Please don’t wait until your app is fully coded to show it to your to potential users. The reason for that is simple; if your hypotheses are not correct or need adjustment, you may not have more financial resources to continue the project. It’s much better to collect customer feedback in the early stages of the project and redefine app requirements based on real-life data. Doing this, you improve the likelihood of launching a successful application.

The 13 steps to make a mobile app

All right! Now, I will guide you step by step on how to make a successful app! Here is what you will find reading this article.

1. Write down your high-level idea

More than 5 thousand apps are released every single day on the app stores! So, you have to stand out in the crowd to be successful. The first step in developing a popular mobile app is to write down your high-level objectives. You must have a goal, or you will drift around and get nowhere.

Use the Business Model Canvas

Remember our company in 2004? Our business plan had more than 100 pages and covered all possible scenarios. I do NOT recommend that! Move away from complicated and broad business plans! Time to market plays a vital role in mobile apps! A business plan will delay this process and not help you to achieve this goal. On top of that, most of the projections will be wrong.

An excellent way to develop your high-level plan is by using the business model canvas. This template will cover the most critical aspects of a business like value propositions, customer segments, revenue, and more. It’s possible to have a first version ready in a couple of hours, depending on your prior knowledge of the business.

Business Model Canvas

It would be best if you used this framework for the following reasons:

  • It’s fast and agile
  • It’s great to generate a collection of ideas
  • It helps to structure discussions
  • You can redo it and pivot the app as needed

Startup Owners Manual

Buy this book and use it to develop your business! It’s a checklist of how to create a successful company from scratch. It’s like a car manual, but for your company! It has almost 600 pages, and you will find all the answers there. Use it as a manual and not as a book to read during your vacations.

Startup Owners Manual

Have a budget

Make sure you define your budget to develop your mobile app! The amount you will spend needs to be precise since the project inception.

For example, let’s consider a budget of $25,000.

  • Total Budget: $25,000
  • Offshore Development Hourly Rate: $25.00
  • Total hours of coding: 1,000
  • Work hours/Day: 08
  • Business days/month: 22
  • Work hours/Month: 176
  • Quantity of developers: 2
  • Total hours/developer: 500
  • Months of work: 500/176 = 2.84

So, this simple example shows how expensive a software project can be! Even if we consider an offshore software development company at a rate as low as $25.00/hour, the budget of $25k will only allow two developers working on a project for less than three months. So, it’s fundamental to minimize the cost of each mistake you make! The budget can get out of control pretty quickly, and that is the reason I say it’s essential to make some validation before coding the application.

Developers vs. Software Development Company

That’s a difficult decision! Generally speaking, you should outsource development if the app is not part of your core business. For example, you have a business and want to create an app to control internal processes or any other aspect of the company that is not the core. Outsourcing would work better for this use case.

Find a software development company

If the app is your core business, the decision will be more complicated. In particular, in the US, it’s challenging to find developers and convince them to work for your company. Let’s consider you are a startup with few financial resources. Outsourcing would be an acceptable alternative until your business grows, and you have more compelling reasons (more clear vision, technical challenges, money) to persuade developers to work for you. Another path you can follow is to look for a technical co-founder, and he or she will be your first developer.

Flowchart Own Developer x Outsourcing

Will the app be your core business?

If the answer is NO. Outsourcing will make a lot of sense.

If the answer is YES. Make some additional questions.

Will you work full time on the project?

If the answer is NO. Outsourcing will make a lot of sense.

If the answer is YES. Make some additional questions.

Do you have funding or money to pay a developer for at least 1 year?

If the answer is NO. Two options, outsource or have a technical co-founder.

If the answer is YES. Two options, hire a developer or have a technical co-founder.

Consumer App x Business App

At this step, you need to define if you are going to target your app to consumers or businesses. There is no right or wrong, and it’s a matter of choice.

  • Free or Freemium
  • Low $ per user
  • Emotional design
  • High Churn
  • Large user base

Business Apps

  • Paid
  • High $ per account
  • More utilitarian and focus on simplifying business processes
  • Lower churn in comparison to consumer apps

Research competitors for your app

Here are some ways you can know more about your competitors:

  • Google search / Google trends
  • Reporting firms like Gartner/App Annie
  • Websites like Alexa / Similarweb
  • Use tools like SEM Rush / MOZ

2. Choose Android or iOS

Before moving to the next step, please choose one operating system to start. Even though, hybrid development makes it easier to create apps on both operating systems, selecting a single platform will simplify the design process, save you money, and you can easily add a new one in the future. Developing on both platforms at the same time will make your MVP more complex, increase costs, and delay customer understanding. Here is the worldwide market share between Android and iOS.

Market Share Android x iOS

Android

It has roughly 80% of the user base. Generally speaking, if you want to target a broader user base, you should start with Android. It’s also mainly used in emerging markets like South America and Asia.

iOS

On the other hand, iOS encompasses 20% of the user base. Generally speaking, it’s a better choice to reach more engaged users and with more earning power.

3. Wireframe & Mockup & Prototyping

First things, first! The wireframe is not the same thing as a mockup, and mockup is not prototyping!

  • The wireframe is a sketch of how the app is going to look like.
  • A mockup has animated pictures and colors.
  • A prototype allows the users to perform actions like pressing a button and interact with the app.

Here is an example of a wireframe, mockup, and prototype.

App Wireframe x Mockup x Prototype

Investing time on this step can save you time and money! Another significant reason to go through this step is that you are going to learn! You will gain clarity and speed up market validation!

The reasons you should design your application are:

  • It’s fun, and you will enjoy the process
  • It’s much faster to change design than changing code
  • Designer hours are usually less expensive than developer hours
  • You can do by yourself if you wish

There are several tools you can use for this purpose. Some examples here:

  • Sketch
  • Invision
  • Moqups

4. Get customer feedback

Now that you have your prototype ready, you can conduct the first round of customer feedback! Show it to friends and potential customers. Here some ways you can that:

  • Show the app to startups founders at coworking spaces
  • Please share it with family & friends
  • Go to meetup events
  • Show it to real customers
  • Advertise the product on Facebook, LinkedIn, and Twitter. You can get free credits for that.
  • Go to pitch competitions

Want to know more about customer feedback?

Read this article:

41 Ways to Get Customer Feedback

Watch this video (min 2:54):

Customer Feedback Video

Based on the feedback you receive, you need to review your high-level idea and prototypes. Run this loop until you are comfortable with the results and move to the next step.

5. App Backend

Now we are ready to start coding the app!

Mobile apps are like an iceberg! There is a piece the users can see and an unseen piece.

Users can see = frontend

Users can’t see = backend

Generally speaking, most of the development will concentrate on the backend. I say that because the backend will run most of the business rules, store/retrieve data, and generate the APIs.

Fronted x Backend

There are two main paths to create a backend:

  • Use a backend platform
  • Code a custom backend from scratch

BaaS — Backend as a Service Platforms

A great way to speed up backend creation is to use platforms to accelerate development. Using a backend service, you will be able to automate repetitive tasks like authentication, social login, data backup, and others. The main benefits of using a backend as service are:

Let’s take, for example, a dating app. Here is how much you can save using backend service.

Social Integration

Setup Time: 16 hours

Development Time: 16 Hours

Cost/Hour: $25

Total Cost: $800

Money Save with backend service: $800

GPS & GeoFences

Setup Time: 08 hours

Development Time: 80 Hours

Cost/Hour: $25

Total Cost: $2,200

Money Save with backend service: $2,200

Send Push Notifications

Setup Time: 40 hours

Development Time: 480 hours

Cost/Hour: $25

Total Cost: $13,000

Money Save with backend service: $13,000

So, reducing total project costs and faster time to market are two compelling reasons to a backend as a service platform.

Here are some options you can start:

  • Back4app (That’s our company, please try it first!)
  • Parse
  • Firebase

How to make your app GDPR compliant

Another consideration you need to bear in mind is how to create a GDPR compliant app. If your app is going to store data from EU users, you must comply with GDPR. Backend services will help you to do that and speed up the entire process. Generally speaking, a backend service will provide you with a DPA — Data Processing Addendum and will act as the data processor. The app owner will act as a data controller. The advantages of using a backend as service for GDPR are:

  • The app owner will act as Data Controller
  • Outsource Data Processor responsibilities to the backend service
  • Preconfigured Security/Privacy settings on the server side

For example, at Back4app, we allocated most of our engineering team for around 60 days to redefine the backend structure to comply with GDPR requirements. So, it’s possible to do it by yourself, but the time & effort required will be substantial. It’s not an easy task, and in particular, for small projects, it will be very hard this investment to pay off. You can download an example of DPA below:

Download DPA Example Here

Custom Backend

The main advantage of a custom backend is the flexibility it provides. The downside is the higher cost in comparison to a backend service and longer development time until you launch your MVP.

If you decide to choose this path, here are some frequently used programming languages:

  • Node.JS — Some famous projects are, LinkedIn, Netflix, Uber
  • Python — Some well-known companies using are Instagram, Spotify, Dropbox
  • Ruby on Rails — Some great examples are Airbnb, Shopify, Bloomberg

6. App Frontend

The frontend of the application plays a critical piece on the success of your app! A successful app requires a functional, clean, and attractive appeal to raise interest! The first choice you will face is that if you are going to develop a Native, Web, or Hybrid mobile app.

Native apps work on the devices OSs and require full access to hardware and functionally. The main benefits of native apps are the speed; they work offline and have the best look, and feel. Web apps do not have access to the hardware and have more limited functionality. The main benefits are the fast time to market, low development cost, and there is no requirement for download. Hybrid apps have a web view that runs inside the native app. This image is helpful to highlight the differences.

Web App x Native App x Hybrid App

Web Apps

Advantages

  • Fast time to market
  • Less expensive
  • Updates don’t require new app store review

Disadvantages

  • User experience is not the same as a native app
  • Slower and less resourceful
  • A browser it’s required to open the app

Native Apps

Advantages

  • Best performance
  • Superior user experience
  • Development flexibility

Disadvantages

  • More expensive option
  • More complex to maintain and upgrade
  • Requires two separate code repositories

Hybrid Apps

Advantages

  • Single codebase, and less expensive than native
  • Similar user experience as native apps
  • There is no need for a browser

Disadvantages

  • Slower than native apps
  • You need a third party platform to code
  • Bug fixing may be more difficult

Generally speaking, to develop an MVP I would go for hybrid development for the following reasons:

  • It’s easier to standardize development for Android/iOS
  • Less expensive in comparison to pure native
  • The UX is superior to web apps and will work offline

There are plenty of options in terms of the technology stack you can use to develop the application frontend. Here are some options:

  • Reactive Native — Open source stack supported by Facebook
  • Xamarim — Microsoft company
  • Ionic Framework — App development platform for web developers
  • Xcode and Swift for iOS native
  • Android Studio and Java for Android native

React Native

Advantages

Cross-platform, you don’t misuse time recompiling, and used by large players like Instagram, Wallmart, etc.

Disadvantages

Not clear the long term promise from Facebook to keep the platform.

Xamarim

Advantages

Cross-platform, supported by Microsoft, near to native app performance.

Disadvantages

Limited outside coding support, UI development is time-consuming.

Ionic

Advantages

Quick development time compared to native, plenty of UI components, and plugins available.

Disadvantages

Debugging is challenging, and builds can break.

Xcode and Swift for iOS native

Advantages

Rapid development, swift apps are easy to scale, safety, performance.

Disadvantages

Hard to find developers (usually very expensive), poor interoperability with other tools, lack of support for legacy apps.

Java and Android Studio for Android native

Advantages

Performance, more talent pool available, hardware independence, instant apps.

Disadvantages

Multiple device screens and security issues.

7. Landing Page

Producing an app LP will enable you to target your audience, offer them something of value, and transform a higher percentage of your visitors into application downloads, while also obtaining data about who they are and what they’ve converted on. Landing pages are also relevant because they increase your credibility and strengthen your brand. There are lots of tools that can help you to create a landing page. I will list 3:

  • Wix Landing Pages
  • Mailchimp Landing Pages
  • KickoffLabs

8. Mobile Analytics

If You Can’t Measure It, You Can’t Improve It. So, you have to monitor your mobile app! Mobile app analytics is indispensable for several reasons. It provides you clarity about how customers are using your application, which components of the app they interact with, and what actions they do within the app.

You can then use these insights to create an execution plan to improve your product further. For example, adding new features, or refining existing ones in a way that would make the users lives easier, or removing elements that the customers don’t seem to use.

App analytics will also show if you are achieving your goals, whether it’s the number of downloads, revenue, or any other KPI that is important for your business. Real-life data is the best way to optimize your app.

Here are some tools that will help you:

  • Mixpanel
  • App Annie
  • Google Analytics for mobile

9. Test your app

A well-tested mobile app you will increase your review ratings and customer satisfaction. Invest time on this step, and you will get valuable referrals and grow the download rate. Here is some necessary testing you should do before publishing your app:

  • Functional Testing — Does the app work as expected?
  • Usability Testing — Is your app easy to use?
  • User Interface Testing — Check elements of the screen
  • Performance Testing — Is your application stable and fast?
  • Compatibility Testing — Screen resolution, orientation, hardware, etc

10. Optimize your App SEO

Most people miss this step! There is too much competition in the app stores, and users need to find you quickly. An excellent way to do that is by optimizing your app and having a good SEO (ASO) ranking. Several factors will influence your ranking and are detailed below:

  • App Title
  • Keywords
  • Quality backlinks

As soon as your app is published, your Reviews & Ratings and the number of downloads will also influence the SEO. So, make sure your early users are delighted, and it will help you to grow.

Here are some platforms that can help you with app store optimization:

  • AppRadar
  • Gummicube
  • Rankmyapp

11. Launch your app

Now you are almost there! Are you inspired?

Legal Aspects

Before you launch, please make sure you have the Terms of Use and Privacy Policy prepared. In particular, in the USA, lawyers are costly! You should budget at least $5,000 if you use a law firm. Another alternative is to purchase a template and adapt it.

Publish the App

The last step is to publish your app in the stores!

The publishing process it’s much more relaxed and straightforward with Google Play in comparison to Apple Store. The differences are listed below:

Google Play Store

  • Create a Developer Account
  • Pay a $25 one-time registration fee
  • You can publish as many apps as you wish
  • Add App Title & Description
  • Add Screen Shots
  • Specify content rating
  • Select app category
  • Upload SDK
  • Add pricing
  • Google conducts almost no curatorship (automated review process)
  • The app is published in less than 3 hours

Apple Store

  • Create a Developer Account
  • Pay a $99/year subscription fee
  • Pass on App Store Guidelines
  • Test and ensure there no bugs or crashes
  • Upload your app
  • Submit for official review (manual review process)
  • The approval can take up to 2 days or more

12. Promote your app

Now that you worked hard to build your app, please make sure you advertise it! Here are some useful tips:

  • Start a blog
  • Use LinkedIn, Facebook, Twitter, and other social media
  • Create a video for your app
  • Answer questions on Quora and Reddit
  • Create a Slideshare presentation
  • Post a job on Indeed

For a complete list, don’t forget to read: 65 Simple Ways Promote Your App

13. Get customer feedback

This step never ends! The more data and understanding of your users you have, the better decisions you can take for the future of your app. There is no magic pill, and to increase your app usage, you will need to work hard and have a regular monitoring routine! Getting customer feedback has to be a part of your daily routine! Let’s suppose you invest 1 hour per day getting customer feedback, imagine how much you can learn after 365 days. It’s essential to obtain quantitative and qualitative data about your users.

How to get app users quantitative data?

Use analytics tools like Google Analytics, Mix Panel, App Annie

How to get app users qualitative data?

  • Make surveys using Typeform or SurveyMonkey
  • Send emails to your customers
  • Schedule calls with your users

One action I suggest you do is to create a simple excel spreadsheet and prioritize the improvements based on the collected data. Try to find low hanging fruits and categorize the upgrades as follows:

  • Bugs and clear mistakes
  • Easy fixes
  • More complex improvements

Conclusion

Bringing your app idea to life, it’s not an easy task! You need to organize yourself, allocate time, and financial resources to start a mobile app project. Before coding the app, please make sure you create high-level specifications, design the application, and talk to customers. As soon as you are comfortable that there is market demand for your product, choose one operating system, and start developing your MVP. Test your app with real users and optimize your SEO before launching. Once you are online, advertise your product, and interact with your users as much as you can. The better you understand them, the more successful your app will be.

So, what do you think about the results we attained? Has it helped you figure out how to create a mobile app?

If you would like to contribute to this article, please email me at , and I will be happy to include your comments.

Originally published at How to Make an App on July, 11, 2019.

Originally published at blog.back4app.com on July 11, 2019.