by Brett Gillin

In recent years, there’s been huge growth in the number of different methods used to develop mobile applications.  I’ve tried many of them and found they can produce mobile applications with limited user experiences, compromised native app experiences, reduced abilities to tap into device-specific features (such as GPS and cameras), and sometimes instability.

In my experience, here are the patterns I found to be  most effective for mobile application development:

Pattern #1 – C# Using Xamarin in Microsoft Visual Studio

This platform produces a native experience with full device capability but from the control and sophisticated debugging capabilities of Microsoft Visual Studio.  This leverages the widely available .NET developer skills yet produces unparalleled native applications.  Typically 70 percent of the application code is shared across devices operating system and form factors (resolution, screen orientation) and 30 percent is rewritten for each special combination.

Pattern #2 – Native Development Using Manufacturer Recommended Tools

Apple developers use Mac computers and Objective C to code directly to the iOS platform.  Android developers build in Java.  Microsoft developers code in C# and .NET.  Each app is written from scratch so code reuse is minimal.

Pattern #3 – Rapid Prototyping Tools and Microsoft Azure Cloud

Microsoft Project Siena and Microsoft Phone App Studio are capable of producing real working prototypes and applications by business analysts with basic Excel skills.

Pattern #4 – IBM Worklight

IBM acquired the Worklight platform in 2012 and combined it with Cast Iron.  This ecosystem of servers, development tools based primarily in Java and JavaScript, and services is well suited for large organizations making substantial investments in mobile development and want a robust platform.

Pattern #5 – HTML 5/CSS

Simple applications that don’t require access to device-specific capabilities can be built in HTML5 and CSS and rapidly deployed using a shell or wrapper.  This is a simple place to start, but most organizations will select Patterns 1-4 as they reach greater levels of sophistication.

Pattern #6 – Web Applications Using Responsive Design

Responsive design aims to create functional and optimal user experiences for a growing number of web-enabled devices using web browsers instead of a native application.  Simplicity is an advantage of this method, but differences in browser implementations can make it difficult to consistently achieve an elegant interface.  This is often a good choice for existing portals.

The Microsoft Azure Cloud

The Microsoft Azure Cloud has Mobile Services including authentication.  This can be used in conjunction with Patterns 1, 2 and 3 to create the back-end necessary to integrate with line of business systems.  Additionally, the Azure Cloud includes databases, Active Directory integration, and Single Sign-On with over 600 different services (including Google, Yahoo, Facebook, Twitter, LinkedIn).  Azure also has a full Content Delivery Network (CDN) and video trans-coding services.

For a deeper dive into these patterns, check out this upcoming webinar:

How to Choose the Best Mobile Development Strategy

Wednesday, April 30, 2014

1:30 p.m. – 2:00 p.m.

Register now