The State of Salesforce.com’s Mobile Landscape

October 8, 2012

Over the past few years, an entire new ecosystem of platforms for building mobile applications has emerged. With the new age BYOD revolution sweeping across companies, we’re left with this question: which is the best approach to bring an app to the market with the least amount of investment? There are several factors that need to be taken into consideration by strategic decision-makers: user experience, security, performance, cross platform deployment costs, etc.

I was recently part of an amazing team from Bluewolf that worked closely with salesforce.com on building an application for the greatest event on earth: Dreamforce 2012.

The finished application boasted features such as event registration, session sign-up, and attendee collaboration (I cannot live without you Chatter). The most amazing part was the application was built in a way that would perform and feel the same on a desktop, tablet, iPhone, iPad, etc.

After experiencing the best that app development has to offer, and listening to all the mobile and Touch platform conversations that took place during the event, I was inspired to help clear the air around all the different mobile implementations the Force.com platform supports. 

Native

  • A native mobile app is a program designed to run on a specific mobile device and its associated OS. Most of the application logic resides on the server, with phones acting mainly as display engines. Example: SalesVisit for iOS.
  • The device-specific functionalities lead to higher performance and add to the richness of the user experience. However, distributing and marketing a native app is time consuming because native app developers are scarce and the apps must be built and tested separately for each platform.

Mobile Web

  • With responsive web design at its core, the mobile web approach allows for an optimal viewing experience across desktops, laptops, tablets, and phones. (Tip: Heroku is a great platform for building smart, custom web applications for handhelds)
  • The user community can easily access updates via the browser, but the ability to move across devices comes at the cost of inferior rich media performance, limited access to hardware features and API’s, and no app store distribution.

Client-side Web

  • In client-side web applications, Javascript (not to be confused with Java) executes application logic in addition to remote web services (built with Java, .Net, Ruby), and provides a unified interface between websites, iphones, and androids. Javascript libraries like jQuery and Sencha allow developers access to the benefits of touch interface, HTML5, and CSS3, such as audio, video, storage, animation, and effects.
  • Though client-side web apps feature many of the benefits of native apps, they have limited access to hardware features and API’s, are platform and internet-connection dependent (unless browser caching is turned on), and vulnerable to URL and offline data security threats.

Hybrid

  • Hybrid apps use a web view control (UIWebView on iOS, WebView on Android) to present the HTML and JavaScript files in a full-screen format with the native browser rendering engine as opposed to the browser itself. Libraries like PhoneGap (Apache Cordova) allow developers achieve this. Example: Dreamforce 2012 conference mobile app
  • It is extremely time-consuming to match each specific UI, so that plugins must occasionally be written in native code to cover missing device functionalities. Like native applications, hybrid apps must be developed separately for each targeted platform.

Interpreted

  • Interpreted approach apps perform just as well as native apps because the code is transformed into native code. For example, PhoneGap (native) uses the browser to display content, whereas Appcelerator (interpreted) uses a javascript engine to render native widgets. Examples: trigger.io, Appcelerator
  • This approach provides almost all the benefits of a native application with the exception of its dependency on transformers and native SDK versions.

Cross-compiled

  • As the name itself suggests, the cross-compiled approach allows developers to code in modern object-oriented languages like C# (Monotouch) and ActionScript while deploying natively to multiple targets.
  • With this approach, companies can take advantage of the huge talent pool of C# developers as well as benefit from targeting multiple devices at once.

Adobe Air

  • Apps developed with Adobe Air target multiple devices with SWF native byte-code that runs on native platforms and includes support for native API support, Stage 3D, and rich contents using OpenGL. Example: Salesforce Chatter client
  • The flash and dash of Adobe Air comes at the cost of non-native UI.

Salesforce.com’s Mobile SDK  offers additional support to Native, Client-side Web, and Hybrid app approaches. If you’re wondering what app solution is right for you, contact Bluewolf for an in-depth analysis of the existing approaches and get app-y!

For more information regarding mobility transformation, check out What Companies Need To Know To Maximize ROI From A Mobility Transformation With Salesforce.

See More