The Top 3 Challenges Facing Mobile Development
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 Twitter, Facebook, LinkedIn 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 |
| Apple | iPad | 9.7″ | 1024×600 |
| Apple | iPad 2 | 9.7″ | 1024×768 |
| Apple | iPad 3 | 9.7″ | 1024×768 |
| Apple | iPhone 3Gs | 3.5″ | 480×320 |
| Apple | iPhone 4S | 3.5″ | 960×640 |
Android
Manufacturer | Model | Screen Size | Resolution |
| Samsung | Galaxy S II | 4.52″ | 1024×600 |
| Samsung | Galaxy S III | 4.8″ | 1024×768 |
| Samsung | Galaxy Beam | 4″ | 480×800 (WVGA) |
| Samsung | Galaxy Nexus | 4.65″ | 1280×720 |
| Samsung | Galaxy Note | 5.29″ | 800×1280 |
| HTC | One X | 4.7″ | 1280×720 |
| HTC | One S | 4.3″ | 960×540 |
| HTC | One X+ | 4.7″ | HD 720p |
| Huawei | Ascend G300 | 4.0″ | 480×800 |
| LG | C550 Optimus Chat | - | 320*480 |
| LG | Optimus 3D P920 | 4.3″ | WVGA |
| Motorola | Razr Maxx | 4.3″ | 540×960 Super AMOLED |
| Sony | Xperia S | 4.3″ | 1280×720 |
Windows Phone
Manufacturer | Model | Screen Size | Resolution |
| Nokia | Lumia 920 | 4.5″ | 1280×768 |
| HTC | Windows Phone 8S | 4″ | WVGA |
| HTC | Windows Phone 8X | 4.3″ | HD 720p |
| HTC | Titan | 4.7″ | 480×800 |
| Dell | Venue Pro | 4.1″ | WVGA AMOLED |
| Samsung | ATIV S | 4.8″ | HD Super AMOLED |
| Nokia | Lumia 610 | 3.7″ | 800×480 |
| Nokia | Lumia 900 | 4.3″ | 800×480 |
| LG | Optimus 7 E900 | 3.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.
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.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






