Check out this image. It’s really interesting because it visual explains the pros and cons with going native and having a cross platform app built. What is interesting is the definition of cross platform app here because it is referring to a cross platform app that isn’t native (but is it possible to have a cross platform app native).
I’ve recently been asked what all this means by my clients so I am going to try to explain this as actually the definition of cross platform is misleading and unobvious, especially in this example. Let’s start by redefining the terms so you know what I am referring to in this context to help us understand what we mean by all these words!
Defining the words
“Native” refers to origin, and association with it’s place of birth (See image displayed). In the context of an App this means that it didn’t start in a foreign environment and then come to exist as a foreigner in the native platform. When an app is native it uses only the components that existed in the beginning to exist.
Then we have “Cross Platform” well here is where it becomes interesting, because you could easily make some inaccurate assumptions as described in the Costing graph displayed. You have to look carefully at the full wording. It says Cross Platform Mobile Website with Native Shell, you could easily decide from this that cross platform = not native, but this is not always the case.
Understanding the words
I will now try to explain why understanding all this is critical when you’re having an App developed. Because you can see great sways in costs (as displayed in the graph) which need some justification so you can best decide how you might achieve the app you are expecting to achieve.
I know that two of our main competitors (not mentioning any names) use the first and second approaches shown here respectively. On one side you have the expensive native app route where you have to write the app the number of platforms you want it on and secondly you have the cheaper mobile website in a shell route where you can write the code once for all platforms. At AgileAppCo. we use something entirely different.
We use Xamarin and Xamarin is utterly unique in that it is a mixture of the first two approaches. It is completely native but it is also cross platform. So by saying this I am not necessarily redefining the statement “Cross Platform Mobile Website in a Native Shell”, I am simply separating it in to two further categories. “Cross Platform” and “Mobile Website in a Native Shell”. So let’s go on to talk about the cost.
Value for Money
So now we have 3 development approaches let’s look at the value for money for each one. We will attempt to weigh up the value by 3 factors.
- Code Consistency, Efficiency and Integrity
- User Experience
- Development Cost
1. The following graphs help to look at these three factors, and as you can see in a native route written multiple times because the code has to be written as many number of platforms you write on, there is poor reusability of code, which means there is less consistency, poor efficiency which leads to less integrity. So Xamarin Cross Platform and Native Shell options win here.
2. User Experience is an issue for “website in a native shell” approach, because you just don’t get the responsiveness you might expect. So the winners are Xamarin Cross Platform and Native because they both end up exactly the same, using all the same native components.
3. Development Cost, the winner here is the website in a shell, because the development methods are the cheapest available. Next is the Xamarin route, this is cheaper than the “write for all platforms” route but more expensive than the “website in a native shell” route because there is a cost to Xamarin which comes from the constant work they have to do to ensure that every new native feature is available to Xamarin users by only writing it in one language. Effectively rather than having to write the app multiple times, Xamarin do the work and provide a unified way for not just one app but every app being developed to have access to this functionality. Then we have the write for each platform route which is the most expensive because it has to be written multiple times.
The overall winner (in our opinion) Xamarin as shown visually by the following graph.
Image from http://www.whatech.com/mobile-apps/blog/37150-choose-wisely-cross-platform-or-a-native-app-mobile-development