Hey, it’s Tom, as you may know, or not, I spend a lot of my time on iOS Development and I’ve spent really a lot of my time during the last 10 years developing on that platform, why didn’t I burnt out? Well in this post I want to share with you why I really enjoy developing native apps for iOS devices, let’s start.
At first, short disclaimer, in some points I compare iOS Development to Android Development but I believe I’m allowed to do this as I was an Android Developer for some time in my career and I’m still contributing here and there in Android projects, but now rather as a supporting developer. Ok, let’s get back to the main topic.
Performance – nowadays it’s maybe not as important, because most of the devices available on the market are powerful enough, but back in the days… iPhone was way faster than Android phones and as a result it was just easier for developer to write fancy animations and transitions without worrying about lag or FPS drop, the UI looked smoother, even today I have a feeling that animations and transitions across iPhones are working in more consistent way than in case of Android.
iOS apps are easy to test – really. At first, because the simulator is pretty fast and works just like the real devices, and secondly because all devices use exactly the same version of the system, there are no changes caused by additional logic added by the manufacturers, like Huawei or Samsung. Really, if you will solve an issue once, it will be solved for all iOS devices, period. Why it’s important? Let’s ask any Android developer about the problem of handling the same logic on different devices, for example, photos rotation, the problem started a few years ago in some LG device if I’m correct, but later on, it turned out that also some Huawei devices are rotating taken photos wrongly, as a result, you had to read Exif data and check if orientation is correct if you would test only on Samsung, you would never notice this bug, that’s just one example that comes to my mind. You can face the same problem while working with web apps, different browsers start supporting new web features sooner or later, or never 😉
OS Adoption – talking about support for new features, this is also something that I love about apple ecosystem. iPhone users install new version of the system really fast. Apple announces new SDK in June, public beta is available in August or September and public release takes place about September or October, till the end of the year most of active users in the apps i have access install newest version of OS, after few months since official release you can be sure that most of your active users will be able to use newest OS features, isn’t it beautiful? To be clear, these are not only users of newest generation, people with 3-4 year old iPhones also update system pretty fast, however slowly than owners of last 2 generations. Here is the proof: https://developer.apple.com/support/app-store/ It’s February, most recent version of iOS was released in September, after 5 months over 80% of users owning last 4 generations of iPhone use the newest OS version and have access to new features like for example app clips and home screen widgets. Moreover, 98% of those users use at least iOS 13, so the version introduced a year ago. The interesting part is also presented below, over 70% of all iPhone users use iOS 14, please take into account that some older devices, like iPhone 6 and previous didn’t get update this year, however, 90% of all devices use iOS 13. To sum it up I can say that you can safely bet, that nearly all active users of your app will use at least iOS 13 and most of them will use iOS 14, and this is a constant trend, I see this early adoption every single year. Don’t get me wrong I don’t want to criticize Google, but in the case of Android newest OS version adoption doesn’t look good and they know it, because they even stopped publishing this data on their official website https://developer.android.com/about/dashboards, so I had to use 3rd party analytics: https://www.appbrain.com/stats/top-android-sdk-versions as you see, still a lot of people use previous versions of the Android, only 56% of all users use last 2 versions of the SDK (10 and 9), as for the moment of this recording Android 11 was released, but it’s fresh thing so i don’t take it into account at all.
Rich SDK – Apple provides a ton of features built into SDK. Thanks to that developers are able to build apps using not so many 3rd party libraries. A great example might be audio, video, or image processing, in this case, SDK offers so many ready-to-use methods that writing something from scratch demands really some sophisticated needs, for most of the apps there is more in this SDK than you might ever need. Why rich SDK is good? I’m going to record a video about the pros and cons of using 3rd party libraries, but as for now, let’s say that Apple SDK is just really stable and reliable. From my experience, it’s easy to notice, that the Android version of the app is usually using more dependencies and 3rd party libraries to offer some functionalities and that brings a lot of risk in long term.
Consistent UI/UX – this is a huge benefit, in my opinion. Of course, Apple makes a bigger redesign every few years, but in general, most of the apps on iOS have a very similar feeling, flow and look, why? Firstly, because of Apple guidelines, they are like a roadmap, you just have to learn them once, and then you play the game according to the rules. Thanks to that end-user knows what to expect and is able to predict what will happen for example after pressing the button on the left part of the navigation bar, etc. Look and feel is consistent also because once again iOS SDK offers a lot of customizable widgets and both designers and developers got used to using them. Every tab bar, navigation bar or tableviewcell, offer customization, you might usually not notice that but in general, under the hood, most elements of the app are just widgets taken from official SDK, they are customized, but they offer a very similar feeling and this is probably the key of success.
I hope you now better understand why I really enjoy iOS Development. You can watch the video version of this blogpost on my Youtube Channel: https://youtu.be/st8JPS5g1k0