Performance Zone is brought to you in partnership with:

Leigh has been in the technology industry for over 15 years, writing marketing and technical documentation for Sun Microsystems, Wells Fargo, and more. She currently works at New Relic as a Marketing Manager. Leigh is a DZone MVB and is not an employee of DZone and has posted 106 posts at DZone. You can read more from them at their website. View Full User Profile

The Top 3 Challenges Facing Mobile Development

11.19.2012
| 5575 views |
  • submit to reddit

Matthew Setter is a professional technical writer and passionate web application developer. He’s also the founder of Malt Blue, the community for PHP web application development professionals and PHP Cloud Development Casts – learn Cloud Development through the lens of PHP. You can connect with him on TwitterFacebookLinkedIn or Google+ anytime.

Introduction
Mobile development — it’s an amazing area to be involved in right now. For years, the desktop was the only exciting development arena in town. While there were attempts to move away from it (think Windows CE), they never really took off.

Then along came Palm and BlackBerry, which started to change things. They were soon followed by the iPhone — which revolutionized everything and delivered the promise of the smartphone and mobile development potential.

But like most everything in human society, life is never stagnant or stale. So a short time after the iPhone started to take hold and mobile apps became part of the mainstream consciousness, Android came along and showed that Apple didn’t own the platform. (Despite how much their devoted followers have attested otherwise.) Then even more recently, Windows Phone has come along, seeking to shake things up again (although how much effect its having is still unclear).

We’ve moved from feature phones to ‘smart’ phones and tablet computing. And we have devices of all shapes, sizes and brands. They range from the ultra-low cost beginner to the high-end ‘must have’ gadget for those in the know. There’s an app for just about everything, from taking voice notes in Evernote to making mobile payments with Square.

All this capability brings with it a couple of challenges. So before you set off down the yellow brick road laced with good intentions, let me tell you about three of the top challenges facing mobile development you should look out for.

1. Vendor / Platform Fragmentation
First, there’s vendor fragmentation. As covered briefly before, there are two or three main mobile platforms: iOS (Apple), Android (Google and partners) and Windows Phone (Microsoft). Not so long ago, Blackberry would have been on top of this list. But in recent times, the company continues to have a cloud of doubt hanging over it.

So here’s the first issue you’ll face. Let’s assume, for the purpose of this article, that you’re not a multi-million dollar company. Most likely, you’re a freelancer or small development environment. Each platform requires you (or your development team) to build up the skills they need to be able to develop and deploy for it proficiently. And each has its own way of doing things (Adroid – Java, Windows – .NET, iOS – Objective-C) and its idiosyncrasies.

On top of that, if you’re going to be supporting more than one aspect of the platform (think of the iPad and iPhone for iOS), you need to understand each of these both in capability and design considerations equally well to properly deploy to them. Multiply that by two or three platforms and you begin to see that the requirements get pretty involved, quite quickly.

Look at it from a different perspective. Say that you’re a digital agency or company looking to either outsource development of an application or to build an internal team to take advantage of the rampant growth and demand for mobile everything. Where do you go to get professional developers with the range of skills required to manage an application across multiple platforms and then keep them up to date as the landscape continually changes. While some companies do it really well (Evernote and Wunderlist for example), it’s definitely a challenge and one not to be taken lightly.

Leigh Williamson, an IBM distinguished engineer, raises another point you should consider. While you may believe that a particular platform is the one to focus on, you may not have a choice. Your customers may be using two or more platforms equally. If that’s the case, you have a rather compelling reason to provide your application across the devices that they prefer, not the ones you do.

So despite all the positivity around mobile development, you need to know that vendor fragmentation is not going to make your life easy — not impossible, just not easy.

2. Device Fragmentation
This next challenge is a natural consequence of the one described above. Take a look at the tables below to get an idea how serious an issue device fragmentation really is.

Apple

Manufacturer

Model

Screen Size

Resolution

AppleiPad9.7″1024×600
AppleiPad 29.7″1024×768
AppleiPad 39.7″1024×768
AppleiPhone 3Gs3.5″480×320
AppleiPhone 4S3.5″960×640

Android

Manufacturer

Model

Screen Size

Resolution

SamsungGalaxy S II4.52″1024×600
SamsungGalaxy S III4.8″1024×768
SamsungGalaxy Beam4″480×800 (WVGA)
SamsungGalaxy Nexus4.65″1280×720
SamsungGalaxy Note5.29″800×1280
HTCOne X4.7″1280×720
HTCOne S4.3″960×540
HTCOne X+4.7″HD 720p
HuaweiAscend G3004.0″480×800
LGC550 Optimus Chat-320*480
LGOptimus 3D P9204.3″WVGA
MotorolaRazr Maxx4.3″540×960 Super AMOLED
SonyXperia S4.3″1280×720

Windows Phone

Manufacturer

Model

Screen Size

Resolution

NokiaLumia 9204.5″1280×768
HTCWindows Phone 8S4″WVGA
HTCWindows Phone 8X4.3″HD 720p
HTCTitan4.7″480×800
DellVenue Pro4.1″WVGA AMOLED
SamsungATIV S4.8″HD Super AMOLED
NokiaLumia 6103.7″800×480
NokiaLumia 9004.3″800×480
LGOptimus 7 E9003.8″800*480

If you are at all familiar with the available Android and Windows options, you’ll know that this list isn’t complete. There are far, far more options available then what I’ve listed her. Take a look at the full list on Wikipedia, or if you want a simpler comparison, see this infographic from LifeHacker.

