What is Cross Platform App Development?
The mobile ecosystem in 2016 is split predominantly between Android and Apple. Traditionally, if you wanted a mobile app on both platforms you would need to have the technical expertise, manpower and large budgets required to develop two completely separate applications on both platforms.
With “Cross Platform” mobile app development, you write the code once and in theory the application will run on multiple mobile device platforms. However, that’s just the theory and as we will see here, there is no silver bullet. Each cross platform app technology has its own pros and cons.
Determining the right mobile app development solution to employ for your new business app depends upon a multitude of factors.
Why Cross Platform?
Before we go into further detail for the multi platform mobile development options you currently have available, let’s first consider why you might even want go down the cross platform route:
Save Money and Time!
All the pros for cross platform app development essentially come down to saving you money and time over the traditional native mobile app development route:
- Faster to develop as you are writing code that runs on all platforms as opposed to separate code for each individual platform that has to be supported.
- A single developer/team can be responsible for the complete app, no longer is it a team for Android and a team for iOS.
- One codebase that runs on all platforms.
- Easier to maintain and support. Any updates or code fixes are automatically done on all platforms.
Of course these cost savings come at a price with some cross platform tools having more ‘of a price’ than others.
Broadly speaking, for multi-platform mobile app development, you have mainly 3 choices:
- A compile time solution such as Xamarin
- A hybrid solution such as React Native
Each of these three different solutions also comes with their own unique set of advantages and disadvantages. Let’s now take a more detailed look into the pros and cons of the three different platforms.
Xamarin – Compile Time Solution
- Microsoft owned platform that uses the extensive C# codebase
- Native user interfaces on every mobile device platform the app is deployed to
- Able to benefit from both the large .NET/C# and the growing Xamarin communities.
- Share the app code across iOS, Android and Windows platforms.
- Add components to apps directly from the IDE, including controls, web service APIs, etc.
- Add security features such as authentication and encryption.
- Native look and feel. Users will not be able to tell the difference to a native app or an app developed
- 100% API coverage for both Android and iOS. Meaning any functionality offered by the underlying platform is available to Xamarin
- “Write Once Run (Natively) Anywhere” – Possible to achieve nearly 100% code re-use when writing an app using Xamarin Forms.
- Extensibility. Possible to write and re-use existing objective-c or java code
- The app has to include its own run-time. This leads to a small performance hit as well as a slight increase in app package size.
- Developers need to have knowledge about the Android and iOS platform specifics, as far as the user interface is concerned. Most platform specific features, like camera access, sensors, geo positioning, etc. are abstracted behind a unified API, but this is not true for the user interface.
- Time to compile and test is slower due to a slightly more complicated build and deployment process.
Cordova – Web Based Solutions
Various UI frameworks built on top of Cordova are available. Some of most noticeable ones include:
- Easy to get started
- Easy barrier to entry, no need for developers to know the platform(s) intricacies
- Time to compile and test is usually fast, so apps are quick to develop and test
- Able to update your apps live, there’s no need to re-submit them to app stores
- Single code base to develop and maintain
- Good platform support – Android, iOS, Windows, Blackberry, Ubuntu, Firefox, LGwebOS, FireOS all supported
- Poor performance – Application is running in web view making it less performant than native applications
- Limited API depending on the framework chosen
- User interface can be slow and sluggish
- Multithreading is hard to get right
- Difficult and time consuming to get the app looking truly native.
React Native – Hybrid Solution
- Better performance than web based solutions
- Large set react native components available, although still not 100% native UI coverage.
- Native look and feel. Apps will look and behave exactly like a native app
- Quick to develop and test with features such as hot reloading. This allows developers to make a change and almost immediately see any changes
- Extensibility. If the standard components don’t offer the required functionality its possible to write or re-use existing objective-c or java code with the use of Native modules
- Not all UI controls are available although coverage is getting better
- No “Write once run anywhere” so separate UI code has to be written for each supported platform.
- Writing native modules requires native Android (Java) or iOS (objective c) development expertise.
- Immature technology. Android support only available from September 2015
Thumbmunkeys Specialise in Xamarin!
At Thumbmunkeys we excel in cross platform development and have years of experience helping many businesses to realise the benefits a multi-platform mobile application can bring.
After in-depth research and testing we settled on Xamarin as our framework of choice due to the extensive C# codebase available, full backing from Microsoft and a larger and faster growing community than other frameworks.
Contact us today to discuss how cross platform mobile apps could transform, streamline and modernise your business.