How to Approach Mobile App Development

By Nadia Minaev, CEO & Founder, Farm Finder

You Need A Mobile App For Your Business. Now What?

“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.

Mobile apps are a great way to attract more users to your business, create more traction or even to build your entire business model based on a 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.

This is why I decided to take my time to help people answer some of the questions related to a 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 decision to build a mobile app. The first scenario is when a company already has a website and a business model built around this web site. 

The second scenario is when a company builds an app and the 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:

1. Identifying the Need

The first question you should answer is: “ What are the business goals of this app?” Is it to enhance customer engagement, improve brand recognition, improve value proposition, present another avenue for sales, implement an entire business model via the app?

Depending on these goals you might consider different types of applications:

  • An app mirroring your web site.

There are definite advantages of building a mobile app that fully mirrors your existing web site, even if it is just a repetition of all the features you already have there. Websites, even the responsive ones, are not built with a small mobile screen in mind. Which makes the whole experience of using these web sites on mobile devices a very unfriendly one. By creating a mobile app you doubtless improve users experience. However, considering the cost of re-creating your entire business in a mobile version, the most cost effective solution still might be making your web site responsive and live with it until you have the budget to build an app.

  • Partial mirroring.

Instead of re-creating your entire web site you might consider to build an app that features only those parts that make more sense on mobile devices. By doing this you improve users experience significantly.

  • Mobile only features.     

Another reason for building a mobile app is to use features or experiences which are not available in good old web browsers. Good examples of such features are push notifications, immediate access to camera, video and audio recording, location services and a general idea of having your phone in your pocket all the time. Having 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 avery big and complex app and not building an app at all.

  • Mobile first.

“Mobile first” paradigm means that you do not build a web site 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 type. Doing it myself, and by     myself I mean – doing it 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 this app – well … it is a startup.

2. User Requirements

After identifying your business goals and the type of an application you want to build, 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 web site and has existing customers you might be well aware about their needs. Or not… In which case just go out there and talk to them. Definitely talk to potential customers if you are building an app from scratch. This way you can avoid building something nobody needs.

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

3. Putting A Team Together

After you have an idea 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) and somebody to coordinate all activities involved in application development process, project manager of a kind. Some of these roles could be shared by the same person. But they definitely need to be fulfilled to go forward with your project.

4. 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 MVP[1]. 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 into the 2nd, 3rd and so on versions.

5. Design Phase

During this phase 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 front-end, the back-end, the payment system, the user management system and other parts that may vary depending on the app functionality.

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

  • as of January 2017, iOS has about 18% market share worldwide, Android- 81%[2];
  • iOS is more popular in the US, while Android leads in Europe, Asia, Africa and South America[3]. It means you should consider your target demographic when making a decision on what platform to build the app;

On the other side:

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

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

There exists, however, another option. Developing native application for both iOS and Android, means developing two completely different applications, i.e. twice or more expenses and time.  To avoid double 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 launch it more or less simultaneously on both platforms. The most popular cross-platforms 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 as a valid choice. Make sure your architect evaluates several different options to help you come up with the most cost effective solution.

6. Development and QA[4]

After UI is designed and architecture is built you can start the development process.  This phase includes front-end and back-end development, i.e. building the UI, the server side logic, the users management system, customization of the user experience, building the database, the payment system and any other systems that support your app 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 it is a whole separate story.

7. Going Live

When your development is coming to an end, it is time for your team to take steps necessary for going live. These include deciding where to host your back-end (again, make the architect on your team to do the research since there are a lot of different options and you want to make sure you choose the one that suits you best), going through all the activities on publish check list (which are different for iOS and Android), submitting the app to App Store. Publish list includes tasks like creating release version of the app, in some cases creating landing page etc. 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 4 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. To keep your users engaged, to make sure your app runs smoothly, without major problems and is up to date with ever changing market landscape, plan to release 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 1 update a month.

Estimated Cost of Building and Maintaining a Mobile App

The cost of building an app vary substantially depending on different factors: application complexity, features, platform, 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 3 categories: simple standalone apps, i.e. apps that do not require a back-end, more complex apps with back-end and big enterprise apps. Apps with back-end cost at least twice than standalone apps because they require server side development. It’s worth saying though that simple standalone apps are almost non-existent now. And even a standalone app could be very reach in terms of features and UI. and quite complicated to develop.

Another factor that affects the cost significantly is who is doing the job: offshore team, freelancer or an agency. Offshore team is being the less expensive option, an agency is the most expensive one. Except for the cost considerations there are other pros and cons to take into account when hiring your developers. These pros and cons needs tobe discussed separately since there is not unique answer to this question.  However main challenges of working with offshore team is usually caused by the time and cultural differences. To get good results from both offshore teams and freelancers you have to be ready to manage them very closely. But at the end of the day 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[5]

IOS 

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

Complexapps: $20,000 - $100,000

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

Android

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

Complexapps: $45,000 - $200,000

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

Cross-platform[6]

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 the back-end hosting and app maintenance.

Back-End Hosting

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

Maintenance and Future 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, infrastructure upgrades. Costs might vary between $200 and $2,000 per month.

Conclusions

Because mobile application development is, generally speaking, available to anybody and mobile applications look “cute and small”, many people mistakenly believe that building a mobile app is quick, simple and cheap affair. This blog post is an attempt to give you an overview in a glance of how the process of building a mobile app really looks like. On the 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 was not to discourage you, but to help you to build realistic expectations and, by doing this, to increase your chances to build a successful app. Good luck!

[1]    Minimal Viable Product -  development technique in which a new product or website is developed with sufficient features to satisfy early adopters. The final, complete set of features is only designed and developed after considering feedback from the product's initial users.

[2]    https://9to5mac.com/2017/02/15/samsung-loses-market-share-to-apple-in-q4-2016/

[3]    https://9to5mac.com/2017/01/11/ios-market-share-kantar/, http://www.latinpost.com/articles/7683/20140221/ios-vs-android-windows-phone-market-share-latin-america-mexico-salvador.htm; http://gs.statcounter.com/os-market-share/all/africa

[4]    Quality assurance or testing

[5]    https://www.entrepreneur.com/article/288027, https://savvyapps.com/blog/how-much-does-app-cost-massive-review-pricing-budget-considerations

[6]    http://howmuchforionicapp.inmagik.com/