Someone once coined the quote: “The agony of choice.” In this case, at least for the developer, it clearly exists. If you’re a consumer, it’s never been a better time to get a phone that suits you perfectly.

As a developer or development company, how do you profitably develop for a platform with the diversity of configurations and capabilities the various vendors offer? How do you ensure that your next world killing app will render as anticipated with such a wide variety of resolutions and hardware capabilities — without sending yourself out of business?

3. Development Approach
If you thought mobile development was interesting enough with the first two challenges, this third one stirs things up even further. Today, there are three common ways that developers are building applications for mobile devices:

* Native
* HTML5
* Hybrid

Depending on where you sit on this one, you likely have strong view one way or another. Some people, Facebook CEO Mark Zuckerberg specifically, believe that HTML5 isn’t yet the right way to go when developing mobile apps. He was recently quoted in the Register as saying Facebook’s biggest mistake was betting too much on HTML5 as opposed to native app development. However, others argued that it was not so much as HTML5 issues as an implementation issue on their part.

Alternatively, Pixel Lab is very excited about the prospects and possibilities inherent in HTML5 as they point out in this video, which discusses the process of porting the iOS gam, Cut the Rope, to HTML5 specifically focused around Internet Explorer 8 * 9. They say that while it’s a very different environment, with very different considerations, HTML5 is an exciting platform to work with full of rich potential.

Then of course, there’s the hybrid approach. Applications can be developed across multiple platforms more easily and quickly than going down the native path, and with more speed and access to more hardware than with the HTML5 approach.

So by taking the middle path approach, which Facebook did for some time or others, such as Lotte Card, Bank of America or Yelp, companies are able to much more rapidly and cost effectively target multiple platforms building the application, largely once.

But It’s Not All Bad News
I realize that the tone so far has not been a harbinger of much joy and happiness. But seriously, it’s really not all that bad. There are a number of companies providing platforms that are specifically designed to make the process much easier than going it alone. Irrespective of which approach your taking (or planning to take), the list below provides a good start on the range of options available to make  you life simpler.

PhoneGap
First off, there’s PhoneGap that supports iPhone, Android, BlackBerry OS 5 and 6, WebOS, Windows Phone 7, Symbian and Bada. Their platform allows developers to quickly and simply build hybrid applications using only HTML5, JavaScript and CSS.

While they don’t support all the features available on all phones, they do support a number of the key ones including:

* Accelerometer
* Camera
* Geolocation
* Network
* Storage

One of the great things about the PhoneGap approach is that it seeks to alleviate the need to have developers with skills across the wide range of platforms available today.

PhoneGap allows developers to build applications with HTML5, CSS, JavaScript and a single API. Applications can be built and deployed locally with the respective phone emulators or through the PhoneGap Build service.

Sencha Touch
Then there’s Sencha Touch. Similar in nature to PhoneGap, Sencha Touch lets developers produce smartphone apps through their flagship Sencha Touch 2. It’s promoted as a “high-performance HTML5 mobile application framework”. Counting customers such as DirecTV, Intuit, Vimeo and Xero, developers are able to build apps that incorporate:

* Scrolling and animations
* Adaptive layouts
* Geolocation
* Touch events
* And more

Although it doesn’t support as many mobile operating systems as PhoneGap, Sencha Touch supports the key players of iOS and Android. They also make deploying to Android easier by providing a support matrix for a number of Android devices that can be successfully deployed to.

jQuery Mobile
But what if you or your development team already has an extensive amount of experience with jQuery? If that’s the case, you should extend that knowledge with jQuery Mobile. jQuery Mobile allows developer with existing web development experience to easily and quickly get started developing mobile applications. It supports the following platforms:

* iOS
* Android
* BlackBerry
* Bada
* Windows Phone
* webOS
* Symbian
* MeeGo

You can see the full range of devices they support on their website. jQuery Mobile is also sponsored by a number of big tech names including Mozilla, Nokia, Adobe and BlackBerry.

You can use it to create applications that take on a lot of the look and fee of native ones — such as buttons, form elements, sliders, headings, maps, and images. To see what I mean, take a look at this simple application mockup that I created in five minutes with their drag and drop builder.

jQuery Mobile screenshot

Thanks to jQuery’s long history, there’s extensive documentation, a wide variety of third party plugins and extensions, and the ability to integrate it with other tools such as PhoneGap, Codiqa and RhoMobile. So now you can either create HTML5 applications or combine it with other tools to package up a hybrid applications.

MoSync
But maybe you want to develop native applications as well as hybrid or HTML5. If that’s the case, take a look at the Open Source MoSync SDK. It allows you to use C/C++ or HTML5 to develop apps for up to nine platforms including:

* iOs
* Android
* SymbianOS
* Windows Phone and Windows Mobile
* MeeGo
* BlackBerry

Their SDK and cross-platform IDE (based on Eclipse) allows developers to use a single API across the range of platforms that they support. What’s more, applications can be packed in the native format of the platform your taregeting.

Conclusion
So these are the three key challenges for the year ahead facing mobile development. But it’s not all doom and gloom. There are a number of platforms, vendors and tools available to alleviate these issues and make development of mobile applications a productive and profitable process irrespective of the platform(s) you choose.

But remember, due diligence and research on the various platforms before you commit so that you know you’re choosing the right one for your current and future needs. Wish you all the best in your mobile development success.

Published at DZone with permission of Leigh Shevchik, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags: