As a developer: superior hardware, years ahead of Android in terms of performance. Android is way too limited in what you can do with it as a developer.
Practically you simply can do a lot more on iOS, especially if you are doing things that require a lot of performance. The CPU is much, much faster, you have access to more RAM, the GPUs are more advanced. There is actually a GPU computer API that works on all phones instead of the mess on Android where there simply isn’t anything that is universally supported.
APIs are also a lot more powerful on iOS. Anything related to media, for example. You have so much more control and advanced APIs for things like the camera, dealing with video data, etc. There simply is no comparison. Android is a toy OS compared to iOS.
More like years behind. My Huawei P30 Lite is a faster phone than my cousin’s iPhone XR in terms of real world tasks. I can already smell the BS. Android is so far ahead in things you can do, it has no comparison. It is like comparing a bunch of Legos together to a brick. One of them smashes heads.
I work on some stuff that has to run on iOS and Android, computer vision related. So often when we work on new functionality it’s “no, we can’t do that on Android”, never the other way around. CPUs are slower, GPUs are slower, and worse they lack features. Fragmentation is an absolute PITA. There isn’t even a decent GPU compute solution that works on all android phones. RenderScript is too high-level and you can’t even be sure it runs on the GPU. GPU compute is not supported on all versions of OpenGL ES and only a subset of phones support either the latest version of OpenGL ES or Vulkan. It’s an absolute mess.
Even if a phone supports Vulkan, there are tons of optional features that you can’t rely on being supported.
By comparison, iOS is absolutely amazing. Almost all iPhones run an up-to-date iOS version, you can know for certain which GPU features are supported. Both GPU and CPU are also a lot more capable than on Android phones. For example: A-series SoCs have support for hardware accelerated matrix operations, on the GPU side you have things like SIMD-group operations (permute, reduction, matrix). All stuff that you can’t use on Android because it’s either not supported at all or only a handful of phones support only some of them.
If you are talking about universal APIs for few iPhone models, and being able to develop things in an easier way, yes iPhones hold the advantage.
Fragmentation is a disadvantage in this way, but it allows for a far bigger strength – democratisation of technology, and freedom for users to modify said technology. iPhones are end user kiosks handed over to people, post the point what Apple makes and apps developers make.
Android allows for plenty things that iOS has only recently started to copy. It does not matter what they claim about polishing or “inventing”. We had screen recording since Android 5, and Camera2 API for years that gives us manual camera controls.
There is a Pareto frontier to what you claim about API parity across devices developers want, versus what all is needed to make functional, customisable and feature loaded devices for end users. This makes the “advantage” very slim and have not much meaning. It had a meaning in the era of iPhone 5S/7 over Android 6 Marshmallow phones, not anymore.
Fragmentation is a disadvantage in this way, but it allows for a far bigger strength – democratisation of technology
How is not supporting certain hardware features ‘democratisation’ ? This is not something users would be able to make an informed decision about, or even know about. No user goes into a phone shop and asks for a phone that has a GPU with support for SIMD-permute functions, to name one thing.
Camera2 API for years that gives us manual camera controls.
This is a good example. Camera2 API is still not supported by all phones, to the point they had to come up with CameraX to give hide the mess of dealing with multiple camera APIs from developers. Even then, Camera2 API is a joke compared to what you can do with AVFoundation.
One example: on iPhone I can set up the camera to deliver full-resolution (8, 12 or 24MP depending on the model of phone) frames to my app at, at least, 30 fps. Not only can I capture full-resolution images, I can get a synchronized stream of metadata (e.g. detected faces) with these frame. In addition to processing these frames in my code, I can simultaneously write the video to a compressed video file, again in full native camera resolution, with a custom time-synchronized metadata stream.
You can’t do anything even remotely like that on Android. You can’t get a video stream at native resolution, you’re lucky if it can do 1080p. You can’t grab raw video frames and record to a movie file at the same time. You can’t get a synchronized metadata stream. You can’t write custom metadata streams to video recordings. Hell, you can’t even get the current ISO value from the camera during live capture.
This is just one example, but there are many more areas where Android is severely lacking in capabilities.
Android may offer more customization options for end-users, but for developers iOS is so much more powerful that they aren’t really in the same league.
Can you give me real world applications of any of the things you mention, that people who shoot using Android find lacking versus iPhone? Android is generations ahead with hardware, on par with CPU/GPU, better NPU, is more open, does not need paid apps to shoot RAW video or photo, allows to treat filesystem like that of a computer, allows for USB3 wired file transfers and so on. iPhone is absolute garbage if you ask anyone trying to export a large filesize video shot on it. It does not even allow manual camera controls unless you pay for some app.
You can’t do anything even remotely like that on Android. You can’t get a video stream at native resolution, you’re lucky if it can do 1080p. You can’t grab raw video frames and record to a movie file at the same time. […] Hell, you can’t even get the current ISO value from the camera during live capture.
You can get a native raw video stream at full resolution and get current ISO value in Open Camera and plenty apps that can utilise Camera2 or CameraX APIs. There seems to be quite a bit of misinformation in there.
Android is so far ahead in real world, it is comical. iPhone’s advantages are always on paper and never in reality, which as we know never matters.
It looks like you have a certain kind of bias and investment as an iPhone app developer, one that cannot be addressed with facts.
Can you give me real world applications of any of the things you mention, that people who shoot using Android find lacking versus iPhone?
This is not about users, this is about developers. What a user will notice is that the Android version of certain apps don’t work as well as the iOS version. We put a lot of effort into getting an acceptable user experience on Android, but there is only so much you can do. For example: on one specific image processing pipeline we use an internal resolution of 2 MP on iOS and 0.5 MP on Android. The Android version generally also runs at a much lower frame rate. Certain features may also be unavailable on Android. What the end-user will notice is that it just doesn’t feel as smooth on Android as it does on iOS.
Android is generations ahead with hardware, on par with CPU/GPU, better NPU
Of course, the benchmarks above don’t really matter, because you don’t develop for the fastest phone you need to support, you develop for the slowest. Our stuff needs to be usable by the general public, due to the nature of what we make we need support basically any phone that has any significant real world use. In practice this means that on the iOS side our stuff needs to run with decent performance on iPhone 7 (released in 2016) and later. Here are the benchmark scores for the iPhone 7.
Now compare this to the Samsung Galaxy A14, more than 4 times lower single-core performance. Note that this is not the crappiest Android phone we need to support. Instead it’s the most popular Android phone of 2023. The oldest and slowest iPhone we need to support is still significantly faster than the most sold Android phone of last year.
The nice thing about iPhones is that every iPhone sold is a high-end device, performance wise. Most Android phones sold are low to mid-range devices. While there is still a significant performance gap between high-end Android and high-end iPhone, the performance gap between what you actually need to support on iOS and Android is enormous.
does not need paid apps to shoot RAW video or photo
Neither does iPhone: Settings -> Camera -> Formats -> Apple ProRAW (photo), Apple ProRes (video).
get current ISO value in Open Camera and plenty apps that can utilise Camera2 or CameraX APIs. There seems to be quite a bit of misinformation in there
Please link to the API docs that describe this API. To be specific: it needs to be able to set the camera to automatically manage exposure and then read the actual ISO values chosen by the camera while it’s adjusting it’s actual exposure.
Android is so far ahead in real world, it is comical. iPhone’s advantages are always on paper and never in reality, which as we know never matters.
Sounds like you have never in your life written a single iOS/Android app that requires any significant amount of processing power. I wish I lived in your fantasy world where Android is on par, let alone ahead, because it’s such an enormous PITA to have to deal with this enormous performance gap. It would make my life so much easier if Android phones were just half as fast as iPhones.
In the end I really don’t care what OS it runs, I just want to build nice things. It just gets frustrating sometimes when having to take into account all these low-end Android devices limits what you can accomplish.
Instead of you writing all this gobbledyremoved that may have technical relevance, I can also frame it as you living in a fantasy world based on exploiting our countries for centuries, thriving on said wealth, and being ignorant about the democratisation of phone hardware that Android brings across all prices, and a lot of the models providing most of the needed RAW capabilities through developer options on even $50-100 phones. Apple has the colonialist luxury of making exclusively $1000+ handheld kiosks that cannot be user repaired, cannot be treated like a computer with a filesystem, need accessories that cost 5-10x that of Android, is incompatible with non-Apple devices and so on.
This is not about users, this is about developers. What a user will notice is that the Android version of certain apps don’t work as well as the iOS version.
No, this is not about developers or even most users, unless you were making an app to cater to developers. And you cannot use arguments about “popular” demographic, ignore their most commonly performed tasks, ignore pricing and hypothetically imply anyone practically cares about ProRes/ProRAW. You want Log video or RAW photos? Android can give that on any decently expensive phone with third party apps.
It is well known at this point that a lot of those apps’ developers forcibly need to cater to Android, knowing most of the world does not use or like iOS. Snapchat could very well use even Camera1 API on any phone or on almost all phones Camera2 API, yet it intentionally screenshots the digital viewfinder, because the developer publicly stated his belief that Android is for poor people. It does not matter that Android device price range exceeds twice that of iOS on the high end. It is an intent derived from personal elitist beliefs to gimp Android. It is not much different for Apple with iMessage bubble colour contrast purposely hampered for non-Apple users. Instagram already gives Apple users the same thing on iPad and iPhone, so stop giving me the excuse that paid app developers are selfless hard working people.
Please link to the API docs that describe this API.
Since you seem to develop some camera app on iOS, you would be best suited to argue with an Android camera app developer in this regard. The only reason it seems like you eventually picked a fight with me is that I do not do the same thing as you, so you know the nitty gritty details, and are using that to mask iPhone’s obvious real world weaknesses.
Since you also seem to argue on most popular sold phone across OS platforms, I feel compelled to put forth the argument about what such a large demographic actually does with their phones. They do nothing amongst the tasks that you are proudly telling me about, not even Apple users. They scroll Instagram, take a few selfies, shoot small video clips occasionally without 4K60 obsession, listen to music on $5 earbuds and sometimes open up a web browser. They also download files from emails and copy them to computer at home. You might be surprised to hear most Apple users avoid paying for apps and do not care about technical settings, but go with the defaults based on optimal disk space usage. I see none of the things you claimed “popular” demographic does, so this invalidates more or less all of your arguments.
I could link you a bunch of r/Android threads and comments from the past few years listing Android’s infinitesimal advantages, not to mention nobody likes $100/year fee for Apple app development, regardless of if one’s app may be free.
In the end I really don’t care what OS it runs, I just want to build nice things. It just gets frustrating sometimes when having to take into account all these low-end Android devices limits what you can accomplish.
They accomplish more than the non existent $100 iPhone would, for the “popular” demographic, so you should not cater to them. Cater to the users exclusively who have luxury of engaging in these hobbies or if they really want to treat iPhone like a professional camera hardware for daily job (no one). I have used RAW photo Camera1 API capabilities on my 4 year old budget midrange phone, and even on prior phones 7-8 years ago, and have never felt restricted other than needing better camera hardware.
You could consider Android over iOS solely on the basis of superior camera hardware, and the RAW capabilities provided. You could also consider that Pareto frontier of needing certain amount of API freedom for developing apps versus tasks done by users of different demographics is why Android will always be so far ahead of iOS. Learn those models if you actually care about maximising catering to larger audience, and not living in lalaland dream bubble.
As a developer: superior hardware, years ahead of Android in terms of performance. Android is way too limited in what you can do with it as a developer.
Sorry, what? Are wee talking about different operating systems? Apple is way more hostile to developers, as I described in my other comment.
Practically you simply can do a lot more on iOS, especially if you are doing things that require a lot of performance. The CPU is much, much faster, you have access to more RAM, the GPUs are more advanced. There is actually a GPU computer API that works on all phones instead of the mess on Android where there simply isn’t anything that is universally supported.
APIs are also a lot more powerful on iOS. Anything related to media, for example. You have so much more control and advanced APIs for things like the camera, dealing with video data, etc. There simply is no comparison. Android is a toy OS compared to iOS.
More like years behind. My Huawei P30 Lite is a faster phone than my cousin’s iPhone XR in terms of real world tasks. I can already smell the BS. Android is so far ahead in things you can do, it has no comparison. It is like comparing a bunch of Legos together to a brick. One of them smashes heads.
I work on some stuff that has to run on iOS and Android, computer vision related. So often when we work on new functionality it’s “no, we can’t do that on Android”, never the other way around. CPUs are slower, GPUs are slower, and worse they lack features. Fragmentation is an absolute PITA. There isn’t even a decent GPU compute solution that works on all android phones. RenderScript is too high-level and you can’t even be sure it runs on the GPU. GPU compute is not supported on all versions of OpenGL ES and only a subset of phones support either the latest version of OpenGL ES or Vulkan. It’s an absolute mess.
Even if a phone supports Vulkan, there are tons of optional features that you can’t rely on being supported.
By comparison, iOS is absolutely amazing. Almost all iPhones run an up-to-date iOS version, you can know for certain which GPU features are supported. Both GPU and CPU are also a lot more capable than on Android phones. For example: A-series SoCs have support for hardware accelerated matrix operations, on the GPU side you have things like SIMD-group operations (permute, reduction, matrix). All stuff that you can’t use on Android because it’s either not supported at all or only a handful of phones support only some of them.
If you are talking about universal APIs for few iPhone models, and being able to develop things in an easier way, yes iPhones hold the advantage.
Fragmentation is a disadvantage in this way, but it allows for a far bigger strength – democratisation of technology, and freedom for users to modify said technology. iPhones are end user kiosks handed over to people, post the point what Apple makes and apps developers make.
Android allows for plenty things that iOS has only recently started to copy. It does not matter what they claim about polishing or “inventing”. We had screen recording since Android 5, and Camera2 API for years that gives us manual camera controls.
There is a Pareto frontier to what you claim about API parity across devices developers want, versus what all is needed to make functional, customisable and feature loaded devices for end users. This makes the “advantage” very slim and have not much meaning. It had a meaning in the era of iPhone 5S/7 over Android 6 Marshmallow phones, not anymore.
How is not supporting certain hardware features ‘democratisation’ ? This is not something users would be able to make an informed decision about, or even know about. No user goes into a phone shop and asks for a phone that has a GPU with support for SIMD-permute functions, to name one thing.
This is a good example. Camera2 API is still not supported by all phones, to the point they had to come up with CameraX to give hide the mess of dealing with multiple camera APIs from developers. Even then, Camera2 API is a joke compared to what you can do with AVFoundation.
One example: on iPhone I can set up the camera to deliver full-resolution (8, 12 or 24MP depending on the model of phone) frames to my app at, at least, 30 fps. Not only can I capture full-resolution images, I can get a synchronized stream of metadata (e.g. detected faces) with these frame. In addition to processing these frames in my code, I can simultaneously write the video to a compressed video file, again in full native camera resolution, with a custom time-synchronized metadata stream.
You can’t do anything even remotely like that on Android. You can’t get a video stream at native resolution, you’re lucky if it can do 1080p. You can’t grab raw video frames and record to a movie file at the same time. You can’t get a synchronized metadata stream. You can’t write custom metadata streams to video recordings. Hell, you can’t even get the current ISO value from the camera during live capture.
This is just one example, but there are many more areas where Android is severely lacking in capabilities.
Android may offer more customization options for end-users, but for developers iOS is so much more powerful that they aren’t really in the same league.
Can you give me real world applications of any of the things you mention, that people who shoot using Android find lacking versus iPhone? Android is generations ahead with hardware, on par with CPU/GPU, better NPU, is more open, does not need paid apps to shoot RAW video or photo, allows to treat filesystem like that of a computer, allows for USB3 wired file transfers and so on. iPhone is absolute garbage if you ask anyone trying to export a large filesize video shot on it. It does not even allow manual camera controls unless you pay for some app.
You can get a native raw video stream at full resolution and get current ISO value in Open Camera and plenty apps that can utilise Camera2 or CameraX APIs. There seems to be quite a bit of misinformation in there.
Android is so far ahead in real world, it is comical. iPhone’s advantages are always on paper and never in reality, which as we know never matters.
It looks like you have a certain kind of bias and investment as an iPhone app developer, one that cannot be addressed with facts.
This is not about users, this is about developers. What a user will notice is that the Android version of certain apps don’t work as well as the iOS version. We put a lot of effort into getting an acceptable user experience on Android, but there is only so much you can do. For example: on one specific image processing pipeline we use an internal resolution of 2 MP on iOS and 0.5 MP on Android. The Android version generally also runs at a much lower frame rate. Certain features may also be unavailable on Android. What the end-user will notice is that it just doesn’t feel as smooth on Android as it does on iOS.
That’s hilarious.
This is the fastest Android phone according to Geekbench, Compare to the fastest iPhone. For our specific application it’s the single-core CPU and GPU performance that matters most. (any algorithm that can be parallelised runs on the GPU, the rest doesn’t really benefit from more than 2 CPU cores).
Of course, the benchmarks above don’t really matter, because you don’t develop for the fastest phone you need to support, you develop for the slowest. Our stuff needs to be usable by the general public, due to the nature of what we make we need support basically any phone that has any significant real world use. In practice this means that on the iOS side our stuff needs to run with decent performance on iPhone 7 (released in 2016) and later. Here are the benchmark scores for the iPhone 7.
Now compare this to the Samsung Galaxy A14, more than 4 times lower single-core performance. Note that this is not the crappiest Android phone we need to support. Instead it’s the most popular Android phone of 2023. The oldest and slowest iPhone we need to support is still significantly faster than the most sold Android phone of last year.
The nice thing about iPhones is that every iPhone sold is a high-end device, performance wise. Most Android phones sold are low to mid-range devices. While there is still a significant performance gap between high-end Android and high-end iPhone, the performance gap between what you actually need to support on iOS and Android is enormous.
Neither does iPhone: Settings -> Camera -> Formats -> Apple ProRAW (photo), Apple ProRes (video).
Please link to the API docs that describe this API. To be specific: it needs to be able to set the camera to automatically manage exposure and then read the actual ISO values chosen by the camera while it’s adjusting it’s actual exposure.
Sounds like you have never in your life written a single iOS/Android app that requires any significant amount of processing power. I wish I lived in your fantasy world where Android is on par, let alone ahead, because it’s such an enormous PITA to have to deal with this enormous performance gap. It would make my life so much easier if Android phones were just half as fast as iPhones.
In the end I really don’t care what OS it runs, I just want to build nice things. It just gets frustrating sometimes when having to take into account all these low-end Android devices limits what you can accomplish.
Instead of you writing all this gobbledyremoved that may have technical relevance, I can also frame it as you living in a fantasy world based on exploiting our countries for centuries, thriving on said wealth, and being ignorant about the democratisation of phone hardware that Android brings across all prices, and a lot of the models providing most of the needed RAW capabilities through developer options on even $50-100 phones. Apple has the colonialist luxury of making exclusively $1000+ handheld kiosks that cannot be user repaired, cannot be treated like a computer with a filesystem, need accessories that cost 5-10x that of Android, is incompatible with non-Apple devices and so on.
No, this is not about developers or even most users, unless you were making an app to cater to developers. And you cannot use arguments about “popular” demographic, ignore their most commonly performed tasks, ignore pricing and hypothetically imply anyone practically cares about ProRes/ProRAW. You want Log video or RAW photos? Android can give that on any decently expensive phone with third party apps.
It is well known at this point that a lot of those apps’ developers forcibly need to cater to Android, knowing most of the world does not use or like iOS. Snapchat could very well use even Camera1 API on any phone or on almost all phones Camera2 API, yet it intentionally screenshots the digital viewfinder, because the developer publicly stated his belief that Android is for poor people. It does not matter that Android device price range exceeds twice that of iOS on the high end. It is an intent derived from personal elitist beliefs to gimp Android. It is not much different for Apple with iMessage bubble colour contrast purposely hampered for non-Apple users. Instagram already gives Apple users the same thing on iPad and iPhone, so stop giving me the excuse that paid app developers are selfless hard working people.
Since you seem to develop some camera app on iOS, you would be best suited to argue with an Android camera app developer in this regard. The only reason it seems like you eventually picked a fight with me is that I do not do the same thing as you, so you know the nitty gritty details, and are using that to mask iPhone’s obvious real world weaknesses.
Since you also seem to argue on most popular sold phone across OS platforms, I feel compelled to put forth the argument about what such a large demographic actually does with their phones. They do nothing amongst the tasks that you are proudly telling me about, not even Apple users. They scroll Instagram, take a few selfies, shoot small video clips occasionally without 4K60 obsession, listen to music on $5 earbuds and sometimes open up a web browser. They also download files from emails and copy them to computer at home. You might be surprised to hear most Apple users avoid paying for apps and do not care about technical settings, but go with the defaults based on optimal disk space usage. I see none of the things you claimed “popular” demographic does, so this invalidates more or less all of your arguments.
I could link you a bunch of r/Android threads and comments from the past few years listing Android’s infinitesimal advantages, not to mention nobody likes $100/year fee for Apple app development, regardless of if one’s app may be free.
They accomplish more than the non existent $100 iPhone would, for the “popular” demographic, so you should not cater to them. Cater to the users exclusively who have luxury of engaging in these hobbies or if they really want to treat iPhone like a professional camera hardware for daily job (no one). I have used RAW photo Camera1 API capabilities on my 4 year old budget midrange phone, and even on prior phones 7-8 years ago, and have never felt restricted other than needing better camera hardware.
You could consider Android over iOS solely on the basis of superior camera hardware, and the RAW capabilities provided. You could also consider that Pareto frontier of needing certain amount of API freedom for developing apps versus tasks done by users of different demographics is why Android will always be so far ahead of iOS. Learn those models if you actually care about maximising catering to larger audience, and not living in lalaland dream bubble.