How Google updated Android without releasing version 4.3
arstechnica.com
arstechnica.com
The way Google is currently updating their core apps is the right way to do it, and should have been done from the beginning. Honestly, it seems counter-intuitive that it isn't that way on iOS. I realize why, Apple does stuff that requires tight OS-level integration that they don't expose to others. But the fact that Google and BlackBerry do this means to me that Apple made an architectural choice that will ultimately slow their speed of deployment of key updates. BlackBerry and Google can update their maps apps whenever they want, and regularly do. Apple had to wait for an OS release.
With all that said, I am tremendously disappointed that we didn't see another Android point release. I understand why to an extent, but there are glaring omissions in the OS that make it exceedingly difficult to build an app that has significant features that interface with hardware and peripherals. The Camera API is lackluster, and the Bluetooth support (Or lack thereof ) is just shameful.
The only saving grace of Android is that you can fix these problems yourself, if you know what you're doing. But it isn't easy, and is beyond they capabilities of most devs.
Here's hoping Apple announces something awesome at WWDC. I still love Android for what it is, but they do need to catch up in a few key areas.
I honestly haven't explored the Bluetooth stack too extensively, but I know the lack of a unified LE stack hurt a number of people I know developing products. And it will have ramifications for a long time due to the slow pace of OS updates on the platform.
It's the decisions that Google made when implementing the Camera and MediaRecorder classes that hurt me the most, and will continue to for a long time going forward. What's easy on iOS and BlackBerry 10 is exceedingly difficult on Android. It's a PITA, but also a good thing for me since it makes the barrier to entry by my competitors much higher that I can rest a bit easier. And I can take a page from Google's book and port it back to older OS versions to fix it on all devices so that other devs can use it. Such are the pros and cons of the platform.
That having been said, if you want more BT info, I can help :P
edit: forget those links, I should've known to just seek out the Android Police article - most details including AVCHR or whatever it is: http://www.androidpolice.com/2013/05/15/bluetooth-low-energy...
When there's a new iOS version and iPhone out my wife asks about it because all her nursey mates on the ward are talking about it. It's think how much that's worth.
So if you want to use the new Play Services Maps API, you'll need a device.
I really wish they would find a workaround, because I use the x86 emulators to test various screen configurations.
Also, while this does provide a layer Google can update independently, it doesn't impact most of the OS. So security fixes, or fixes to the framework, sqlite, dvm, kernel drivers, still need to be handled differently.
Doing that would not only make it possible for emulators to run an environment that is similar to a Nexus device, it would enable end-users to join the ecosystem that Google makes money for Google even if their Android device isn't an official Google device.
This, however, does nothing to solve update fragmentation. OS updates change the OS, and certain devices simply don't have the memory, or other hardware restrictions, to allow for newer updates. Those did not include app-stuff, the app announcements were just coupled with OS announcement.
When they introduced fragments in 3.0 they decided to backport them and push them out to older devices. All the new UI libraries get pushed out to older devices, this allows app developers to use some of the latest and greatest parts of Android on all versions.
It's kind of strange they didn't include the Action Bar in the library, but Action Bar Sherlock takes care of that.
With the addition of Sherlock you can follow the latest UI guidelines and APIs without much worry. It makes it extremely easy then to support multiple sized devices, small phones, tablets, laptops.
There is some fragmentation in other parts, like sensors and cameras and such that can be troublesome, but for most apps there really isn't a fragmentation problem. I've never run into anything that wasn't solved in an afternoon.
Of course, if you compared it to writing for iOS, yes it's trickier. If an iOS developer decides to jump into Android without actually learning how the UI works, he's going to have a horrible time. iOS design can almost be pixel perfect, Android is more like a responsive CSS design.
Without the compatibility library being pushed to older devices a lot of this wouldn't be possible.
I would go so far as to say that iOS design can be and often is pixel perfect.
If you're lucky enough to have a stock browser and didn't need to installing Dolphin I'd say you should count yourself lucky.
I have a community of 30,000 users who all complain about the font sizing issue on mobile, and the vast majority of whom use Android and have had to install Dolphin to overcome this single issue.
Unfortunately the software we're using is so restricted in it's templating system that it's unresolvable by us (short of replacing the whole system which we're doing but takes more time). It's crappy to tell people not to use Chrome or Firefox, but there you go.
Take joy in the stock browser whilst it still does sane things.
Edit: And don't get me started on how many sites have CSS menus that simply do not work in Chrome on Android. They work everywhere else, but just not Chrome on Android. Again, be thankful you haven't been upgraded... you've got something that works.
lets not compare iOS, Apple devices are pricier but they are fully supported for hardware and software for 3years, and most users do update their operating systems within days and weeks of a new release