Cross Platform Mobile Development in 2018: A Beginner's Guide
The mobile app market is ever-growing. By 2020, the mobile app market is expected to generate $189 billion. Reaching mobile users across operating systems like Android, iOS, or another operating system like Windows is critical.
Enter in cross-platform development, defined as using the same codebase across multiple OSs. Cross platform mobile development allows companies to leverage their resources by creating a single app that only requires minimal adjustments for every device.
For those new to cross-platform development, you may be thinking the following:
- What are the advantages of cross-platform development compared to native development?
- What do my developers do differently with a cross-platform development approach?
- Is cross-platform development the right choice for my app?
In this guide, we’ll cover everything you need to know about cross-platform mobile development. To start, we’ll cover the basics of mobile app development by:
- Discussing the approaches to cross-platform development
- Covering the pros and cons of the cross-platform approach
- Covering points to consider when deciding if cross-platform development is right for your app
The rest of this guide will cover the resources you need to get started with cross-platform development, including:
- Common cross-platform development languages and protocols
- Cross-platform development tools
Let’s get started.
Note: We build hybrid web and mobile apps for companies ranging from startups to Fortune 500 brands. If you’re looking for help building a hybrid app – Contact Us Today
What is cross-platform mobile development?
In a nutshell, cross-platform development is the creation of an app that’s compatible across all mobile devices (i.e. Android and iOS) using a single codebase.
Cross-platform development is possible for a couple of reasons:
- Backend servers handle the execution of application code, not the operating systems or devices themselves.
- Developers can use subroutines like application programming interfaces (APIs) to speak to multiple programming languages and OSs.
The two types of cross-platform mobile development, native and hybrid HTML5, take advantage of these reasons when developing apps.
Native Cross-Platform
Each mobile OS runs on its own software development kit (DSK) and tech stack. Android apps, for example, are programmed using Java. iOS apps, on the other hand, are programmed using Objective-C and Swift. Developers, however, can work around these differences by creating an API that acts as a middleman between the code base and the OS.
Native cross-platform development is accomplished by using a third-party vendor which provides an integrated development environment (IDE) specific to this type of programming.
Hybrid HTML5
Since application code execution is handled on backend servers, developers can get around OS differences by developing aspects of an app’s graphic user interface (GUI) in languages like CSS, HTML5, and JavaScript. Developers use HTML5, in particular, because today’s mobile OSs have advanced browser capabilities (HTML5 is the markup language used on the internet).
By coding in HTML5, developers create a “hybrid” app that consists of the OS’s native frame and the code that’s executed in a WebView.
What are the advantages of cross-platform development over native?
Cross-platform mobile development offers several advantages to developers and companies alike. These all start with the fact that, by choosing the right cross-platform tools and having a strong development plan, developers can use up to 80 percent of the same codebase. This cut in time alone can:
- Reduce overall project costs: Development costs for even the most basic app start at $10 thousand. If you’re developing native Android and iOS apps, you’ll need to double that, then add another 30% to make up for Android’s higher development costs. Any reductions in costs can save companies thousands.
- Speed up the time to release: Competition is fierce in today’s mobile market, which is especially important in highly competitive industries or niches. Companies that are able to release their app, address bugs and push updates faster will have an edge.
From a development standpoint, cross-platform development can:
- Optimize maintenance costs: Bug fixes and release updates can be handled faster as code changes would only need to be addressed once.
- Optimize unit testing: The time needed to write unit tests for each OS could be used instead to write more comprehensive tests. This, in turn, could reduce bugs.
From a business standpoint, cross-platform development can:
- Optimize your development resources: Cross-platform development means your developers only need to know one language. This eliminates the need to either bring on another developer for a specific iOS or spend money to train your developers on a particular language.
- Increase your audience: By releasing your app on both iOS and Android, you expose your app to a wide audience faster.
Considering these benefits, it may seem ideal that you move forward with cross-platform development for your app. In fact, we’d like to argue that much of today’s debate over native versus cross-platform development may be overstated
Nevertheless, it’s important you consider the potential drawbacks of cross-platform development. And we’re happy to discuss them below.
Cross-platform development isn’t perfect
Among the native app development evangelists, there is an argument that native apps have higher performance. Their argument is justified by the fact that the rendering of components made with HTML5 and CSS (a common protocol for cross-developed apps) may affect response time. This is because HTML5 and CSS components require a lot of a mobile device’s resources. Mobile devices simply don’t have the computing power of desktops.
Another argument has to do with design, as today’s apps are expected to deliver smooth interfaces and superior user experiences. While a strong cross-platform developer can create apps with great design across OSs, there may still be design aspects that are less than ideal.
Consider, for instance, that Android is used across many device brands such as Samsung and Motorola, each with their own lineup of devices. These various screen sizes mean that apps may not appear the same across all of them.
The design game gets more complicated when you consider that iOS has a completely different design style from Android’s material design, not to mention that Apple devices lack a back button.
These subtleties can add up. Users who aren’t satisfied with the app’s design may want to mention it in a review. Poor design prevents your app from being approved for the app stores to begin with. In fact, 20 percent of app store rejections are related to poor UI design.
To avoid UI issues, Developers have to adjust their code for each OS. While the bulk of the codebase applies across the board, companies will have to consider (and budget for) these extra development costs.
Is cross-platform development is right for me?
That’s a great question. While cross-platform development comes with many advantages, they do have some drawbacks.
The decision comes down to what’s right for your product. Every app has a different purpose and will be used by a different user base. To help you answer this question, consider the following:
What’s the purpose of your app?
Before moving forward with any development, it’s important to understand your target market. Is your app a game or useful tool, intended to be used by millions of people worldwide? Or is your app intended to be used by a set group of people, such as company employees, to streamline internal communication?
Understanding this difference is crucial because we’re essentially discussing internal use versus external use apps. External use apps are intended to be used by a large audience typically for commercial purposes. Apps from Candy Crush to Spotify to Gmail are external use apps.
Internal apps, on the other hand, are restricted to a specific user base. Enterprise-based apps often fall into this category because only company employees can download these apps to their devices.
So…. what does target audience have to do with cross-platform development? Sometimes, the design isn’t the most important feature in an app. Some apps are content-heavy and are mainly used to disperse information. In these cases, a sleek design probably isn’t top priority. People just want their information.
Another instance where design may not be top-of-mind is with B2B or enterprise apps. These apps aren’t built around generating a profit, so business will be more concerned about reeling in budgets and getting a return on their investment (e.g. increased productivity). As long as the app is functional and gets the job done, a flashy design isn’t too important.
The bottom line is this: cross-development development is better suited for content-heavy and enterprise apps.
Of course, this isn’t to say you can’t move forward with the cross-platform approach. Every app is different, and the right app development team (like us at TriFin!) can advise on the right way to move forward.
But…
Let’s say you decide to go ahead with cross-platform development. Great! There are many tools and resources available to your team for creating your app.
In the remainder of this article, we’ll cover these resources.
What languages are used in cross-platform development?
We’ve already discussed one advantage of cross-platform development: the ability to hire developers that only need an expertise in one language. Even better, cross-platform development can be accomplished with several programming languages, including:
Java
The gold standard of programming languages for cross-platform development, not to mention it’s the core language used for Android.
Further reading: An introduction to Java
C++
Though not as sophisticated as Java, C++ will still get the job done for any cross-platform development project. The only drawback is that C++ may add some strain to mobile device resources.
Further reading: What is C++
JavaScript and HTML5
JavaScript is the programming language used for HTML5, the markup language designed to make mobile apps compatible with desktops. While each isn’t particularly useful on their own, together, these two make for an excellent choice for cross-platform development.
Further reading: What is HTML5?
C#
Created by Microsoft, C# originally started off as an equivalent to the Objective-C language for Mac. However, C# has become a popular choice for cross-platform developers.
Further Reading: Why C# is among the most popular programming languages in the world.
Ruby
A mobile-specific programming language that’s straightforward and meant to use as few resources as possible on mobile devices.
Further Reading: Beginner’s Guide to Ruby
Fortunately, developers today have a variety of tools to choose from. Each tool offers something different, such as the use of certain programming languages. When researching tools for your development team, consider the following:
Apache Cordova/PhoneGap
One of the most popular cross-platform development frameworks is the open source Apache Cordova. The framework uses JavaScript, CSS, and HTML5 for app creation and gives developers several advantages, including direct access to a smartphone’s assets (e.g. contact data, file storage, notifications). Cordova also includes a straightforward API and the ability to employ most JS frameworks.
Developers may also know the popular Apache Cordova cross-platform development product PhoneGap, which was purchased from creator Nitobi in 2011 by Adobe. PhoneGap is Cordova’s cloud-based development tool, which eliminates the need for compilers, hardware, and SDKs altogether.
Xamarin
Another popular cross-platform tool is Xamarin, founded by the creators of the cross-platform implementations MonoTouch and MonoDroid. Using C#, developers can easily write and reuse their code across various platforms. Xamarin also simplifies cross-platform processes, such as the creation of dynamic layouts for iOS.
Xamarin integrates with Microsoft Visual Studio, which includes add-ins that allow for Android, iOS, and Windows development. Xamarin passed the 1 million developer milestone back in 2015.
Unity
Unity is a cross-platform game engine created by Unity Technologies. Unity is used to create both 2 and 3-dimensional games for consoles (Xbox, PlayStation, etc.), desktops (Windows, Linux, macOS), and mobile (Android and iOS). The engine primarily uses C# for coding.
Among the advantages of Unity are the availability of free plugins and the availability of detailed documentation to help developers with almost every aspect of the engine. However, Unity does have a steep learning curve and requires licensing fees for superior graphics and deployment, both of which can drive up development costs.
NativeScript
NativeScript is an open-source development platform that allows developers to build Android and iOS apps using their native UIs and development libraries. Programming is done mainly through JavaScript, though NativeScript also supports Angular and TypeScript. Furthermore, NativeScript allows developers to use most JavaScript libraries that don’t rely on the internet.
For teams that need to create feature-rich apps, NativeScript is an excellent choice. However, keep in mind that NativeScript doesn’t have as much documentation available as other platforms. This may affect development time if developers need to troubleshoot unfamiliar issues.
Sencha
Sencha is a web development framework specifically designed for mobile application development. Among Sencha’s popular tools is Sencha Ext JS, which allows users to create HTML5 apps. Ext JS also includes over one hundred UI components and native-looking themes for Android, iOS, Windows, and even Blackberry. Finally, Sencha integrates with other cross-platform platforms like Apache Cordova.
Despite these benefits, Sencha is far from free. The platform is currently priced at over three thousand per year for up to five developers. Pricing jumps up to over twelve thousand for twenty developers.
Appcelerator
Appcelerator is a development platform for building enterprise apps. The platform uses the common JavaScript language for creating native and cloud-connected mobile apps for Android, iOS, HTML5, and more.
Appcelerator comes with a few advantages for companies looking to build an internal enterprise app. The use of JavaScript makes it easier for companies to find skilled developers. Appcelerator also comes with an optional virtual private cloud option for companies that handle sensitive and private data.
Kony AppPlatform
Another enterprise-focused platform is Kony AppPlatform. This low-code development framework is great for companies that want to push their app out to workers with minimal development hassle. Developers use the drag-and-drop interface to build their apps using component from the Kony Marketplace or their own libraries.
RhoMobile Suite
RhoMobile’s development platform is great for developers looking to build data-centric enterprise apps. RhoStudio includes the Eclipse plug-in so developers can test applications without the need for emulators or hardware. From a security standpoint, RhoMobile Suite also provides automatic data encryption. Applications can be built for mobile and non-mobile OSs.
Any Other Tips Before Getting Started?
We hope this guide will serve as a valuable resource for cross-platform development. We’ve covered the basics of cross-platform development, including the essential languages and platforms to get started.
Of course, there’s nothing wrong with seeking out additional advice. Try reaching out to companies that have used cross-platform development and ask them about their experience. Also, consider reaching out to web development agencies for a consultation to hear their expert opinions.
Cross-platform development, like any other development method, requires careful planning. Yet with the right resources and advice, you’ll be able to move forward and create an app using the method that’s best for you.
If you’re looking for a partner to help you build a cross-platform web and mobile apps – contact us today.