Android fragmentation, development frustrations

12 04 2013

As a developer we want to be able to produce nice maintainable code, ideally a single code base and deploy that on as many platforms as possible. While on the desktop this is pretty simple, come to the world of mobile and well, things get more complicated, with Android I would say a mess really.

Androids fragmentation makes it hard to support all devices, hell, there isn't even a business case to do so

Androids fragmentation makes it hard to support all devices, hell, there isn’t even a business case to do so

Things to consider

I don’t want to talk about cross platform development etc. rather there are a few blogs I’ve written on this subject already (see Cross Platform Mobile Development – CloudZync blog, and one of my recent blog posts, Cross Platform mobile app) , so for the point of this post, we will presume that you are going to build a native app with a technology like Xamarin (Monotouch). So what challenges are there then to build an app that works on multiple platforms?

Well first off what platforms are supported? At the moment, that’s limited to iOS, Windows Phone and Android devices (no Blackberry in there at all – though I hope this changes if Blackberry 10 starts getting some form of traction in the consumer market). For each of these operating systems we still need to take into consideration the actual platform style, there is no point in trying to deliver a Windows Phone type app to an iOS device as it simply won’t work (they don’t share the same controls and the look and feel would be a very jarring experience). You may be thinking that that means you still need to maintain separate code bases, even with our cross platform technology, but you would be wrong.

The beauty of C# and the whole Microsoft development environment is the way you can structure applications. If you are familiar with MVVM then you will understand my point. MVVM (Model View ViewModel) allows a developer to separate concerns within the application, to be very basic, it means we can separate out the UI elements from the actual working code. (Have a read here if you want to undertand MVVM) So we can maintain a single code base in essence for the app across the multiple platforms even if we change and modify the UI.

Fragmentation

This is the point of this article, while we have to do different things for different operating systems, we have to do different things still for the same operating systems even, well in the case of Android quite a lot different.

With Windows Phone and iOS, life is pretty easy, the only real issues relate to image sizes, so you have to package up a couple of different size options for icon images (which can be a pain). With iOS you do have to consider if you are deploying to an iPhone 5 as opposed to an earlier device, due to the screen sizes. For example, in the CloudZync Zync Terminal app (an app that allows merchants to raise and process mobile transactions), on an iPhone 4, we had to place a “done” button into the keyboard in order to hide it and show the rest of the screen, in the iPhone 5 this wasn’t needed as the screen was longer and we didn’t need to hide the keyboard (something that only really got spotted in testing).

So while doing these few extra things can be a pain, they are all pretty small. Then we look at Android, and this is when things get a little harder and a pain to be honest.

Android not only has a fair few flavours on the market, it also has a number of issues with the types of devices it can be found on. So while we are packaging up 2 versions of an image for iOS, on Android we find we could be packaging as many as 10! That’s a real pain to say the least, but not a real head scratcher.

The real problems arise when we look at the different flavours of Android and how they act. When testing apps across different Android flavours we notice we get different experiences. What is really frustrating is how different those experiences can be and what that means in terms of coding and testing. But things get worse still. For example we looked at developing our Zync Terminal App for Android and looked at a few different Samsung Galaxy devices. All consistent you would think, but nope, they aren’t. On top of that we noticed we had to use different API calls on different phones to access different parts of the device, such as the camera. That becomes so frustrating, not to mention time consuming in terms of development, but also in terms of testing, and time consumption means expensive.

Let me give you a little interesting point about our development, it seems that the cost of building and testing our app on iOS and Windows Phone together was about the same as the cost associated with just building for the major Android devices (so that’s us cutting corners and not supporting a lot of Android devices officially). To me, that can’t be right and is not a good place for Android. I can build an app for two very distinctly different operating systems with completely different experiences for the same price I can build an app for a single platform, Android…

Technically I’m not being fair, as this article suggests I’m looking at Fragmentation, so I’m actually developing for 3 versions of Android and umpteen Android based devices – as opposed to two operating systems in iOS and Windows Phone.

Conclusion

I want to maintain as much code with a common base, and we use Xamarin to deliver our apps on Android. The sad fact is that it doesn’t make much business sense to support all of the Android flavours or devices. The fragmentation issue just makes it too expensive to really develop for all Android variations (especially when we look at the demographics of a number of Android users).

While Android holds a very healthy market share (across all flavours) it makes sense to build for Android, but I do find myself hoping that iOS, Windows Phone and Blackberry start taking large chunks of market share away from Android. As an OS to for businesses to build for, businesses that want to maintain code across multiple operating systems, who want to deploy apps with great consistent robust experiences, Android is miles behind Apples iOS and Microsoft Windows Phone.





