mobile app

How to Approach Mobile Application Development

5118 VIEWS

“I think I need a mobile app for my business.” As a mobile developer and entrepreneur, I’ve heard this statement countless times in the last several years.

To be sure, mobile apps are a great way to attract more users to your business and create more traction. You can even build your entire business model based on your mobile app. But before you jump head-first into the ordeal of building a mobile app, it is essential to understand what the process of building an app involves.

The process of developing a mobile app is a big investment. It is an expensive and long process. Therefore, anybody considering it should approach it carefully, estimate costs and resources, and plan ahead.

That is why I decided to take a bit of time to help answer some of the questions related to the decision to build a mobile app.

The Process of Developing a Mobile Application

There are a couple of different scenarios in the process of making the decision to build a mobile app.

The first scenario is when a company already has a website and a business model built around the website.

The second scenario is when a company builds an app and an entire business model around the app.

The process of building a mobile app in these two cases might be slightly different, but not by much, and it always involves the following phases:

Identifying the need

The first question you should answer is: “What are the business goals of this app?” Do you want to enhance customer engagement? Improve brand recognition? Improve value proposition? Present another avenue for sales? Or implement an entire business model via the app?

Depending on your goals, you might consider different types of applications.

1. An app mirroring your website

There are definite advantages to building a mobile app that fully mirrors your existing website (even if it is just a repetition of all the features you already have there). Websites, including the responsive ones, are not built with a small mobile screen in mind. Which makes the whole experience of many websites on mobile devices a very unfriendly one. By creating a mobile app in this case, you’ll improve your users’ experience. However, when considering the cost of recreating your entire business in a mobile version, the most cost-effective solution still might be making your website responsive and living with it until you have the budget to build an app.

2. Partial mirroring

Instead of recreating your entire website, you might consider building an app that features only those parts that make more sense on mobile devices. By doing this, you improve the user experience significantly.

3. Mobile-only features

Another reason for building a mobile app is the opportunity to offer features or experiences which are not available in web browsers. Good examples of such features are push notifications, immediate access to camera, video and audio recording, location services. Plus, you’re playing to the general idea of having a phone in your pocket all the time. With these in mind, you might consider building your app exclusively around these features.

Options 2 and 3 (or their combination) could be a nice compromise between building a very big and complex app and not building an app at all.

4. Mobile first

The “mobile first” paradigm means that you do not build a website at all. Instead, you build a mobile app from scratch and build your entire business model around the app.

This is the most expensive and most adventurous choice. Having done this myself (all by myself), I know exactly how challenging this journey is. Building a full-featured mobile app is a big project by itself. Pulling off an entire business based on the app—That’s a startup.

User requirements

After identifying your business goals and the type of application you want to build, the next step is gathering user requirements. At this point, you should connect with your users or potential customers to identify their problems and challenges, and select those that can be solved by a mobile app.

If your company already has a website and has existing customers, you might be well aware of their needs. (Hopefully you are.) Definitely talk to potential customers if you are building an app from scratch, so that you can avoid building something no one needs.

After identifying your customers’ needs, create a user requirements list. (At this point you might need to rethink your business goals, too). This step is extremely important, since your entire app’s feature set will be built based on this list.

Putting a team together

After you have an idea of what your app is going to be, start assembling your development team. The roles you will need on your team are: mobile architect, UI/UX designer, programmer, QA engineer (tester), someone to coordinate all activities involved in the application development process, and a project manager. Some of these roles could be shared by the same person. But they definitely need to be fulfilled to go forward with your project.

Identifying a feature set and a concept behind the app

Once you have your team and application requirements, your team will compile an application feature set based on the application requirements. Prioritize what features are more important. In case you are building a completely new app, select the set of features to be included in the MVP1. Don’t go all crazy about it. After all, the MVP is a minimal viable product. It should include just enough features to prove that your app could take off. If it goes well, you can include the rest in the second, third and future versions.

Design phase

During this phase, the UI designer and programmer will be working together to create a live prototype of the app. Once it is ready, it could be used to fine-tune the feature set.

At the same time, the architect will be working on building the infrastructure for the app. It includes identifying what tools and frameworks will be used to build the frontend, the backend, the payment system, the user management system, and other parts that may vary depending on the app’s functionality.

To decide what platform to target–iOS (iPhones and iPads), Android, or both, the following needs to be taken into consideration:

  • As of January 2017, iOS has about 18% market share worldwide. Android has 81%.
  • iOS is more popular in the US, while Android leads in Europe, Asia, Africa and South America. It means you should consider your target demographic when making a decision on platform.

On the other side:

  • iOS apps are cheaper and quicker to build.
  • Android apps take two or three times longer to build.
  • iOS users are more accustomed to paying for apps.

This is why, if the target demographic is located predominantly in the US, most people prefer to launch first on iOS. And then, only if the app is successful, they launch on Android.

There exists, however, another option. Developing native applications for both iOS and Android means developing two completely different applications, i.e. increased expenses and time. To avoid additional spending, an app can be built using a cross-platform framework. It will allow you to create one application that runs on both platforms, and you can launch it more or less simultaneously on both platforms. The most popular cross-platform frameworks today are React, Ionic, PhoneGap, Xamarin, and some others. They all have their pros and cons (which are subject to a separate discussion), but they definitely should not be dismissed. Make sure your architect evaluates several different options to help you come up with the most cost-effective solution.

