That's the whole point of having a first-party API for common DSP and compute tasks; Accelerate uses NEON where it's available, uses SSE/AVX where it's available, used AltiVec where it was available, and will use $(FutureISAExtension) where its available. Most of the time, developers can just call the interfaces without worrying about the details at all.
Sure but that doesn't mean that couldn't be fewer hoops to jump through for the many devices that do. I have an iOS app that does realtime audio FFT without even breaking a sweat. I've considered porting it to Android but the degree of hassle puts me off it.
Sure, it could be made easier, but i am wondering if it is done on purpose. Android encourages the developers to stay away from the NDK unless it's really necessary.
Making it easier to build incompatible apps (= NEON) would surely mean more devs building incompatible apps even if not necessary and thus hurting the android ecosystem in general with more fragmentation.
Doesn't mean there shouldn't be some helpers in the SDK in the likes of "if NEON is supported execute <optimized code path/ARM assembly>, else <slow stuff>".
Perhaps but the unfortunate consequence is that there are entire niches of apps that flourish on iOS that don't really even exist on Android. Android is a great utilitarian OS but the really exciting stuff on mobile (IMO) needs to push the hardware hard.
I mean the same statement can be made for Android and Widget Apps, Homescreen Apps and whatever else is not possible on iOS. I doubt the amount of your niche apps is more then a fraction of those :P
P.S.: My point is, that there will always be differences in the available apps plainly because the API is not the same. I am wondering though, what apps can be done on iOS that can't be done on Android.
Practically the entire audio field(recording, synthesis, processing, sequencing, etc.) has stayed away from Android because latency is far too high on average, ruining UX; it also varies widely between manufacturers, which doesn't help matters.
To some extent this also impacts all games, since high-latency playback hurts the experience.
I am wondering how true this is with Android 4.1+, because audio latency was one of the major goals for Android 4.1 and more so in 4.2 and was supposed to bring audio latency on par with iOS.
edit: So, even when said apps were not possible in the past, now would be a very good time to port your app (or those apps in general), because then this is a niche which is not yet filled and there is some money to be made by being #1 in that niche :)
There's some hope for 4.2 but needless to say there's no point targeting that market yet. None of the devices currently on the market have acceptable audio latency. And Android still has no MIDI support.
Android has its strengths but it can't hold a candle to iOS for these kinds of applications.
Mh, i just tested on my phone ( https://play.google.com/store/apps/details?id=de.darkbloodst... ) and i don't see/hear a latency, certainly nothing above 100ms, so i don't think your remake "NONE of the devices currently on the market.." is true. My Galaxy Nexus is over a year old and works fine. Atleast i suppose that this app would show what you think is not working.
Latency for pro audio apps should be around 10ms. No Android phone gets close to this but all iOS devices do. You can use the free Caustic app on Android to measure your exact audio latency and then you will understand why none of the pro audio app makers bother with Android despite the large install base.