Is there such a thing as a bad Smartphone?

8 11 2012

If you go online and you look for articles on Smartphone’s you will no doubt find loads of reviews of particular phones, operating systems, features etc. and unfortunately you then more often than not get a biased warped view based on the authors preferred device, brand or ecosystem. Unfortunately actual facts and relative information back down to an average user is just lost or not present. Opinion in mobile is, well everywhere, and yet when we think about it, can we really purchase a bad Smartphone these days?

 

Dumb to Smart

It all depends on what you want from your phone, but many more of us now want our phones to be a useful device, be that just for searching the web, consuming some content or actually trying to carry out some small amount of work on them. This is illustrated by the amount of market share Smartphone’s now command across the globe. But if you are moving from a dumb phone to a Smartphone do we really need to know every feature of that device or ecosystem? Probably not…

 

Purchasing

My brother-in-law works for a mobile phone network provider here in the UK, and I always like to get his insight into the kind of people who come in and purchase Smartphone’s. The truth is that the majority of us just want a Smartphone, and because we have heard of the iPhone or Samsung Galaxy, that’s what we go in and ask for. We have no idea why we want those phones over another brand or device, just that these are the phones that people are aware of, and that’s great testament to both companies marketing capabilities. It also shows that many of us purchase mobile phones still very much based on brands we have heard of and what our friends have purchased. We don’t purchase a phone like we would a PC, spending time looking at the specification, the pro’s and cons of a particular bundle from the store etc etc. We still see phones as a short term thing which will get renewed in 12-18 months (if on a contract).

Obviously I’m generalising here. There are lots of people who pick their phone based on the quality of the device, the camera, the durability, performance and of course the operating system. But these types of people are the minority (though if you read blog posts or technology articles you would think everyone was a phone expert. We must remember that the majority of phone users do not go near a mobile phone blog or technology magazine).

As a mobile phone manufacturer or operating system, this all means that marketing and relationships with the network are the only way to shift mobile phones. The main audience therefore has to be those moving into Smartphone’s for the first time, mainly because anyone who has had a Smartphone for 24 months is probably attached to that operating system, and therefore more likely to stay with that particular device or brand. (Especially if they have purchased a large number of apps) For the likes of Nokia, RIM and HTC this means all is not too late, since Smartphone users make up just over 50% of the mobile phone market, that leaves another 50% of untapped customers. The battle lines therefore are still being drawn.

 

Consumer education

The problem for all mobile phone manufacturers, with the exception of Samsung and Apple, is that the 50% of potential new Smartphone customers are not that into the real benefits of a Smartphone device. Rather they are getting one because they can send the odd email, surf the web and perhaps use Facebook. Let’s be honest, any Smartphone therefore is a great purchase, and no doubt these customers will just request the phones they have heard of, so the iPhone and Samsung Galaxy.  That’s a problem…Though customers will be happy, they could have been a lot happier potentially with a different device or a different operating system, especially if they were shown or told about all the options.

An example is my own mother. She wanted a new phone, but was told to get an Android Samsung Galaxy, mainly because that’s what the sales guy had. He didn’t take into consideration any of her needs, requirements, what she was looking for neither in a phone nor from the OS. My mum actually wanted an OS that played nicely with her office work, an OS that potentially would tie up with her tablet that she is looking to purchase and something that was really easy to use, real easy. For me, that meant really only looking at the iPhone or a Windows Phone, of which the sales agent didn’t have much in-depth knowledge of. He could talk about the iPhone, but as for Windows phone devices or Blackberry, nothing to say at all….In the end I got my mum to pick based on the UI, what felt easiest for her to just pick up and use, and she went with a Nokia Windows Phone 610, an entry level Smartphone that does everything she wants and more.

The point here is that my Mum would have ended up with a phone that she would have thought was good, but not one that was great for her. I think that’s a problem manufacturers have to overcome with network providers and sales staff somehow.

 

Any Bad Smartphone’s?

Essentially, there are no bad Smartphone’s these days, technically. However, there are bad Smartphone matches for users. The problem is that sales staff don’t marry up what a consumer wants to any given device, rather they let the consumer just real off a phone they have heard of, or sell the device they have themselves. This means that a good Smartphone will feel like a bad Smartphone for a particular user because it simply didn’t fit their criteria, or they have since seen another device that better suited their needs….If sales agents and consumers treated phones like a very expensive purchase, one that needed to match to a consumers requirements, then we would see a very different mobile phone landscape of that I am sure, and there truly wouldn’t be a bad Smartphone….Until then though, status quo…