Development and QA

After the UI is designed and the architecture is built, you can start the development process. This phase includes frontend and backend development—i.e. building the UI, the server-side logic, the user management system, customization of the user experience, plus building the database, the payment system, and any other systems that support your app’s functionality.

Testing should start as early as possible. It is an iterative process. After every testing cycle, there is a development cycle to fix issues found during the testing cycle. The earlier you catch issues, the easier it is to fix them. Once the application is stable enough, you might want to consider building an automated testing solution. (But that is a whole separate story.)

Going live

When your development is coming to an end, it is time for your team to take the steps necessary to go live. The steps include deciding where to host your backend. (Again, make sure the architect on your team does the research, since there are a lot of different options. You want to make sure you choose the one that suits you best.) Then, there’s going through all the activities on the Publish checklist (which differ for iOS and Android), and submitting the app to the App Store. The Publish list includes tasks like creating a release version of the app (in some cases, creating a landing page, etc). And the process of submitting to iTunes and Google Play are different. It could take several iterations, and anywhere from several days to a couple of weeks.

How Long Does It Take to Build an App?

It takes approximately 10 weeks to build a first version of a simple app (I discuss later in this post what “simple” means). It could take anywhere from four months to more than a year to build a complex app. This time includes planning, UI and infrastructure design, QA (testing), building cloud infrastructure, store publishing, etc.

Your work doesn’t end with the app launch. You need to keep your users engaged, and make sure your app runs smoothly, without major problems. You also want to make sure your app is up-to-date with the ever-changing market landscape. You’ll want to plan app updates. These updates will include bug fixes and new features. The more updates you release, the more engaged you keep your users. Plan to release at least one update a month.

Estimated Cost of Building and Maintaining a Mobile App

The cost of building an app can vary substantially depending on different factors: application complexity, features, platform, and who builds it. Therefore, it is nearly impossible to give an accurate estimate in a general case.

By complexity, apps can roughly be divided into three categories: simple standalone apps, i.e. apps that do not require backend, more complex apps with backend, and big enterprise apps. Apps with backend cost at least twice that of standalone apps because they require server-side development. It’s worth saying, however, that simple standalone apps are almost non-existent now. And even a standalone app could be very rich in terms of features and UI, and quite complicated to develop.

Another factor that affects the cost significantly is who is doing the job. You could choose an offshore team, a freelancer or an agency. An offshore team is the less expensive option, and an agency is the most expensive. Beyond the cost considerations, there are other pros and cons to take into account when hiring your developers. These pros and cons need to be discussed separately because there is not a unique answer to this question.

 

The main challenges of working with an offshore team are usually caused by time and cultural differences. To get good results from both offshore teams and freelancers, you have to be ready to manage them very closely if needed. It all comes down to the professionalism of the people you are working with. You could get great results working with a freelancer and horrible results working with an agency, and vice versa.

Development costs

IOS

Simple apps: $1,000 – $10,000

Complex apps: $20,000 – $100,000

Enterprise apps: $100,000 – $500,000

Android

Simple apps: $25,000 – $35,000

Complex apps: $45,000 – $200,000

Enterprise apps: $200,000 – $800,000

Cross-platform

Price for 2 platforms – iOS and Android

Simple apps: $5,000 – $35,000

Complex apps: $45,000 – $200,000

Enterprise apps: $200,000 – $800,000

It would be a mistake to think about app development expenses as a one-time cost. Even if you do not plan to develop new features for the app, you still should expect to have monthly expenses for backend hosting and app maintenance.

Backend hosting

After the app has been built in a development environment, to launch an app, the backend has to be moved to a cloud. Hosting backend in a cloud is associated with monthly costs, which vary depending on the type of backend, hosting provider, and the features and services you are using. That can be anywhere between $30 and $3,000 per month.

Maintenance and further development costs

If you are planning to release additional versions of your app after the initial launch, you can expect development costs to stay at more or less the same level as during the pre-launch period.

Even if you don’t plan to release additional versions, maintenance still will be necessary. Maintenance might include bug fixes, upgrades to newer versions of iOS and Android, fixing problematic usability issues, and infrastructure upgrades. Costs might vary between $200 and $2,000 per month.

Conclusion

Because mobile application development is, generally speaking, available to anyone, and mobile applications look “cute and small,” many people mistakenly believe that building a mobile app is a quick, simple and cheap affair. This blog post is an attempt to give you an overview of what building a mobile app really looks like. Contrary to what many people might think, building a mobile app is a serious engineering project, and to succeed in it, it should be treated as one. My goal is not to discourage you, but to help you to build realistic expectations and increase your chances of building a successful app. Good luck!


Nadia Minaev is very experienced software engineer. She has expertise in a number of technologies. Throughout her career she worked for such well known technology leaders as HP, Intel and others. Her current interests are in mobile development. She is a Founder of Alkon Technologies, software development company.


Discussion

Click on a tab to select how you'd like to leave your comment

Leave a Comment

Your email address will not be published. Required fields are marked *

Menu