Let me just start off with a tiny bit of background. The first thought that many people will have when reading that headline is that I must be some kind of Apple fan-boy. I would counter that with some personal history.
I love Linux. Or rather, I love Linux in certain situations. I've used it quite extensively for years, both in desktop and server functions. I've built web servers, mail servers, DNS servers, and file storage. I've waded through the dependency tangles on the desktop and fought to get the wireless working on many many laptops. (Remember the Broadcom wrapper installation procedure? I do.) When I had a web design studio, I used Linux exclusively on my machines for roughly a year.
However, I found that when it came to daily functional use, I was spending more time making the system work than I was working at the system. With Linux, I always had some issue for which I would have to find a workaround. Ultimately, I decided that unless I was putting together a purpose-built server, I was wasting too much time tinkering with the OS.
When Android surfaced, I saw a brilliant opportunity for purpose-built devices on open-source software to excel and kick some serious butt. I ran out and bought a Nook Color and rooted it. After a week or two of playing with it, I was again finding that I spent more time getting it to work than I did actually getting to use it.
I figured it was probably just because this device wasn't intended to be used with stock Android. I had rooted it, after all. On top of that, I found the applications for the device to be all over the place in terms of quality or function, or even resolution (more on this later). I found very similar experiences with the handful of Android devices I had to support while I was an IT administrator for several years.
Around this time, I bought a first generation, used iPad for my kids to play with. It has functioned completely flawlessly and still does to this day. Every "app" I buy for it functions as advertised, and they are all designed for this exact piece of hardware, though I understand it is possible to run iPhone apps on the device. I have had zero hardware bugs.
I recently found myself in need of a portable system for writing while I travel, so I started shopping around. I was immediately drawn to the the Nexus7 v2. This thing is a piece of beauty with its amazingly high-resolution screen, thin and light construction, and fantastic battery. Google has put a lot of work into the Play store in the last couple years, which really gave me hope for the application issues. I bought one and did it happily. That part of me that hates being mainstream rejoiced in the ability to figuratively give the finger to the big evil corporation of Apple.
Today, I'm returning it and getting an iPad. No single issue has led me to this point, but rather, a collection of small annoyances has outweighed my desire to have an Android device.
1. Bluetooth is broken.
My intention was to buy a tablet for writing while I travel. I imagined myself propping this thing up in an airport or hotel room, connecting my Bluetooth keyboard, and typing away happily. Unfortunately, what I found was that Android 4.3 (what comes on the Nexus7), has an issue rendering most Bluetooth keyboards completely incapable of functioning.
I couldn't believe it. This seems like it would be a really big deal, but it is yet unresolved. A quick Google search finds that I'm not alone in this. You begin typing and the keyboard goes nuts repeating characters until it decides to stop.
2. Applications suffering from hardware fragmentation.
Google has worked really hard on the play store. I booted it up and it looked fantastic. Things were clearly labelled and buying things was fantastically easy. However, I still found that some applications were just the cellphone versions scaled up. While it doesn't take much effort to uninstall a cruddy app and hunt down another, it is still incredibly annoying. I also downloaded a couple games that crashed when I attempted to run them. I understand that this is because tons of Android devices are out there and it is impossible to build software that will work flawlessly on all of them.
3. Bugginess in both the OS and the applications
This is the biggest annoyance. The touchscreen has decided to become unresponsive at least once a day since I bought it. It will be working fine, but then suddenly finger touches don't count. I have to hold my finger in place for a second for it to register, then sometimes it will register it as multiple touches. A quick reboot fixes the problem, but that is a pain in the butt when you're trying to carry out a task.
When the tablet reboots, it goes through the process of bringing up the lock screen. I don't know about the others out there, but mine does not cleanly transition from boot sequence to lock screen, there is a flickery mess that happens. This is in no way hindering me from carrying out a task, but rather is just another notch in the "this doesn't feel completed" column.
I realize that this isn't necessarily the fault of Android, but my Netflix application has become completely unresponsive several times in the past two weeks. I have uninstalled it and re-installed it, which fixed the issue (twice). Again, not a show stopper, but a pain in the butt. Did I mention that you can't watch Amazon streaming video on it? Well, theoretically you can if you root it and install some unsupported software (which still didn't work on mine), but out of the box you can'y.
I am hoping that I got a lemon. I've owned this thing roughly two weeks and I now have a nasty dead column in the middle of my screen. It isn't completely dead, it inverts colors from elsewhere. If it had worked flawlessly for a year I could almost overlook something like this, but it is two weeks old and already carrying the baggage of the annoyances listed above.
I actually want to love this thing. It is sleek, feels good in my hand, and has a vivid and colorful screen. The sound quality is good, the battery is good, and Android is so close to being something I would hand to my grandmother with confidence. When applications work they are fast, and there's no lag in navigation at all. If I were one of those guys who had to write a review after an hour of hands-on time, I'd be gushing over this thing.
However, I'm faced with the following issues right now:
I can't work on it (I'm not writing a 1,000 word article with the admittedly nice on screen keyboard).
I can't count on it to work correctly when I pick it up.
I really hope that Google digs in and refines this product. I would love to see even half of these problems worked out. I've decided that I'm not in the market for a "fixer upper" right now. I need a device that will actually just do these things. I'll get an iPad and just accept that maybe I'm not one of the cool kids (in my crowd at least).
great breakdown. I have been in many situations where it was open source software that really fit the best. When dealing with php/mysql based open source stuff I actually did go in and modify/fix things.
What I've generally found with open source software is that you have "tracts" where a group of people want a feature and implement it. This means that you have several features that are well done, but since none of those people cared about a couple bugs they don't specifically use, you still have those bugs. There's no incentive to fix them. I don't really know where I was going with this observation, but I've seen it several times.
When I was an IT administrator I found this exact scenario several times. Android is not for people who don't want to tinker. I'm usually fine with tinkering, but at some point I feel like I'm wasting my time.
I think you misunderstood my point, please allow me to clarify.
I wasn't saying that we should accept anything less than what is printed on the box. This would be wrong. Instead I mentioned that more complex systems inevitably can lead to bugs due to several factors. Heck, I even had to reboot my computer 2 times before I could get my bluetooth keyboard correctly connected to write this reply.
For solving those bugs and assuring the perfect end user experience, we are talking about two completely different approaches in what Android does or what iOS does.
1) implementation/quality control
For Android, the platform is open source. Any third party OEM manufacturer is free to develop a hardware system, install Android and sell it on the market. Is google to blame if the end users are unhappy? The answer is obviously no. Giving the OS as open source doesn't allow them to control every single piece of hardware that gets to run their code.
And developing a smartphone is not a simple process: there are dozens of critical aspects that need to be tested, fixed, and the whole process repeated a few times. But in this world, some are more interested in earning quick money than building something of good quality, and so, for some manufacturers the quality aspect gets of minor importance, resulting in end user frustration.
Besides the hardware, there are also bugs in the software. I get your point that open source means nothing for the regular user, but sometimes even for me, as an embedded software developer - I rarely vaste the time to fix something that should have worked out of the box - but this is only a tiny fragment of the big picture: open source platforms come with entire communities of developers working to fix and improve things. Sure it doesn't all happen in one day, but the result is things are progressing and evolving relativelly rapidly. You will NOT get this with iOS. You will NOT get a significant evolution factor with closed systems.
On the other hand, Apple controls the production better. The hardware is carefully designed and implemented, and so is the software. You will get a perfectly polished product that WILL do what is printed on the box.
2) fragmentation and software compatibility
Another issue causing the kind of problems you wrote about is the hardware fragmentation, that the hardware is done in multiple flavours by each of the third party manufacturers - running apps on a fragmented platform becomes problematic. iOS doesn't have this issue.
Fragmentation is not new, remember the many flavours of Symbian? It was a pain for a developer to make a software work on ALL.
Then there was also the Windows mobile, still with some fragmentation problems, but with better implementation guidelines given by Microsoft to OEM manufacturers.
And I'm sure there could be more bullet points / ideas to discuss. BUT, what to choose?
Probably this is a matter of personal choice. A quick answer might be that if you want something simple and robust, go for iOS, and if you are more interested in hacking/modding/changing, than Android (buggy or not) is what offers more tools for doing that.
And a quick story to conclude: before Android 2.0 came out, there was no official Bluetooth support. At that time you could only turn bluetooth on/off, but nothing more, BUT as the platform was open source and Android running on Linux, I was able to use the Linux BlueZ stack not only to use Bluetooth functions, but implement an entire HID client module, to connect a Bluetooth keyboard to my phone (this resulted in the Blueinput software being developed for Android). Can the same be done on iOS. No, but to use Bluetooth for anything at all, you need to enroll in their MFi program that costs close to 10k USD plus royalties. So... it really depends on what you want to do: Arduinos, Automatizations and various Hacks are out of the question for iOS at least when using Bluetooth.
But I'm not saying Android would be better. It's full of issues and there are times when you simply need to give up, both as an end user or as a developer. I'm just saying that Open source has certain advantages, that closed systems will never get. That's all. For the end users, like said above, it's just a matter of personal choice. And yes, doing what's written on the box can be an important personal criteria to choose for.
On my son's last birthday I bought him an iPAD mini and it worked good, ( I own 2 iphones as well) when it was time to buy a tablet for my wife, I thought why not try a Samsung Tablet with android on it.
So I went to costco & bought a 7" samsung tablet. I found that software was clunky APPs will get stuck sometimes, and tough screen became un responsive many time, I thought I live with them,
Then I signed up for google account to buy and App for my wife, It asked me if I want to make a new google account, I said yes, It made me a account but transactions never wnet though, saying am error has occurred. I called my bank to see if they declined the transaction on credit card, and figured out that they did not declien any but Google canceled transactions, then I called google and they told me it will be 2 days before I can buy a APP coz, I made a new google account,
I said screw it... I returned the Samsung, same evening, and bought an iPad mini, and was able to get it running in no time, without any issue,
So we're talking about quality here. Apple is a company very different from others in the sense that they own most of the development of a product. They work on the product behind closed doors and really pulish it untill it gets done well.
The bugs that some other manufacturers would let out aren't aloud at Apple.
This is why the cost for the products is higher. But yet, people love these products. People love things well done.
This is very close to a piece of art. Its a matter of time. If they would work enough time on a product even they could make it good, even with Android on it. But there's money to be made and a product under development can't be held for too long right?
I totally agree with the author. I still recall we made our first $50 Android tablet 3 years ago, and we thought we will sell tons of them to kids. It turned out we did sell bunch, but we also got lots of returns, exactly the same reasons that author talked about here. That's why we switched to vertical market, make customized tablets for dedicated applications. Now open source and fragmentation (or I should say many options on size and hardware) are features instead of drawbacks :). I am amazed by the varities of applications that our customers are using our tablet for: marketing, eduction, control panel, advertisment, you name it.
I, too, often spend too much time trying to get things working at home. (I am no EE but everyone -- like family and relatives -- thinks that i can figure things out because I work for EE Times. Yeah, they don't get that i am just a reporter.) Usually, when I succeed to get things working, it's probably because I am too stubborn and i don't like to give up.
That said, I too found myself dumbfounded when my tablet from that other company worked from day one with no tutorials.
My comment was specifically on point number 2 - which a lot of people raise as a "criticism" of Android.
I agree, if the device does not work as advertised or the hardware is defective, that's a problem. But that's nothing to do with my refutation of #2. But as for example, the bluetooth keyboard ont working, sure that's not good. But then on the other hand, I've found a number of esoteric and "out there" things (but highly useful things to me) that do just work that I would never have expected to work. Sometimes the reality in technologies like this is that you don't get to have everything (there is rarely a device that does _everythning_ you could possibly want) and you have to pick and choose what capabilities are most important and forego those that may be less important. But then that gets back to my point on #2 - With Android and it's "fragmentation" there is a greater chance of finding such a device that suits one's own particular desires. With Apple, if what you want is not one of the few options available, then you're just SOL. For example for me, a phone with a sceen <4in is a non-starter. Or a tablet >8in is a non-starter **. Apple is _starting_ to make progress in those directions, but am I going to wait until Apple gets around to what I want, or am I going to go to someone else that does?
An analogous summary might be: Legos provides for an infintie number of permutations and combinations, but nonetheless, there are some blocks that simply can't be snapped onto other blocks is some configurations. Is that the fault of Lego or of trying to snap together parts that weren't intended to be snapped together in that configuration?
So should we ban all those parts from Lego that don't snap together with all other Lego parts in all configurations and permutations? Or do we accept that those parts enrich the Lego experience even though we might be disappointed that some parts don't necesarily snap together in a way we hoped? If you ban those parts because there are some configuration that might not work, what do you gain? Is the "benefit" of never being _disappointed_ that a part doesn't fit together like you hoped worth the cost of never having the beneit of that part in _any_ configuration that might also be desireable? My answer is no. But if such _disappointment_ really gets one's knickers in such a twist, then maybe the sacrifice is worth it to not get one's knickers so entwisted. And for them, there's Apple.
** - this is not strictly true as I do own a 10.1 tablet in addition to my 7" tablet. But I use them differently - my 10.1" is "home use", my 7" is "mobile". 7" or 8" is _my_ ideal protable size, 10" is just too big for that (but great for home, and 7" is just too small for home use, hence why I have the 10"). But where "mobile" is part of the "definition" of a tablet, the standard size iPad just doesn't work for me. (Admittedly, the mini is probably a decent size, but then would that really exist in a world without Android tablet "fragmentation"?)
Join our online Radio Show on Friday 11th July starting at 2:00pm Eastern, when EETimes editor of all things fun and interesting, Max Maxfield, and embedded systems expert, Jack Ganssle, will debate as to just what is, and is not, and embedded system.