I'm giving up on upgrading my apps for Android. The releases are dividing the market every single year and consequently steadily eroding sales.
On the one hand Google's Nexus was released 3 years ago and is now obsolete; on the other hand Apple's iPhone 5s was released 5 years ago and gets to run iOS 12. On top of this, the vast majority of my paying customers use iOS, not Android (a variety of lifestyle and reference apps).
This is disappointing; I can't financially justify further development for Android.
Oreo, released in 2017, is at a pitiful 12% installation share. [1]
The only way you get only 12% installation share on Oreo is if you're targeting Indian continent with Hindi localisation.
For a western world targeted app, the stats are around 35-40% for Oreo right now. So you seem to be deliberately ignoring your own installation stats just to complain - the dashboard you're posted is pretty much not relevant for anyone but multi-million installation apps like Facebook.
In other words, if you ignore Oreo users, you're ignoring more (wealthy) people than there are owners of iPhone X.
Also I simply fail to see how releases are dividing the market, considering the fact that for most apps new releases don't really require nearly as much maintenance as they do for new iOS releses. Granted, Oreo and P require a bit of work for apps that run in the background, but vast majority of the apps will just work if they implemented proper privacy respecting permissions since the release of 6.0 in 2015.
Just to be clear - I don't mind if you give up Android development (good riddance actually, way too much toxic people in the community), but PLEASE do not spread misinformation.
The OP wrote a post which has nothing to do with article at hand and is deliberately misleading. I think the term is fitting - it's complaining for complaining's sake. And that's toxic in a community.
Compare it with the frontend developers - dealing with Android fragmentation is signficantly easier than dealing with browser and device fragmentation as a web developer... and those topics aren't full of people complaining.
I'm not the OP, but there are some changes to background execution limits that can have a fairly large impact on older-than-Oreo apps if you build against SDK 26:
You've been able to avoid dealing with these changes for a while now by simply building against an older SDK, but Google is in the process of restricting the ability to put any app built with an older SDK on the Play Store. I think you already can't list new apps that use an older SDK, and existing apps won't be able to update to new APKs using older SDKs starting in November.
FWIW, I understand why they made the changes here, and they are user-positive, and just abandoning Android over them seems like an incredible overreaction, but speaking as someone who has been updating an older app to deal with these changes, there are some real pain-points here if you're bringing forward an older app.
> existing apps won't be able to update to new APKs using older SDKs starting in November
So, some developers will probably defer handling the changes until November, and then if there is some critical bug (security or otherwise) they won't be able to just fix the bug without also building the rest of the app with the new SDK as is, broken/untested even if it compiles?
For any kind of app targeting westen world (meaning - it's not localised into Hindi, African and Chinese languages), the market share of Lollipop will be below 20%.
According to most app stats I've seen (mine and others), Android 6.0+ is pretty much on 80%+, with Oreo nearing 40% since Samsung started rollouts.
> For any kind of app targeting westen world (meaning - it's not localised into Hindi, African and Chinese languages), the market share of Lollipop will be below 20%.
Where exactly are you getting this data from? Please do not put random numbers without citing sources.
It's based on my personal and my company apps. Obviously I can't give you links to our Play Store / Analytics backends. I guess there's an aggregator somewhere?
What are you upgrading? Usually it's just a matter of changing a couple numbers in the Gradle file. The only headache with new SDKs are if you're trying to integrate new features that aren't in appcompat but even then it's straight forward to support.
There's been tons of subtle and not so subtle breaking changes from bumping targetSdkVersion, many that only manifests at runtime. Things like runtime-permission-grants, three iterations of C2DM, GCM, FCM, notification handling, inner classes in activities and fragments, background processing, NDK changes, etc etc. If you have a low-churn legacy but still useful app, coming back every year and between the subtle api changes (which require runtime testing on old and new android devices) combined with an ever-reorganized google api console and play store console and firebase console is quite an effort. But I guess that's the cost of playing in the play store and for progress in the mobile OS landscape.
Accounting for installation numbers only, there are about 6 Android users for each iOS user in the world. So targeting API 25 (Nougat 7.1) already gives you access to a bigger number of users. Targeting earlier API versions only increases that number.
- Most apps aren’t targeting “the world”. Assuming your app is targeting English speaking countries, that skews the numbers more toward iOS (still not a majority), then if your app requires a decent level of hardware, that skews even more toward iOS. Now if you actually want to target people who have the willingness to pay....
Well that's part of it too. "A lower ratio of Android users are willing to pay than for iOS users" is a meaningless statistic for someone that wants to target people with high-end phones willing to pay. Because those ratios refer to the whole world. They do not mean "there are more iOS users willing to pay than Android users".
> if thier average selling price per phone is still only $235 [...]. Even they sell mostly low in phones.
Irrelevant for the exact same reasons as the other statistics above: selling more and more low-end phones decreases that average prize without decreasing the number of high-end customers.
> Epic didn’t even bother supporting but two Android devices at launch
You say this and link to an article that says it's some sort of exclusivity deal for the first 30 days, not actually lack of support for other devices.
Like, counting on the chance that people give credibility to a sourced comment without bothering to read the actual link? Or what was that about?
So do you have conclusive numbers showing the number of high end phones that are Android phones and if so, who are selling them in volume if not Samsung? How many loaned crappy phones does Samsung sell to bring down the ASP if I’m fact they are selling high end phones at any sort of volume?
I haven't claimed anything needing backing up with numbers, only pointed out which statistics are misleading. I'm afraid to read that article you linked in case it contradicts what you said though, so I'll pass.
Since this year you won't be allowed to do that anymore - since backwards compatibility behaviour allowed app developers to avoid privacy protecting features like runtime permissions.
I'm not an Android developer but they say supporting older versions should still work:
"Existing apps that are not receiving updates are unaffected. Developers remain free to use a minSdkVersion of their choice, so there is no change to your ability to build apps for older Android versions."
Yes, you can still support older versions. But the app must target at least Oreo, which means supporting the new permission model on newer versions of Android while making use of unfettered access on older versions.
>On the one hand Google's Nexus was released 3 years ago and is now obsolete; on >the other hand Apple's iPhone 5s was released 5 years ago and gets to run iOS 12.
Which nexus u mean? Nexus 5x got oreo. Reg iPhone 5s, though u get iOS 12, if you use it as daily driver - I mean with maps/browser/uber/whatapp/fb/instagram like a common user does it grinds to a halt. Sure my boss has no apps just uses EMail/calling on a iPhone SE (5) still slow with iOS 11. YMMV.
Whether u hate or love android is here to stay and consumers love it. Most people do not use the phones so long (sadly)!
>On top of this, the vast majority of my paying customers use iOS, not Android (a
Android developers get around 3-5 years before they stop rationalizing the potential and ditch that ecosystem.
Apple won this battle. The actual android users that "can't stand Apple and need control" have no clue what they are missing anymore. They haven't looked at Apple since 2013. Unlike Blackberry faithful, Android users really do have great more advanced technology on paper, but look, nobody cares.
I've got an iPad I use regularly and develop for so I know iOS inside and out. My wife has an iPhone and I have to support all her bullshit all the time. I've been using Android since the Galaxy S2 and I'll keep my Android thank you very much.
I'd trade my iPad for a new Nexus 7 in a heartbeat were one available. My non-tech savvy parents have been using Android for years. They don't give a shit about Apple.
I don't think your characterization is accurate at all.
Actually I have noticed one thing about parents i.e. the older generation (tech savvy or otherwise) they don't give a shit about anything they are not used to as long as they can get work done with whatever device they are already familiar with. It's good to see that they do not go after every new (over)hyped feature (which might not even have a practical use) unlike a lot of newer generation just for the sake of getting the latest toy.
Sample size 1 here. I used an iPhoneX for a few months this year. It was my first iPhone, and I loathed the browser lock-in and the lack of automatic contacts sync. The UX is far less consistent than modern Android apps (e.g. the back functionality out of an app). I missed my app drawer as well. The iPhone was free from work, yet I paid out of pocket for a Galaxy S9+ so I could go back to Android.
Huh? For anyone reading this please know that, sorry, this is completely false iOS supports contact syncing. I've been syncing my contacts from my iPhone since the 3G days.
Not only that, but I sync my contacts from my iPhone to macOS through Google (so they work in email also). Anyone who says the contacts do not sync, I have to wonder if they really tried the iPhone.
I have been Android developer since ~7 years and I finally moved to iPhone ~2 years back with iPhone SE (mostly because it was the only sanely sized as per my needs and taste) and I also got the iOS 11 upgrade with the rest of the world and will get iOS 12 again in sometime.
My experience on iOS has been a lot smoother than that on Android. It almost never crashes esp. when I compare it to my Android experience of almost 6 years where crashing apps, frozen phone felt like a feature. Upgrades were a never fulfilled dream and sometimes promises (like Moto's). Unless I bought a real costly phone I'd not even hope to get an upgrade and if it wasn't something like Nexus (and now Pixel) or something like an OnePlus device I'd not even except an upgrade let alone timely upgrade.
I stopped missing back functionality out of an app exactly on day 3. I hated every browser on Android including Chrome. I had moved to Safari on Mac and iOS Safari experience is superior to any browser I had tried on Android.
Yes, it's been a compromise and my comment might seem like a convert's zeal (though I do hate Apple's ecosystem lock in of things like FaceTime and iMessage and other things) but I also no longer want to tweak my phone - root it, run mods, run XPrivacy, hope for a "maybe" upgrade", hope that a security patch will be sent to my phone etc etc. I am done living on the edge.
However I also must add that if someone isn't using Macs and other Apple devices and don't want to change just to use an iPhone (I wouldn't) then using an iPhone might not be as convenient.
By the way, I am still an Android developer even though when I dabbled with iOS dev for sometime and tried Apple's developer ecosystem I realised what a piece of garbage I've been using in Android Studio but that's entirely a different matter.
I have your similar opinion. I was an iPhone user from the original iPhone to the 4s. I wanted a large phone, and wanted to experience Android so moved to an HTC One X. It was okay, but it didn't have the vanilla Android experience so I went to the Nexus 5 and even had a Nexus 7. I was satisfied with those, mainly because the price matched the performance/build quality/random issues I had.
An OS update caused my Nexus 7 to take minutes to open apps (I think it was eventually fixed), and my Nexus 5 kept having a random google process spin out of control and drain the battery to zero in minutes. I decided to take another look at the iPhone, and switched back. It also didn't help that Google dropped the budget line and moved towards flagship pricing.
I doubt I'll switch again since functionality is roughly equivalent between the two, and the iPhone I think is the better of the two wrt privacy. Is the iPhoneX perfect? No, but it's easily the best phone I've ever used.
BTW, I have developed and released both Android and iOS apps. Be happy you even have Android Studio now. For all the complaints about Xcode, the overall experience is a pleasure compared to developing for Android. I don't know what it is like now, but debugging in iOS was easy compared to just even getting the emulator running on the Android side. The iOS frameworks also provide so much functionality. I don't program native mobile apps at all anymore. I do miss it though.
Making an assumption here, but I assume you loathed the browser lock in because you tried using a different browser, probably Chrome. Thing is, for iOS, you have to drink the koolaid to truly see the benefit. Personally coming from Android it's so nice not being asked which app I want to open a link in all the time, I dont have to think about it. I know that sounds silly because you can choose a default, but it's too many options, I don't want to have to choose and think which option I'm going to want more often as long as it works.
While I suspect you're right (a number of my family members use a full Apple ecosystem and love it), to someone who doesn't there seem to be an almost endless number of changes you need to make.
I've had a couple of iPhones, and at times tried to fully use their system, but that promised "perfect simplicity" seems to always be around one more corner. Change your browser. Change your music provider. Change your backup procedure. And after all that, your Windows PC is a problem. And there I hit a wall, because I can't justify changing my PC, which is my livelihood, to an unfamiliar system in the hopes of simplicity.
I'm not knocking the Apple paradigm for those who are inside it. But transitioning to that apparent state of seamlessness feels nigh impossible.
On mobile. Your mobile browser has nothing to do with your desktop browser AFAICT.
> Change your music provider.
Apple Music, Deezer, Spotify, YouTube music (or whatever it's called now) all work perfectly on iOS, no?
> Change your backup procedure.
Theoretically yes, if you were performing manual mobile backups before. Otherwise,you just let Apple handle it (and you're free to back up the gigantic image files that iTunes leaves on your PC yourself)
> After all that, your Windows PC is a problem.
What is your windows PC a problem for?
> that promised "perfect simplicity" seems to always be around one more corner
I disagree. If you use safari and iCloud you get the perfect simplicity.
On Android, that simplicity doesn't exist. I bought a flagship (galaxy s9) phone about two months ago, (my first android) only to find out that on a £700 phone:
- Samsung bundle their own crapware, including a crappy launcher and a borderline unusable keyboard
- They have their own standard for messages, health, Samsung pay, contacts, and camera, and their own app store.
- all of the above are slightly different to the Google versions, or the Huawei versions.
- they have bugs breaking fundamental functionalitied (work profile custom keyboard). Am I supposed to research every android feature I'm interested in using and check it's going to work on the (flagship) handset I try and buy?
- permissions. There are apps out there with the crappy old permission model, some apps that just ask for catch all permissions and refuse to work without them, and the monitoring of permissions on Android is laughable.
- updates. I found out yesterday that actually the android update has to go through Samsung, and then through my carrier, so it'll be 6 months before I get the latest version of Android (based on last year) on my brand new top of the line device.
Overall, almost that I've done on Android has been more difficult than on iOS.
It's rather sad to see how none of the comments here are actually commenting on Android P/Kotlin friendliness.
(Which is available to all Android developers, not only those targeting P - the nullability headers will give you all the benefits even if your app supports older Androids.)
I actually wish there was an Android release targeted for Dart support with more Dart promotion. Since this year Java got a lot more powers, they're moving the language and ecosystem much faster, functional targets for Java 12 (will be released in 2019) contain almost everything Kotlin has now.
Given the legal wrangling with Oracle, I don't think they will be eager to support Java. However, Kotlin has a native compiler (llvm based) as well. You can target Android/IOS with it as well as Wasm or simple desktop/server executables. So, the smart move would be to deemphasize Dart, move flutter on top of Kotlin native/llvm (and why not expose it to other languages as well; e.g. swift). Then they cab move the entire Android ecosystem on top of llvm and provide some level of continuity for people with Kotlin/Android codebases.
The main challenge here is the API gap between the old java 6 APIs that underly the current Android API that won't be there on native Kotlin. Flutter solves that problem.
Do you have anything specific in mind about Oracle-Java? They opensource a lot in the last two years, OracleJava is basically 99.9% openJDK now, the main JDK is OpenJDK, Flight Recorder is open-source, graalVM is GPL2...
The problems between oracle and google are related to copyright and APIs. Androids OSS java bits are licensed differently(Apache license if I recall correctly) and technically a partially API compatible implementation of Java about 10 years ago with lots of Google specific additions and some code inherited from IBMs harmony project.
In any case, compiler technology has moved forward a lot and as Apple has been showing with IOS and Swift, you can do some pretty decent app ecosystem around native code without having to expose your developers to doing C/C++.
But then it depends how much is dependent on changes on the JVM and how much will get into the Android VM.
This nice thing of Kotlin is that you get a nice language which is JVM 6 compatible and thus supported on most Android platforms.
The last information I have from Android is that you can use partially features from Java7/JVM7 but not all of them.
Yeah, I was expecting to see Dart given more prominence, but guessing the momentum Kotlin has and the comparative ease of moving that way from pure Java, the timings still aren't working out.
Am only tinkering at the moment, but my excitement for Flutter means any push in the Dart direction is good for me.
You must have not written much Kotlin then as no, it really won't come close still. Even if they manage to get everything planned in for 12 - which they won't - most will still wait for the next LTS anyway.
I really wish they used version numbers rather than names so i can tell there’s a new version of android. I thought this was a just a distro for raspberry pis.
It’s pretty clear in the article though, no sweat :)
They sort of do, the first letter of the new name is always the next one in the english alphabet. That said, they do have version numbers but almost no marketing uses them with or instead of the codenames.
The stupid thing is that these code names sometimes span multiple versions of Android and even API levels making it all even more of a clusterfuck of a platform. My suspicion is that they do this to hide all of the fragmentation and pretend that more handsets are up to date than they actually are.
The major "dessert" releases seem to happen about once a year now, with a big marketing push, and often substantial user-visible changes.
API levels change when there are major developer-visible changes. I assume any time there's a backwards incompatible change for app developers, they bump the API version, as is standard for any API.
Funnily, I've been using Android for years and I never noticed until I thought "Why on earth would they call it Pie?" and it struck me. Guess I'm not as observant as I think.
For app developers, the API level (which is 28 for Android 9.0 / Pie) is significantly more relevant, since it determines API breakages, behaviour changes and backwards compatibility.
I hate this with Ubuntu, too. And then you see that you systems since <crazy name> are supported and you have to google to find out the actual Ubuntu release number and compare it to that of the target system. Annoying!
I get why developers would be interested in this, but it doesn't feel like something that moves the needle. It's a decent first step if the end goal is to promote Kotlin to the place Java occupies in Android development and (at the same time) fix some of the issues with the inconsistent and over-engineered APIs.
On the one hand Google's Nexus was released 3 years ago and is now obsolete; on the other hand Apple's iPhone 5s was released 5 years ago and gets to run iOS 12. On top of this, the vast majority of my paying customers use iOS, not Android (a variety of lifestyle and reference apps).
This is disappointing; I can't financially justify further development for Android.
Oreo, released in 2017, is at a pitiful 12% installation share. [1]
[1] https://developer.android.com/about/dashboards/