Mobile development 1/3 – different approaches
In general, mobile cross-platform development has rightfully gained popularity as a development topic de jour, as the number of mobile only-users has long exceeded the number of non-mobile users, and the trend doesn’t seem to slow down . In this series of three, we’ll touch upon four different approaches to delivering a mobile experience. You’ll learn of pros and cons of each and will learn about experiences using Xamarin as a cross-platform development tool.
The different approaches
In the not so far away olden days, where the internet was best experienced using one of several possible web browsers, a responsive web site was a must for every organization with its self-respect intact. The idea behind a responsive web site is to adapt its presentation per the capabilities of the client screen size. Using HTML and CSS techniques, like schemes for grid layouts and possibly also media queries, the web content is shown in a meaningful way using a single code-base, which is of course, seen from a development perspective, a huge advantage. A good example of a mobile friendly presentation framework is Bootstrap.
But, soon the opponents of the responsive techniques got wind in their sails. The users demanded a more fine-tuned native experience using their favorite mobile device, whether it be cooked in push-messaging, in-app purchases or using onboard features, like the microphone, camera or gyro. And then, the headaches hit the masses of wannabee mobile programmers.
Suddenly, they had to master quite different development languages and environments, like Java/Android, Objective-C/Xcode and .NET/Visual Studio. And preferably, all at once. We won’t go into detail on native development in this blog series, but it’s fair to say, that although certain app types demand a native approach, in general, a lot of apps out there need not be confined to the possibilities of a single platform or device.
So, for some time the battle went back and forth, but then a third way of doing things emerged. People realized that, the advantages of a responsive solution can still be harvested using a hybrid approach. Using an embedded “WebView”, which is essentially a basic implementation of a web client, the benefits from the single web layout co-exists with the advantages of being close to the hardware on which the app is running. But still, you would have to develop and compile separate code-bases for each app vendor.
Now, we’re in 2016 and the cross-platform wave has hit us. Among others, CEO of Microsoft, Satya Nadella, talks about a “Mobile first, cloud first” strategy , and has proclaimed that “It’s crazy to abandon what you’ve built, and it’s crazy not to want what you’ve built across the broadest set of devices” .
So, getting a single code-base covering multiple devices is a big thing and although there are more development alternatives to choose from, like Adobe’s PhoneGap (aka Apache’s Cordova), Xamarin looks the most promising.
So, getting a single code-base covering multiple devices is a big thing and although there are more development alternatives to choose from, like Adobe’s PhoneGap (aka Apache’s Cordova), Xamarin looks the most promising. Xamarin have been acquired by Microsoft themselves, which to some could be the reason to avoid this product, but the “Evil Empire” looks like they are on a road to redemption, so let’s see who wins in the long run.
Xamarin touts a unified cross-platform development solution, which requires (but does not limit to) knowing only one implementation language with a single code-base.
In the next article we’ll take a quick look at a simple responsive solution and a hybrid one, while we develop a mobile version of poker planning cards . Please, find the article below.
 Look to e.g. https://www.comscore.com/Insights/Blog/Number-of-Mobile-Only-Internet-Users-Now-Exceeds-Desktop-Only-in-the-U.S
 http://ind.pn/2gKf8mO, “Independent” link to Microsoft quote
 PLANNING POKER ® is a registered trademark of Mountain Goat Software, LLC. Sequence of values is (C) Mountain Goat Software, LLC