Android Support vs iOS Support
fidlee.com
fidlee.com
iOS needs a whole OS update to update things like Mail, Maps, Safari, Siri, Notes, Reminders, Camera, Photos, etc
On Android, many of the core equivalents are available as Play store updates with the exception of stuff like Chrome and WebView which had deeper OS dependencies.
Is someone stuck on say, Android 4.2 (two releases ago) in a worse situation than someone stuck on iOS 5? The Android user in many cases could still get the latest Google Now cards, Chrome, Gmail, Maps, etc
Yes, it was bad in the Gingerbread era. But if you've got Jellybean or equivalent, in many cases, you don't need to be on KitKat to get the majority of the latest features.
The issue there is that for someone living in a country where data is expensive, a 10MB download is better than an ~800MB one every time there's some bugfixes/app updates. Plus from my knowledge, Play Store can deliver a patch of the app, instead of downloading the whole 10MB.
Aside from Maps (for which there were alternatives) the other apps haven't really had any urgent patches bundled into minor OS upgrades that I can recall.
One could even say that the advantage of Google being able to system app updates on the Play Store is that Android apps competing with iOS ones (not a great comparison, but Google Now and Siri) have an advantage in that Google keeps on pushing updates regularly as and when they are ready, whereas Apple would update Siri during a major OS update or the incremental ones. [I am aware that back-end services/responses are updated regularly by both, but I'm referring to code which would change an app's behaviour].
This is not true for apps that come with the OS. Some Apple apps were updated later, but only those that come from the App Store like any other regular 3rd party app.
The advantage Google has to be able to update core apps from the store instead of through OS updates is specific to Android's nature, because it allows them to work around OS updates not being available to customers (because of carriers, OEMs, whatever). Apple doesn't have that problem because they update the OS themselves. Also, Google likes to update its software more often than Apple does.
Yes they do: http://cdn.macrumors.com/article-new/2013/09/ios_7_0_2.jpg (since iOS 5).
Some of my relatives who took my iPad 1s when I bought new Ipads for my kids are stuck on iOS 5.1.1. Those iPads are from September 2010, but stopped receiving any updates for system apps as of May 2012.
So yes, granular, loosely coupled updates are better than "rebuild the whole tightly coupled world and ship a firmware-diff" updates.
In particular, if an app is not tied to specific kernel features on Android, changes are it can have along life, because Android OS level services like Google Play Services can be independently updated as well.
My iPad 2 (just over two years old) is a real pain with iOS7, virtually every time I switch apps the app has to restart from scratch
Still, I have zero issues with iOS 7 on my iPad 2 and my parents are happy on their 4S.
Android and iOS have different development models, if that isn't taken into account then comparisons are meaningless. Google often gives people the chance to opt into beta or dev releases, by this standard nearly every desktop Chrome user is two versions behind the latest release.
BTW, Chrome is available from the store, though webvew isn't (yet).
For me as mobile developer, this is one of the reasons why I'll keep developing iOS apps first and target Android second.
Android adoption rates can be seen here[1].
http://developer.android.com/about/versions/android-4.4.html
All pretty reasonable for an API upgrade, and I don't think it's going to break legacy.
what? surely you just use the new features as and when they become available and always use the oldest API as a 'base level'? this is the same for all platforms... including iOS - if you approach backward compatibility as something you seriously want this is not even a problem. even given the quick uptake on updates in the iOS world, supporting just iOS 7 seems a bit nuts to me.... maybe i get the wrong end of your stick though.
i'm kind of mystified how you are doing things to make this the case... the only significant headache i have ever had with backward compatibility is when apple stop me from being able to do it by force.
In iOS often newer versions of the operating system make certain functionality much easier to develop due to the new API's that are added or existing API's that are extended or improved. I personally don't find backwards compatibility hugely important, I just want to provide enough backwards compatibility to serve 85+% of the market. I think in the coming months we'll reach that stage for iOS 7, so for the current app I'm working on will target iOS 7+, that is if I can convince our client this is a good idea.
Sadly, for Android I'm likely required to target versions 3.2+, which means some functionality might not work as well or look as great compared to what's possible in the newest versions of Android, especially if I find myself using the lowest common denominator of API's. I don't like to do extra work just for a small part of the audience, so that is something I'll try to avoid (perhaps some people will hate me for this?).
I understand wanting to support 2.3 for older/low-end phones, but I've never seen any statistics, including those you posted, that suggest 3.x has enough market share to be worth supporting.
In general though I think as an approach it is customer unfriendly and programmer (or other ulterior motive) friendly /only if the programmer is lazy or starting from scratch/. Eventually you do have to decide a cutoff point based on the time you spend vs. the reward - however if you reuse your code properly these become one time costs that are rapidly amortised - and following the practice of backwards compatibility helps in a cross platform environment to ensure that your /architecture/ is actually future proof and platform agnostic.
As a one man band I enjoy supporting all of the platforms and with a large amount of backwards and forwards compatibility. It might be easier as a team of one, but it makes me feel (that bad kind of) pride when I look at 10+ man dev teams failing to do the same...
This is a bunch of nonsense, support apps back to 2.2 or 2.1 is not difficult and you can easily target higher level APIs even if you use an older OS version as a base API level.
[1] http://developer.android.com/about/dashboards/index.html
also apple should (but don't) reject apps that ask for a front facing camera and yet don't use it. its in the app store submission requirements...
A quick search will bring up tables of which device requirements will disallow which devices, so it's not an unheard of practice. But nobody is excluding potential customers out of spite, it's because the older harware genuinely can't handle the apps.
I have a 3Gs so i can also be exception, like you, and keep upgrading my apps/sites and not having to add "front facing camera" just so i can be a slob and not test for the phone poor people uses.
screw upgrading phone every year. my gaming desktop is not upgraded that often.
apt-get upgrade versus make buildworld :)
...
Base system, of course.
We're still in the Gingerbread era. Yes, it was released three years ago, but almost a quarter of Android users are still stuck on Android 2.3:
Indeed, phones with it installed are still widely available for sale.
http://www.amazon.com/HTC-A510e-Unlocked-Android-Bluetooth/d...
What Google is doing is helping but the ideal solution would be to have people be able to upgrade their mobile devices for at least 3 years. As much as I dislike Microsoft, if they provide a better upgrade path, they could become a much bigger player by making upgrades trivial for the 99.9%.
Now those on Android 3.x are definitely screwed. At least the 4.x phones are getting the new apps, and new APIs.
Anyway, the difference lies here; those EOL'd phones? Yeah, well you have a much better chance of getting a community written ROM bringing you up to date, then you do have the same thing happen to your iPhone 3GS. I want to run TOR on my iPhone, but I don't trust what's in the App Store, and I've no way of putting FOSS on my phone. I give up that choice for a nice well supported handset.
But that doesn't mean anyone who makes a different choice is wrong. Sigh.
First of all, the radio and camera and anything that touches a hardware is proprietary and very hard to reverse engineer. So 99% of all ROMs start with the proprietary blobs being extracted from the official ROMs. So if the last kernel released for your device (e.g. let's say you gave $600 to google for a nexus one, the first phone they falsely advertised continuous upgrades) and now you want android4 there. too bad. it is pretty easy to compile android 4 and flash there. but you will probably not even have the screen working.
I do know what I'm talking about: you have that choice with android. Not every device. But that's splitting hairs. You DONT have that possibility with iOS. That was an okay trade off for me.
More to the point, now that Android has decoupled core apps from the OS itself, older phones can have nice new updated core apps, even when their manufacturer had abandoned them (which I never said was a good thing).
And yes, drivers need to be ported or written. That sucks. But at least there's the option. I don't have that option with my 4S, so when Apple moves on from it, I'm stuck.
[1]: http://wiki.cyanogenmod.org/w/Galaxysmtd_Info
[2]: http://forum.xda-developers.com/showthread.php?t=2526478
Most of my lay friends tend not to even realise they are not on the latest version. Their maps app gives them directions and the camera takes photos.
As for more techie people... that's why I much prefer Android. The ROM scene is amazing, and allows my original Samsung Galaxy S 1 to run the latest version of Android. I also get to experiment with different ROMs that take different approaches to mobile OSes.
* on iPhones they can't install CyanogenMod, Ubuntu Mobile, a custom ROM, newer experimental OSs. versions, Firefox.
* on iOS they can't find enough free apps, they end up paying 5 times more. It's a money trap.
* On iPhones they can't install Android KitKat neither since iPhones are stuck on iOS.
* Newer iPhones are stuck at similar specs to the previous versions mainly they couldn't easily keep the API consistent if they had launched a 6.0inch iPhone and a 2inch one.
* They can't install iOS on a phone with very large screen, with dual sim card, a very small screen, a phablet, a water proof phone, a watch, a virtual machine, a game pad
* iPhones are mostly oversold in US, due to carrier subsidy model. Most people end up paying higher sums during the whole contract, beyond the initial money they paid. It's a money trap to suck more from customers.Personally I hope both platforms stay strong, so we get lots of innovation.
I'm curious, is it possible to upgrade/customize the Android OS in the way you described if you don't have a computer?
Of the "80%", how many care?
> on iOS they can't find enough free apps, they end up paying 5 times more. It's a money trap.
Bullshit.
> On iPhones they can't install Android KitKat neither since iPhones are stuck on iOS.
Meaningless.
> Newer iPhones are stuck at similar specs to the previous versions mainly they couldn't easily keep the API consistent if they had launched a 6.0inch iPhone and a 2inch one.
Bullshit.
> They can't install iOS on a phone with very large screen, with dual sim card, a very small screen, a phablet, a water proof phone, a watch, a virtual machine, a game pad
Meaningless.
> iPhones are mostly oversold in US, due to carrier subsidy model. Most people end up paying higher sums during the whole contract, beyond the initial money they paid. It's a money trap to suck more from customers.
Bullshit.
There is no point is arguing this kind of thinking. If it's reversed, you'd cry FUD. It's meaningless bullshit. Simple as that.
Edit: the whole list is so logically challenged (if something is free, how can someone pay "5 times as much"?) that it wily be a waste of time and energy debating any merit that may be present.
There are some things that iOS 7 does better then Android, and some things that Android does better. Both have a target audience and both are really advanced, but neither is a truly better OS.
I currently own an iPhone 5S. And while I do love the fingerprint sensor and the back-gesture-swipe, there really are some oddities in iOS. Why can't I use a mp3 as a ringtone without using iTunes? Why do I have to use iTunes to add music to my phone? Why can't I choose Chrome as my default browser?
You don't. You have to use iTunes to add music to the bundled Music app. You can use other music apps that have different ways of getting the music onto your device, e.g. Spotify, last.fm, Amazon Cloud Player, etc.
Just like any other mobile device in existence since the invention of Plug and Play and USB.
You don't like how the bundled Music app works but you don't want to install a different music app? You're setting up a no-win situation there.
You can do it, but it's in no way straightforward: all sort of cloud services (no, I don't want to send my files over to your servers in Finland to copy things in my living room), making the iPad a WebDAV server (probably the simplest solution but definitely annoying), SMB shares (only seen on the iPad through crappy or paid apps), iTunes (again, crappy solution, a lot more clicks than a real file manager).
I mean, just because Apple (or the media companies Apple does business with) has an agenda to push you can't blame me for bitching at them. After all drag'n'drop file copying between devices was a problem solved 20 years ago. Now I need special "apps" on either my PC or on the iPad (most of them crapware or paid or paid crapware) to connect glorified "iDevices". The just took that option out - there was no technical reason to not have it and just HIDE the entry from newbies.
Add to this the fact that the app market looks so immature that I feel I'm back to DOS shareware land. Few major companies I feel I can trust to not screw me at a low level (I don't care about NSA intrusions, I care about credit cards numbers being leaked out or major security breaches on code no-one has ever reviewed), no well known, mature OSS apps for the main things I do with my device.
Right now installing an app seems a crap shoot.
Anyway, it's all business reasons and not tech reasons, I get it. End of rant :|
When I use Android phones I have literally dozens of options to get music to play with the stock player. (copy it from a cloud storage, adb push it to my phone, copy with a simple file explorer, download it from a website or use btsync to sync it automatically)
Apple made a big step when the iPhone/iPad no longer needed a PC to just activate it. And then again a big step to allow OTA updates. I think the next step would be to allow some way to add music without using a dedicated PC.
Of course this becomes a problem for developers regarding which versions to target as a minimum, but to offset that to an extent, there are compatibility libraries (both from Google and the community).
Lastly, the aftermarket ROM community is doing wonderful work with supporting flagships and other device ports. It can only get better, definitely not a reason for me to switch to iOS, if I know the differences between the OS features, and what each version of each OS roughly has, I should also know that I can get a custom ROM that will have all and likely more features than stock Android.
For developers it is easy to build an android app that supports android version 2.2 upwards with the compatibility packages. Testing is just a tidbid harder.
Got a Nexus 5 on the way, hoping that I'll have better luck with that.
No, it isn't. Seriously, tell my how compatibility packages address the lack of TextureView in pre-ICS, the lack of meaningful Camera API, the lack of OpenSLES, the outdated SQLite libs, the lack of way to get the native sampling rate, ... (I could literally go on for an hour like this).
Any nontrivial app needs load of work to properly support old versions. And then you can begin the real work: fixing vendor specific bugs.
Things like TextureView, OpenSLES, and sampling rate are app specific and will be a challenge to deal with in general, regardless of platform level. Camera APIs are available in a good state going back to API 8 and 9, which are 2.x releases. Generally speaking, the majority of app developers will not have to deal with the APIs you are talking about, but yes they are flaws and your app may have to target higher API levels or have extra development if you want to support older devices for those things.
> Any nontrivial app needs load of work to properly support old versions. And then you can begin the real work: fixing vendor specific bugs.
Vendor specific bugs are always an issue even in the 4.x releases, this is something that cannot be avoided when developing for a platform with a lot of hardware variation.
In actual development experience, pre-ICS (2.x/3.x) and post-ICS (4.x) are a big divider.
To a user, the differences [1] are fairly minor in my view. Presumably this is why Google groups them all under the name Jelly Bean.
[1] http://technoblimp.com/2013/08/28/android-jelly-bean-4-1-4-2...
Complaining that one can't put Kit Kat on a Nexus S seems a bit like complaining that you can't add HDMI input on your old Sony Trinitron or put ABS on my 1990 Miata.
Meanwhile, a three year old phone (iPhone 4) can run iOS 7 and run it well, albeit without fancy animations and parallax effect. I don’t know of any three year old Android phones that run Android 4.4.
its trivial to solve. test the os update on old devices and don't push os updates to old phones if it destroys the user experience. i'm not going to condemn them for not ruining my user experience...
my issue is the fact that they change their tools and processes to make it impossible to support e.g. iPhone 1 if you want to. My app will run lovely on an iPhone 1 or 3G, but I can not make a version that runs on these phones as well as an iPhone 5. This is a choice, not a technical constraint or avoiding maintenance costs - I'm very sure its /more/ expensive to do this than not.
i'm fairly sure that its part of their strategy to encourage you to use the latest devices. lots of apple consumers seem to be aware that 'apple don't give a crap about you if you use their old stuff' - i've heard this opinion unprovoked from very un-tech-savvy types much more often than once.
if you work with the apple tech much yourself its an obvious recurring theme - they all but explicitly tell you not to support old devices and then do make it actually impossible beyond a certain point.
this is just not the case for android or even windows or any other platform/os except for perhaps games consoles which are special - if i want i can make an app run across all android versions and have one entry in google play and supporting old versions of windows is trivial work usually. apple have the worst ecosystem for this by miles and miles - nobody else comes close
...and actually old android phones do run 4.4 - you have to put it there manually perhaps, but this is at least possible. it actually has performance benefits on older phones too... which is how it should be. the fact that each ios release is significantly slower isn't down to new features or niceness its programmer sloppiness.
> I don’t know of any three year old Android phones that run Android 4.4.
I don't know either (not saying there aren't any). But the (lack of) support isn't Android vs. iOS. It's Apple vs Samsung vs Motorola vs Sony vs ...
For example i own Goog, err.. Motorola phone about as old as iPhone 4 and the most recent version it runs is 2.2 (AKA unusable crap). I use 2.3 via CM and there are 4.x builds available. On the other hand, Sony phones from 2011 (perhaps only some) received update to 4.1. This is just two manufacturers, out of many.
Perhaps you are just noticing the difference between a phone with a processor 1/4th the power of the latest model.
there is also the general phenomenon of people being afraid to update (wrongly) their iPhone 4 or 4S based on their previous experiences with a 1, 3G or 3GS
EDIT: also see other testimonials in this page of comments...
For example on an old phone the chances are you are still using the latest versions of apps, which are now coded for faster models. So trying them on your 3GS means they use more memory, crash more and slow down the OS. Taking a vanilla install I don't think you would see much difference in common tasks.
some of it is certainly OS features though. the framerate on animations can be quite poor - like slideshow poor - when launching an app, swiping at notifications or bringing up the status bar. the onscreen keyboard on the 3G is something i remember as being particularly terrible from when I had access to such a device... it would lose input entirely in some situations. some of this is probably also apps in the background, but its also the OS management of those apps...
ultimately though i think the real thing is that apple don't test in real world usage cases (like you describe) - or have a very low quality bar on what is acceptable on older devices. if the way most users use their OS makes it slow then it just is the OS developers fault imo...
EDIT: i would point out that as an app developer its definitely not the speed of the hardware - its the difference between os versions that i see - nothing else changed.
Those issues were caused by the anemic processor and 128mb of RAM in the original 3G. The 3G was arguably unusable with iOS 4.2 but the same situation really hasn't repeated itself with more recent devices.
Google can provide something better even on old version of OS, but they didn't because it's annoying, so now all the 3rd-party developers must do clean the shit from Google.
Anyway, if Google is not idiot, they should know he problem is the fragmentation, and will offer some better abstraction layer which can cover any old systems too. And I believe the answer from Google is Chrome. Now I believe the Android - which is out of control - is out of focus in Google.
The chart isn't entirely fair, since Google Play Services is a kind of overlay for some APIs that can be kept current without an OS upgrade. But that also has the effect of making closed some parts of the Android system.
Overall, Google could help enable, and could more strongly encourage OEM partners to provide upgrades. I'm not sure why that isn't a condition for Google logo and app suite licensing.
[1] 5.4 million registered users on XDA-dev.com with the majority of the subforums being for Android phones.
I've moved to iOS for mobile devices as well. Better investment long term, especially considering that I am actually paying for some apps and want them to work for more than a couple of years before I have to argue with the upgrade treadmill.
Most companies where I worked were on 2-year life cycle. The new devices were almost free at this point, it made no sense to use the old devices any further.
Legacy Android brwosers will become the next IE6 in terms of joy drained from our lives.