“We have an iOS app, and now we want to add an additional Android app. That must be a pretty small task, right?”
The situation described above is something a lot of companies can nod in confirmation with.
So in this post we will look into that. How much extra time (and money) does it take to make the extra Android app?
This post is also relevant for the opposite situation. Let us say you started with an Android app instead of iOS, and now need the iOS app. The same information in this article is just as relevant.
Why adding an Android app might take more time than you think
When you made the first app you learned exactly how the app should look, work and be. You’ve been through all the design decisions, you’ve learned what features are important and the specifications are clear.
Now, simply copying this app for Android must be pretty simple, right?
Yes and no. It depends how the iOS app was made in the first place.
The main challenge is you have some nice logic in the first app. This logic might determine how things are shown, stored and done. This logic can sometimes be placed inside the actual app (this happens a lot because it’s quick to make).
But what happens if you then make an Android app: you need to copy this logic. And then when you later need to do a modification, you have to do it in multiple places.
Not only does it take a lot of time to develop the first time, the maintenance is very time consuming as well, in addition to being extremely likely to have errors.
Because of that, you normally would introduce a layer in between called an API.
An API for iOS and Android apps
What is an API in a sentence?
“(A)pplication (p)rogram (i)nterface” is a way for a program to communicate with other programs.
So if you make an API, you can let other programs (ie. apps and websites) communicate with it.
So instead of placing all the logic of the app inside the actual app, which means you cannot use it in other programs, you often make an API. The API is then a backend that both the iOS and Android app can use, in addition with a website.
If you take an app like Uber. Uber has a nice API that the individual apps (iOS, Android and so forth) can communicate with, meaning they only have to do all their logic in one place.
That is smart. It’s less error-prone. It’s faster. It’s less maintenance.
If the original app is not based on an API, you should always extract that logic into an API. If you don’t, a lot of time is spent on stupid work and lots of errors will occur.
Therefore, when you have to make a new Android app, you have to spend a bit of time to actually build the API in the first place.
Sometimes the developer has been smart and based the logic on an API. In that case, implementing the Android app is quite simple.
IF there is an underlying API, then building the new app is both quite fast and cheap. IF NOT, then it can take quite a lot of extra time because you need the underlying infrastructure first.