Wednesday, November 2, 2011

Cross Platform Mobile Development: Is it the right fit for you?



Cross-platform mobile development is all of the rage these days. It is quite often one of the first things I am asked about by new and potential clients. Everyone wants to go to market as fast as they can, reach the largest audience possible and get there as frugally as possible; but every application and use case is different. So should where should we leverage cross platform tools and where should we not?

There are many cross-platform frameworks in the marketplace today. Each attempts to leverage an existing development technology as its backbone. This lets organizations repurpose existing development resources to go mobile. Below are several of the market leaders:



Cross-Platform Frameworks

Adobe Flex / AIR Mobile
  • Website: http://www.adobe.com/
  • Language: ActionScript
  • Platforms: iOS, Android, Blackberry Tablet
  • License: Commercial (Air distributable free, development tools commercial)
Adobe facilitates cross-platform development for the mobile channel via the AIR runtime. Adobe developers can utilize existing skills in ActionScript 3.0 and Flex to develop rich applications that can run on iOS, Android or the Blackberry Playbook. Enterprises who currently use Adobe tools to develop RIA applications can look to the AIR mobile platform to get off the ground quickly in mobility.

Like all frameworks, Adobe AIR applications will take a performance hit in comparison to purely native applications.  AIR performance has greatly improved with AIR 3.0 and Flex 2.6.  Recently, Adobe has announced they are discontinuing development of Flash on the mobile browser and will be putting their efforts toward native mobile application development in the Flex / AIR framework.

PhoneGap:
  • Website: http://www.phonegap.com/
  • Language(s): Javascript, HTML, CSS
  • Platforms: iOS, Android, BlackBerry OS, webOS, Windows Phone 7, Symbian, Bada
  • License: Open-Source (MIT license)
PhoneGap is an HTML 5 cross-development platform. It utilizes HTML 5, CSS3 and a DOM based JavaScript library for its development. Many users of the platform champion it as the easiest platform the pure web developer can use to make the transition to mobile development.

PhoneGap apps run inside a WebKit instance. What does this mean? On iOS for example, the application is executed inside a UIWebView control and the PhoneGap framework redirects JavaScript calls to the native API. Even though the application is running inside of the WebKit space, it can access any of the device APIs via the PhoneGap framework.


Appcelerator’s Titanium Mobile:
  • Website: http://www.appcelerator.com/
  • Language(s): JavaScript, JSS
  • Platforms: iOS, Android
  • License: Open-Source (Apache v2 Community Edition)
Titanium is a JavaScript based cross-compiler tool with the ability to access native UI controls and has better performance than its web based competitors. Titanium, unlike PhoneGap, is purely JavaScript and only requires the developer to be fluent in JavaScript to develop mobile applications. Titanium arguably is more feature rich than PhoneGap and has generally higher performance due to creating truly native code rather than relying upon HTML 5 and the features of the mobile WebKit

RhoMobile
  • Website: http://rhomobile.com
  • Language(s): Ruby, HTML, CSS, JavaScript
  • Platforms: iOS, Android, BlackBerry OS, Windows Phone 7
  • License: Open-Source (MIT license)

RhoMobile is a platform based upon Ruby on Rails. Developers with backgrounds developing rails applications will be able to quickly push applications out the door with this platform. The front ends are designed with existing web technologies such as HTML, allowing web developers to create the UI with ease. Like PhoneGap, there is no native control support.


Pros and Cons:

Pros:
  • Single Code Base
    • The primary advantage of the cross-platform framework is at the end of the day, you will have a single code base in which to manage and grow.
  • Repurposing Development Talent
    • Cross-platform tools allow enterprises to leverage existing development talent to create mobile applications without learning the native APIs.
  • Decreased development time
    • Cross-platform tools can potentially lessen development time for mobile projects.
Cons
  • Limited Control
    • Adopting a cross-platform tool for your development strategy limits your ability to get at low level details in the native API stack. For more complex applications this can be a massive negative and end up lengthening the development effort past that of creating the application natively at the start.
  • Marriage to the Tool
    • Once invested in the cross-platform tool, your organization is invested in that tool. There is currently a large growth in this space and the consolidation of the players has already begun with Adobe acquiring PhoneGap. Building your enterprise strategy on one of these platforms that may be gone tomorrow can be troubling.
  • Limited Features
    • Cross-platform tools will always lag behind the native APIs. When Apple and Google launch new features with their new SDK revisions, you will be at the mercy of the tool developer to incorporate these features into the cross-platform framework.
