User interacting with gold iPhone

Effective Thinking

Mobile Development: Platform Options and Framework Choices

At one of our recent Making Mobile Meaningful events, I hosted a breakout session to help attendees understand the options for mobile development, and the pros and cons of each. When deciding how content will be delivered to your users on mobile devices, there are several development options to consider. Let’s start by taking a quick look at the platforms that are available today.

Mobile Platforms
When considering which platforms should be included in your mobile strategy, you probably want to consider the number of devices out in the world of each type. Presumably you want to support the most users on their device of choice, unless you know that your user base has a certain preference. According to International Data Corporation, in 2016, the platform breakdown will be as follows:

•    Android = 68.8%
•    iOS =19.1%
•    Windows Phone = 11.4%
•    BlackBerry OS = 4.1%
•    Other = 1.6%

Based on this data, it would make sense to simply start with Android and work your way down the list to accommodate the most users. However, there are a few shortcomings with this plan. First, leaving 31.8 percent of your mobile users without a mobile experience is probably not the best plan. Second, the cost of developing an application for each platform is very expensive and requires specialized skills for each platform, which is also expensive.

Fortunately, there are a number of cross platform frameworks that enable mobile developers to write applications that run on multiple mobile platforms.

Cross Platform Frameworks
If writing an application for each platform your organization wants to support is unsavory, consider a cross platform option. When considering a cross-platform solution, be sure to consider how much work is required to deploy to each platform. Some solutions allow code reuse, which reduces development time and improves correctness. When looking at cross platform solutions, there are two types: native solutions and hybrid solutions.

Mobile platforms and frameworksA native solution takes a cross platform language and compiles to native code. (Think of it like a Star Trek universal translator in reverse.) A hybrid solution uses web technologies, such as HTML/CSS, combined with native functionality where the web technologies are lacking. With a hybrid solution your application is basically a webpage that accesses the phone’s advanced features, such as location, orientation, camera, etc.

Let’s take a quick look at some of the cross platform frameworks available today:

Titanium SDK (Native Solution)
The Titanium SDK compiles JavaScript to native code. The framework claims 60-90 percent code reuse when supporting multiple platforms.

Xamarin (Native Solution)
The Xamarin Framework provides a .NET environment for your application to run on. The application is written in C#. Porting between platforms requires some real work, however, this solution is valuable if your development team has a strong .NET background.

PhoneGap (Hybrid)
PhoneGap wraps up HTML, CSS, and JavaScript files into a cross platform app. This allows reuse of existing web assets, which can greatly reduce the development and design time required to create a solution.

Oracle ADF Mobile (Hybrid)
Oracle Application Development Framework (ADF) Mobile is a combination of Oracle ADF (aka, Java Server Faces or JSF) and PhoneGap. This is an excellent solution if you already have a large JSF deployment.

The main advantages of a cross platform native solution are that applications run at native speed on mobile devices, and the frameworks allow developers to work in a programming language they may be more familiar with.

As hybrid solutions are largely written with web technologies, they also share the ability to leverage existing development talent. Hybrid solutions can be a little sluggish when it comes to complex animations. This limitation is often worth it when you consider that you may be able to reuse some of your existing web content with the mobile app.

Creating an installable application is no doubt important to many organizations. It allows a branding opportunity not available through other means. It gives an organization the opportunity to provide focused functionality to their users and can make the most of a mobile device. However, mobile visitors to your organization’s website should also have a good experience. The following section provides a quick overview of mobile web best practices.

Mobile Website
As mobile devices become more common, and more frequently used for everyday web browsing, no mobile strategy can ignore the mobile web. When creating your mobile website, consider the following:

•    Can the user access your normal (non-mobile) website if they wish?
•    Which features of a website should be emphasized during the mobile experience?
•    Why is the user visiting the site on a phone, and what can be done to make his task easier?
•    What about pre-smartphone mobile devices, are those supported?
•    What web features can be used to improve the user’s experience? Offline mode? Local storage? Image in-lining?

There are many tools available to customize a mobile experience. Talk to your IT staff and see what works with your existing system.

Your mobile strategy should start with making your existing web content mobile friendly and your core service should be made super simple for mobile users. Once that is accomplished, use a hybrid framework (we typically recommend PhoneGap) to wrap your now friendly web content into an installable application, taking advantage of mobile specific features, like location, security, etc., to provide an improved experience over your website.