Feature Story: Multi-platform Approaches
Mobile apps have become one of the fastest growing technology trends we have seen to date. This multi-billion dollar market was boosted in recent years by the release of the iPhone™, quickly followed by many other smartphone platforms. This presents a unique challenge for app development because of the difference in platforms including programming language, user interface and user expectations. But often, it makes a lot of sense for a company to release its app on more than one platform to reach a wider audience. So what are your options?
Well, even up to several months ago, there was only one option: native development on each platform. While native development ensures the app works seamlessly on every platform, it can be a bit more costly than some companies are willing to invest, although we have discussed in previous issues ways to save money on native development for each platform. Fortunately, Amadeus Consulting has closely monitored the app development tools market for some time waiting for a tool to come out that we can utilize for multi-platform development. And we now have a few viable options to offer a variety of approaches for clients looking for multi-platform app development. We wrote a white paper that dives into the details of the tools and ways to help you understand the best approach for your organization, but below is an overview of the different multi-platform approaches to app development.
Native Development
Native development means using the specific toolkit designed for creating software on a particular platform. There are many benefits to native development as well as some drawbacks.
Strengths:
- Native Development is very powerful and gives you full access to everything the platform offers
- The Native Development Kit (NDK) is well supported by the platform developer (Apple, Google, Microsoft, etc.) and the NDK is well documented
- Native Development usually creates fewer compatibility problems and errors
- Native Development usually creates a more natural and familiar look and feel
Weaknesses:
- Native Development is restricted to a specific programming language which may not be commonly used elsewhere
- Natively developed apps are incompatible with every other platform
- NDK’s often have their own set of nuances, API’s and libraries which developers must learn
Multi-Platform Tools
There are three major multi-platform tools on the market that are capable of creating simple multi-platform apps as well as being able to assist in the development of more complex applications. These are:
- Titanium by Appcelerator
- Mono, formerly sponsored by Novell, now run by Xamarin
- Phone Gap by Nitobi (and Largely Open Source)
Mono
History
Mono is a very powerful option that started as a multi-platform tool that originally helped port .NET to Linux (a desktop and server operating system), and later expanded to include two additional products: MonoTouch to help with iPhone development, and MonoDroid to help with Android. Even though it is slightly unclear what form Mono will take in the future (its parent company Attachmate, previously Novell, discontinued Mono, but the creator founded his own company which is currently in the works), it still has many strengths that can benefit projects right now.
Strengths:
- .NET development
- Uses Visual Studio and MonoDevelop
- Provides debugging capabilities (through Visual Studio)
- Strong support for iPhone and Android
- Ability to debug application through the IDE
Weaknesses:
As with every multi-platform tool, Mono also has some notable weaknesses.
- Only supports iPhone and Android
- Creates significantly larger app files
- Challenge to lay out UI
Titanium
History
Titanium is quickly growing and expanding to provide more features, support and compatibility. It may be one of the best supported and most active communities as it provides a strong company sponsorship with an open sourced model that takes and integrates ideas, tools and resources created by the community.
Strengths
- Covers iPhone, Android and BlackBerry
- Developed in JavaScript and HTML 5 and CSS 3
- Includes advanced, but limited, interface building capabilities
- Strong class libraries
- Ability to also develop web or desktop applications
- Extensibility
Weaknesses
- No debugger or ability to step through the code to identify errors
- It is a semi-new product, but growing quickly
- Creates an inconsistent output
Phone Gap
History
Phone Gap is a strong multi-platform tool that is mostly open source and free to use, with a few exceptions. It leverages common web technologies to create a new development environment for app developers.
Strengths
- Supports many platforms and operating system versions including iOS (iPhone, iPad), Android, BlackBerry, Palm, and Windows Mobile (not Windows Phone 7)
- JavaScript, HTML 5 and CSS 3
- Extensibility
Weaknesses
- Broad compatibility but limited capability
- Poor debugging capability
- Poor UI Support
Which is the right choice for your organization? Well, the choice largely depends on the type of app and its functionality. More complicated apps with detailed UI’s often need to be natively developed to ensure the best performance, but a simpler app with a simpler UI might be a great candidate for a multi-platform solution. If you aren’t sure, our white paper might clear it up for you, or you can contact our business development consultants for more information on what is the best approach for you.



