Top 6 Mobile Cross Platform Frameworks
The need to support multiple hardware platforms continues to grow. This makes it imperative to find tools that will help you develop for multiple platforms simultaneously. These tools exist in the form of mobile cross platform frameworks.
Most frameworks use one of these approaches:
- You code with languages like HTML5 or JavaScript. The framework provides wrappers of some kind that let this code run on different hardware platforms. If your project involves things like short development cycles, support across many hardware platforms, and limited need to interact with device hardware, this could be the best approach for you.
- You write native apps for each hardware platform, with some percentage of code reuse. If performance is a priority, or you need access to hardware-specific features, this is probably the way to go.
You'll find examples of both these types in this article.
Choosing the "Top X" mobile cross platform frameworks is a pretty subjective thing. So I did some digging around on the net. I wanted to see which platforms seem to get the most mentions in existing reviews of the top platforms. I ended up with six that seem to appear most frequently on top mobile cross platform framework lists. The six winners are:
- Appcelerator Titanium
- Apache Cordova / Adobe PhoneGap
- Sencha Touch
- Adobe AIR
- Xamarin
- Unity
In the rest of this article we will take a look at each of these to help you choose which to use in your next development project.
Appcelerator Titanium
Appcelerator® Titanium is the name that showed up most often in my search for the top platforms. Titanium® is an open-source, JavaScript-based SDK from the same people that publish the commercial Appcelerator Platform.
With Titanium, you write the bulk of your app in JavaScript, giving you significant amounts of code reuse (we're talking 60% to 90%). At the same time, you get access to over 5,000 device-specific APIs. This combination lets you get native-level performance where you need it, while still reusing most of your code. It is a hard combination to beat.
According to Appcelerator, Titanium is supported by over 660,000 mobile developers. It's used in over 75,000 mobile apps that are installed on over a quarter of a billion devices.
Here's are a few of the commonly-described pros and cons of using Titanium:
Pros of Appcelerator Titanium
- Open Source
- JavaScript-based SDK means less learning curve for developers
- Reuse of much of your code
- You get access to performance-boosting device APIs
- The Marketplace offers hundreds of modules to add functionality
Cons
- Use of device-specific APIs means additional complexity
- You are dependent on the community for support
Apache Cordova / Adobe PhoneGap
The next most frequently mentioned tool/platform was Apache Cordova™. / Adobe PhoneGap. What's the difference between these two? While these products have a tangled history, today we can summarize it like this:
- Cordova is the engine. The Apache Software Foundation (ASF) maintains and develops Cordova. Cordova is open source and is used by a whole slew of tools, frameworks, and services.
- PhoneGap is "the original and most popular distribution of Apache Cordova," according to the Cordova team. PhoneGap provides a set of desktop and developer apps you can use to build your Cordova apps.
Using Cordova/PhoneGap, you create mobile apps that use CSS3, HTML5, and JavaScript. You then apply device-specific wrappers to your code to make your app run on the devices you want to support. The apps run in Cordova's WebView within the wrapper.
You aren't limited to mobile apps either. The Cordova project supports iOS, Android, Blackberry10, Ubuntu Linux, WP8, and Windows 8.1 or later, and more.
Pros of Apache Cordova / Adobe PhoneGap
- Open Source
- Short learning curve since you do most of your work with standard web development tools
- Supports most major mobile and desktop operating systems
Cons
- You are dependent on the community for support
- Lack of device-specific APIs can slow performance
Sencha Touch
Sencha Touch is a framework that leverages your knowledge of HTML5 and JavaScript. It lets you build universal mobile web apps with native-looking themes that work on every mobile browser. With more than 50 UI elements (carousels, menus, toolbars, etc.) built right in, you can save a substantial amount of time and effort.
By default, the apps you develop with Sencha Touch run on anything, but don't have access to hardware-specific features. For times when you need access to those features, this framework integrates with Adobe PhoneGap and Apache Cordova. Additional features of Sencha Touch include:
- Fast-loading, adaptive layouts that snap between portrait and landscape
- Smart use of the best scrolling and animation for each device
- Protocol agnostic, backend data package
- Charting using the HTML5 canvas, with gesture support
Adobe AIR
Adobe AIR® (Adobe Integrated Runtime) is in a funny position. AIR has been installed hundreds of millions of times and more than 175,000 apps have been written using it. Adobe is also still actively supporting it, with AIR 22.0 released in June of 2016. But you probably don't want to develop a new app using it. Here's why…
Adobe AIR is built to turn Adobe Flash content into stand-alone apps for desktop and mobile devices. You may recall that there have been numerous problems with Flash vulnerabilities leaving computers open to hackers. Many individuals and organizations now disable Flash content as a matter of course. And Mozilla, the makers of the Firefox web browser, announced in July that Flash content will automatically be disabled starting in 2017.
Further adding to the concerns is that Adobe has published PhoneGap. Combined with Apache Cordova, PhoneGap gives you an alternative development environment free of the risk factors associated with Flash.
These events make developing with Adobe AIR seem riskier than other options. Still, there are hundreds of thousands of Adobe AIR apps out there, and Adobe is still at least updating AIR. If you are supporting existing AIR apps, you'll need to evaluate your specific situation and decide whether to continue or to start developing with a new platform.
Xamarin
When we talk about the Xamarin platform, we're talking about a different kind of beast than the platforms we've covered so far. Those others let you use standard web languages like JavaScript and HTML5 to create interpreted apps. Xamarin takes a different route.
When you use Xamarin, you develop native Android, iOS, Mac, and Windows apps using C#. It supports shared projects and Portable Class Libraries (PCLs). Xamarin.forms lets you create iOS, Android, and Windows user interfaces using a shared C# codebase.
The Xamarin approach has some very different pros and cons compared to the ones we've discussed so far. Here's a quick look:
Pros of Xamarin
- True native apps
- Platform-specific views for UI customization
- Abstracted platform-specific APIs for device-level functionality
- Shared code across apps averages 75%
Cons
- You need to code in C# instead of a standard web language
- Support for fewer hardware platforms than some others
Unity
If you want to develop games for pretty much anything out there, Unity is the way to go. Unity supports two dozen different mobile, desktop, web, console, TV, and VR platforms. They blow everything else away in terms of breadth.
Unity itself is a game engine. You can use it to build any 2D or 3D game you want. You can also use it to build other types of apps and interactive experiences. You write your game or app in C# or the Unity version of JavaScript. A Unity package consists of a number of scenes. Your code interacts with objects in the scenes, with the Unity camera showing the user what is happening.
From the above you can see that if you are designing things like an accounting app, Unity is not the platform for you. But if your project involves interaction with 2D or 3D objects in the app, this could be exactly what you are looking for. Here are some pros and cons:
Pros of Unity
- Supports a huge number of target platforms
- Strong for projects that manipulate 2D or 3D objects
- Huge Asset Store to save you time and effort
Cons
- Not suited for most business apps
- Doesn't use standard web development languages
Conclusion
If you develop apps for multiple hardware platforms, a Mobile Cross Platform Framework can help speed the development of your next project. Being able to reuse some significant percentage of your code while still supporting multiple devices can be a big win. But with dozens of frameworks available, how do you choose the one that's right for your project?
In this article, we looked at 6 mobile cross platforms that are popular with other developers. I can't guarantee that Appcelerator, or the Cordova/PhoneGap pair, or any of these other frameworks is right for you, but they are a good place to start.
If none of these does it for you, don't worry. Our Mobile Cross Platform Frameworks page covers more than 90 frameworks. Check it out.
Recent Stories
Top DiscoverSDK Experts
Compare Products
Select up to three two products to compare by clicking on the compare icon () of each product.
{{compareToolModel.Error}}
{{CommentsModel.TotalCount}} Comments
Your Comment