I have been working in the mobile space for a few years now and have really enjoyed building mobile apps because they are fun to build, challenging and keep you on your toes.
Wait a minute - I thought the article title said they are difficult to build
Don't get me wrong fun to build does not mean not difficult. A lot of friends when they hear I build mobile apps will eventually come up with a mobile app idea that almost always is the "UBER of xyz" and want to see if I can build the app and they can market the app and eventually we will all be $$ RICH $$
I used to think it was that easy and while I have enjoyed building mobile apps (mostly for businesses) I have not made a million dollars off any app.
From experience I have narrowed it down to 7 reasons why mobile apps are difficult and they are the following:
1. The platforms
The platforms (iOS/Android/Windows) are different and made by different companies - meaning no standard way of doing the same thing.
Each vendor is on a quest to be number one in the industry; they want the ave most market share and they do different things to differentiate themselves from each other - this means they ultimately come up with different ways of doing the same things.
Why is this difficult?
Because most businesses don't just want to release an app in one store - eg iOS only. They want their apps to be available across all platforms and this means you have to hire a developer well versed in each of the different platforms.
2. The languages
Each platform is written in a different programming language and uses different software tools
Platform | Language | Tool/IDE |
---|---|---|
iOS | Objective C / Swift | XCode |
Android | Java / Android SDK | Android Studio / Eclipse |
Windows Phone | C# / VB.NET | Visual Studio |
Why is this difficult?
To be able to develop for all these platforms and languages you need to find a developer that is hopefully proficient in all the languages listed above and the tools used to develop the apps
3. The updates
Each platform is constantly being updated and at a ridiculous pace. See some of the latest features in recent releases.
Platform | Version | What's New |
---|---|---|
iOS | iOS 8 | App Extensions, Touch ID, |
iOS | iOS 9 | 3D Touch, Multitasking for iPad |
Android | Lollipop | Material Design, Push Notification changes, New controls |
Android | Marshmallow | Fingerprint sensors, Runtime permissions, Direct Share, App Linking |
Why is this difficult?
You can't build your app and leave it alone and expect it to work or be current. In fact most apps have to be updated the minute a vendor provides a new update or risk the chance that their apps are no longer current and in some cases even stop functioning all together.
4. The devices
There used to be a time where there was only 1 size for an iPhone but even today we have the
- 4S
- 5/5S
- 6/6S
- 6 Plus/6S Plus
- iPad Mini, iPad Retina, iPad Pro
- and don't get me started on the 10,000+ variations of Android devices.
Most customers initially don't think there should be much difference between device formats but can you imagine the same app you have on a 3.5 inch iPhone 4S is the same app you will use on an 12.9 inch iPad Pro.
Obviously you have to build different user interfaces to make the most of all that extra space you have.
Why is this difficult?
It means your 1 app is really a number of apps as you tweak your UI for the different size screens, device features (some have data some are WiFi only; some have high resolution cameras and some not so good, etc)
Oh and did I mention the Apple Watch, Android Wear, Stencil support?
5. The development approaches
There are too many ways to build an app - each has their pros/cons and you have to weigh the benefits/disadvantages to make sure the approach works in your favor.
- We have the Native approaches - Xcode, Android Studio, Visual Studio
- We have 3rd party Native approaches - (my personal favorite) Xamarin , Appcelerator
- We have HTML 5/Hybrid frameworks - PhoneGap, KendoUI, jQuery Mobile
- We have new up and coming frameworks like Facebook React Native
Too many options - Which one to use?
Why is this difficult?
There are so many approaches and a lot of misinformation on the web. Each developer camp has their preferences and the languages they are comfortable with and so ultimately you ask 10 developers and you will get 10 different answers.
6. The money
We all hear of the Angry Birds or the WhatsApps and we hear ridiculous sums of money and believe it is that easy to make an app and generate massive revenue streams. The reality is that the majority of indie app developers make less than $500 per month. Most apps rely on fixed pricing (eg $0.99 per app); some use in-app purchasing and others rely on ads. Consumers are so used to really cheap software that in most cases they expect apps to be dirt cheap - try selling an app for $99 and see how many downloads you get.
Why is this difficult?
You have to get your business model down - otherwise you will simply just be developing an app for the sake of development and not to make a living from it.
7. The giants
The most used apps are by the giants in the software industry - these are your Facebooks, Amazon's, Netflixs, YouTubes, etc. These apps are very well polished and developed by really huge teams. Consumers are used to the polish and fantastic user interfaces and because they make all the features work so well they expect the same caliber from your regular old app created by a 2 person team that has to develop, test, market and support the app.
Why is this difficult?
When you build your app you often want it to be as good as the giant's but oftentimes you don't have the resources of the giants.
Conclusion - Mobile apps are difficult
I hope the above gives you a better understanding of why mobile apps are difficult to build.
I also hope it does not discourage you from building your app but just know it is not a walk in the park.
If you need expert guidance on building your app please contact me and I will be glad to walk you through the process and provide you with a realistic quote.