The Android debate

27 10 2011

When anyone talks about Android there is a lot to be said, be it “Android is the most popular Smartphone OS”, to comments that it’s “the stolen OS”.  Steve Jobs even stated he would “kill Android”. But there is no getting away from the fact that Android is a feature rich OS, that it has now almost 40% of the Smartphone market share (though Smartphone’s don’t even make up 30% of the overall mobile market) and that Google owns it, and now a mobile phone company…

Competition

There are so many Android devices out there now, and from a range of manufacturers, so much so, that getting your hardware noticed is tough. When you walk into a store and see so many phones all running the same OS, how do you set your hardware out to be different (especially to the average mobile punter). Price…Oh dear…

Poor mans iPhone

So many people who have Andoird have it because they couldn’t justify getting an iPhone. I know many people who have opted for Droids because of price, but they really wanted an iPhone. The same applies to the “kids” that have Androids. Essentially many have them because of price, and once they get a little older move over to the iPhone. That must be a worrying trend. However,
is it a surprise? Probably not since Android feels like a cheap clunky copy of iOS in so many ways…

 It’s free, it’s Google

One of the reason Android has been a success is that is been seen as the free OS, allowing many a manufacturer to ship it on their devices, enabling Android devices to be “cheap” and swamp the market. That is essentially how Android has got it’s market share, and there is nothing wrong with that.

But is it really free? In the past couple of months we have seen a number of patent deals being agreed with Microsoft for Manufacturers being allowed to use Android. In addition to that, we have seen Apple halting many Android devices due to patent infringement. These are problems manufacturers can well do without. Ask yourself, as HTC or Samsung, do you really want to spend a lot of time on R&D only to have your devices stopped from getting to market? Do you want to have to pay a third party company license to use software that essentially belongs to another company? No you don’t…

Throw into the mix that Google now owns Motorola and has effectively secured its own hardware for mobile devices. This must be a worry for HTC, Samsung and all those that sell Android devices. Do you really believe that Google will continue to provide updates to their OS to give away to competitors of their own devices? If they do, then that’s crazy business thinking from Google.

 

Nokia?

I have read many a comment in the past day or so that Nokia should have opted for Android, or they should be making Android devices as well as Windows Phone. But that makes no sense from a business point of view. The Android market is all ready crowded, and how does Nokia regain its Smartphone market share by entering a dog fight with pretty much every other manufacturer
out there? Especially when all they can compete on is price and some nerdy hardware specs (maybe some design too). That’s just too tough. Throw into the mix the hassles you can have with Android and the fact that Google now owns Motorola, and Android looks very risky…

Windows Phone makes perfect sense to me. In many ways it is the overlooked OS, and that’s because no one really knows about it (phone nerds do, but who else). Not many have actually seen it advertised or ever even noticed it in stores. So for Nokia, Windows Phone market is easier to enter, and they know they can sell aggressively against the other Windows Phone competition.

The Windows Phone OS is good, very good. Pretty much everyone I have seen play with it, likes it, they find it intuitive, they like the live tiles and they love it’s simply integration with social media.  It provides something very different to Android and iOS, and as such, that means making a Nokia device stand out on a shelf is made that much easier.

Finally, Microsoft want to get involved in the mobile world, and they know Nokia are the biggest mobile brand out there (still), and that Nokia can get Windows Phones into the hands of millions of people, and ensure Nokia and Windows Phone grab market share.  I wouldn’t be surprised to see Nokia grabbing Smartphone market share quite quickly, which I am sure will make other manufacturers look closely at Windows Phone and start investing more in that OS. It is already happening to some extent with HTC and Samsung…

To finish…

Android has shocked us all with how much market share it has grabbed, but should we have been surprised? In many respects it’s a free, clunky version of the iOS that DOES cost manufacturers in terms of licensing etc etc. Now that Google owns Motorola are companies confident that they will be given the same OS to compete with Motorola? How many other instances of Android devices being banned can we expect?

All in all, Android may have shot to popularity, but there are many question marks above it, and it seems many more are being raised as time moves on. Will these question marks deter manufacturers from using Android? I believe they will over time, and I believe that Windows Phone will be there to grab market share – and that at the front of that pack will be a company from Finland, a company we all used to love…A company called Nokia…