As you can see, the decision to leverage a cross-platform framework as part of your enterprise mobile strategy is a big one.  In most instances, I find myself recommending to my clients to develop purely native applications or go with the mobile web.  This however is due largely to the requirements that I typically see with enterprise customers.  Recently, we are beginning to see a larger demand for the Adobe mobile platform as companies are looking to leverage a cross-platform framework by one of the larger industry players.

Cross-platform tools are not the one-shot solution for all of your mobile needs, as these vendors would like you to believe but each has its pros and cons and optimal use case.  Due diligence in the planning and scoping phase of your mobile endeavor will help you discover if one of them is right for you.

Monday, August 22, 2011

MEAP ! MEAP !



   No, we aren't going to discuss the implications of Road Runner within the context of enterprise mobility.  But, keeping up with the movement of today's rapidly changing enterprise mobile ecosystem can leave you feeling like Wil E. Coyote standing in a fresh cloud of dust. 

   Let me help you wipe that dust from your eyes and enlighten you to the MEAP. MEAP stands for Mobile Enterprise Application Platform and they are quickly becoming of the more asked about topics in enterprise mobility.


Some of the most frequently asked questions that I receive from IT directors and CIOs today are:
  • "How do I manage the influx of mobile devices that my organization wants to support?"
  • "I need to have this application run on all mobile platforms.  How can I do that quickly?"
  • "How quickly can I get to market with my application?"
  The MEAP attempts to address these by providing the enterprise a single platform in which they can develop, test, deploy and sometimes even manage their mobile assets.  For large enterprise that have multiple channels supporting or initiating large scale mobile initiatives, with integration to common back end systems such as an ERP or a CRM,  a good MEAP may be a strategic fit to help mitigate some of the risks in the ever changing ecosystem of mobility.

  This is great right?  It clearly solves all of the problems of cross platform development and mobile application management in the organization!  Why then, do I not implement MEAPs at all of my clients?  The simple answer is that the MEAP does not always fit the bill for what the enterprise is trying to achieve.

  There are many MEAPs in the market right now with some having been around for several years and there are new competitors are rising daily.  The MEAP space is growing with the players trying to solidify themselves and stake claim in this new frontier which is why I consider this to be a relative immature market right now.

  Companies who invest and build their enterprise mobile strategy with a MEAP at the core of it have a certain degree of exposure to risk.  No clear winner has emerged as of yet and it may be a while till the field is solidified.  Large players such as SAP are starting to get into the space and I expect other large vendors to as well.  With this, there is a the potential for some of the current players in the space to disappear, be bought out or have their product offerings change drastically in the near future.

  Analyzing if a MEAP is a right fit for your organization requires a firm understanding of your mobile initiatives.  Only when you have a firm understanding of your current mobile ecosystem (if it exists at all) and what you envision as your future state can you properly decide if a MEAP is the right tool for the job.

Is a MEAP a good fit for my organization?

  This question depends upon your goals, requirements of the application or applications planned to be build and the organizations current technical assets .  If you already have an a widely used ERP, CRM, SFA or other enterprise system in place that you are looking to rapidly deploy mobile workflows that leverage these assets, there may be a MEAP out there for you.  Many of the MEAPs support connection and synchronization to the these systems or provide a service layer that will allow for custom integration to other critical systems. 

  But why would I not use a MEAP?  If your organization has a very clear mobile road map defined and you need to quickly provide one or a few tactical mobile applications a MEAP may be an unnecessary layer of complexity to your puzzle.

  What if your mobile applications require tight integration to a device and access to low level device features, or peripherals? Many MEAPs have poor if any support for such use cases.

  Do I want to bind my enterprises mobile strategy to a MEAP platform that likely has a proprietary language or entity framework or would I rather stick with device specific languages or web standards that will likely be around for a long time?

  Ultimately, evaluation and definition of your organizations goals and vision for mobility will help dictate if a MEAP is a good fit for you.  Let our mobile experts here at Solstice assist you in building this enterprise mobile strategy today!