Cross-platform apps: Yay, or nay? It’s a question we often evaluate at Appster. While much has been written about choosing the right mobile platform for your product, there has yet to be a conclusive answer.
After all, it’s a complex decision to make. Each platform has its advantages and disadvantages – depending on your requirements, as well as the objectives of your business, the benefits of a particular platform may outweigh its downsides to present a compelling solution for your needs.
Below, I’ll dive into what cross-platform development means, and explain its pros and cons. Next, I’ll elaborate on five questions that’ll help you assess if cross-platform apps make sense for your business.
What is cross-platform mobile development?
Cross-platform mobile development refers to the development of apps that can be used on multiple mobile platforms, such as Android and iOS. Using cross-platform software, a single app source code is compiled into native code for different operating systems. This differs from native app development, where/whereby an app is developed for a specific platform.
Advantages of cross-platform mobile app development
1. Lower development costs and less time taken
This method creates one code base, thus reducing the complexity of having to manage multiple codebases, developer toolkits, languages and methodologies that native app development requires. You’ll likely require less manpower too, or be able to publish an app within a short timeframe with the same number of developers.
Additionally, by choosing the right tools and mapping out a thorough strategy for development, you’ll be able to reuse 75 percent of the original codebase, thereby cutting down on the time needed to develop your app.
2. Exposure to a larger user base
Being available across multiple mobile platforms ensures that you don’t wind up alienating a sizable user base by not serving all platforms equally.
3. Tap on the advantages that each cross-platform tool brings
- Native user experience:
Developers can take advantage of native UI toolkits to create an app that presents a familiar interface and “feels right” to users.
- Good match for large enterprises:
As Xamarin uses C# complemented with the .NET framework, it serves as a good match for large enterprises that utilize Microsoft tools or already have a team of C# or .NET developers in place.
- Widespread usage:
Want to make changes to an existing app? You can apply React Native UI components to the code without the need for rewriting. If your app is built using frameworks like Cordova or Ionic, the code can also be reused easily with a plugin.
Disadvantages of cross-platform mobile app development
1. User interface issues
As each platform has its own unique user interface elements, it can be a challenge meeting specific requirements for each platform, particularly if the user interface code is shared across the platforms.
Apple is known for having strict guidelines, so developers risk having their apps rejected when submitting their app to the App Store. And while certain tools enable developers to write user interface code specifically for each platform, the time taken for the process can eliminate the time saving benefits that cross-platform tools offer.
2. Lags behind in terms of implementing new features
A cross-platform tool may prevent you from implementing the latest iOS or Android updates, as third-party tools aren’t able to provide instantaneous support. A time lag will occur before new plugins or changes can be implemented.
3. Dealing with the disadvantages that each cross platform tool brings
- Larger app size:
Depending on its functions and level of complexity, Xamarin apps are generally larger than native apps. Here’s an example to illustrate the difference: on a Xamarin forum thread, developer VinirShah shared that a Xamarin app coded by his team occupied 3 MB, while a similar app written in Objective-C occupied just 172 KB. As such, Xamarin apps require additional optimisation to keep the file size reasonable.
- Small community:
The community of Xamarin developers is considerably smaller compared to that of iOS or Android developers, so you may find it more challenging when it comes to hiring experienced developers.
- Young ecosystem:
The young ecosystem of React Native means that the tool is constantly evolving, with library updates released just about every month. While this means that users are getting additional tools, they would also need to invest time and effort in studying the documentation to ensure that these tools work with previously created APIs.
In some instances, a lack of custom components may mean that developers need to build their own solution from ground up. This was a problem faced by the Netguru team – they had problems with making shadows work in their React Native app as the custom library was only available in beta version. As a result, they had to build the required module on their own.
Does my business need a cross-platform app?
Here are five questions to help you decide if cross-platform apps will be a good fit for your needs:
1. What’s my timeline?
The first step you’ll need to take is to map out your app development timeline. If you’re planning to release both the iOS and Android versions of an app, which will you launch first? And how much time do you have until you release the other version?
Once you have your timeline mapped out, you’ll have a clearer idea of which method will better suit your needs.
For example, if you need to release an iOS app on a tight deadline, and intend to launch an Android version at a later stage, native app development may be a more suitable option. Swift, the programming language developed by Apple is one of the newest programming languages, and it’s designed to be easy to use. Developers can see what they’re creating with the code as they write it, and the language incorporates common words and phrases like “add” and “remove”. As such, it’s much faster to develop in.
In a reverse scenario – where you need to launch the Android version within a short span of time – cross-platform development may be a better option. That’s because Java, the default language for Android development is more complex, and may present greater difficulties.
2. What’s my budget?
When you’re deciding between platforms, you’ll need to look beyond the current costs of the project, and instead, evaluate the total cost over time.
While cross-platform development is typically cheaper, it may incur additional costs gradually. As cross-platform frameworks are newer, hiring or putting together a team of experienced developers may be costlier or take a longer time. On the other hand, it’s comparatively easier to hire Java or Swift developers.
You’ll also need to assess the requirements of your app and business. For example, if you’re planning to release new features or implement changes on a continual basis, cross-platform development will create greater cost savings as you’ll only have to manage a single codebase.
3. What’s the intended feature set and scope of application?
If you’re creating a business around your mobile app, or intend to implement complex features or animations, going native is the clear winner. Native apps offer fast integration of new features, allow full access to a device’s services and features, automatic monitoring of the app’s performance and better performance with animations and rendering.
Companies that have gone native in a bid to improve their app performance include Facebook and LinkedIn. Facebook encountered issues such as the lack of smooth scrolling, delays in image loading time and broken AppCache, while LinkedIn wanted to resolve problems such as the lack of memory space for users, absence of debugger and performance tools, as well as animation performance issues.
But what if a simple app that requires little customisation will fit the bill? In this case, opting for cross-platform development is a good start. Some examples include to-do list app Tasky, consumer banking mobile app Burgan Bank and expenses management tool Captio.
4. Who is my target audience, and where are they at?
If you’re targeting users across multiple platforms and devices, a cross-platform app is likely the best option.
This was the case for international express transport company MRW. With more than 10,000 employees over 1,300 franchises, the organization needed an app that worked across multiple platforms to facilitate delivery coordination. While it had started off with a native app for Windows, MRW switched to using Xamarin so it could build for Android and iOS while keeping within time and budget constraints.
5. Does cross-platform development fit in with my overall digital strategy?
Start off by reviewing your current digital strategy and resources. If you‘ve built a responsive website with complex functionalities and interactivity, it may require extensive resources to adapt these features for a cross-platform app that will match up to the demands of your users.
On the other hand, if you don’t yet have a website, cross-platform develop may present greater cost savings by enabling developers to build a mobile, desktop and website app using a single codebase.