Agile and solid, iOS is Android’s only worthy competitor in the vast world of mobile programming. The integrity and solidity of the Cupertino company, however, do not always represent real advantages for the programmer, who often finds themselves hindered by those very same qualities of the system.

We have already listed what were the things we don’t like about the Android system, so today we are going to analyse what are the issues we have with iOS. Here are what we think are the sore points of this system:

IOS computer system

Way too many certificates required.

In theory, a large number of certificates should represent a great advantage, a considerable guarantee the quality of the product is top notch. In the case of iOS, however, these certifications are not just many. They are TOO many, and not always easy to obtain. iOS development, iOS distribution, Provisioning profiles just to name a few, getting them all is an overwhelming task. Android only requires just two key stores, one for the development and one for the release of the apps. Android wins fair and square in this case.

It is a rigid system.

This too is a feature created with the best of intentions, but which ultimately isn’t worth all the pain. It’s great to have a controlled and solid system like iOS, at least until it gets frustrating while trying to keep up with all the protocols the system requires. Especially for those who have just approached the world of programming, this is a factor that can undermine the motivation of the most focused person. Privacy protection is certainly an advantage when we talk about data management. However, it does not allow full access to its features because the apps can communicate only in a very rigid and restricted way.

Publishing apps is complex.

An app, to be published in the store, must comply with numerous standards. It must be unique, useful, and stick to the “Apple style”, meaning it must bring to the table that surplus in terms of design and entertainment that is the very core of the brand’s identity. A whole new world compared to Android’s jungle, but there is much left to the arbitrariness of the store reviewers. If the developer knows the verdict only after spending time and money in developing the app, it is clear that just a few people will have the right motivation to try and produce a large number of them, as there is a real risk of their investment becoming depreciated. If an error is found, a great amount of time is wasted because we must wait for all checks to be made, before we are told about it. When we talk about the release, there is no automated system but we must always wait for the end of the cycle to know about any critical issues in the apps.

IOS logo lego

XCode is a limited system.

There are no valid alternative environments, everything goes through XCode. This causes slowdowns in the developer workflow. The problem is that the time needed to perform most actions is much longer than with other operating systems, and debugging features are limited, and don’t support more accurate testing sessions, as they should. The operating system itself is very rigid and places limitations (it is a precise corporate policy choice), which further slows down any type of process.

Starting to develop is very expensive.

Not only are you forced to develop only on Macs, which gives you little choice when it comes to the initial budget you need for a device, given the average price of a Mac. Plus, signing up for Apple’s App Dev Program costs as much as € 100 per year, an excessive expense, especially when compared to the one-off solution of € 20 of the Android equivalent.

XCode is a slow development system.

XCode is neither lean nor fast. This causes much longer development times and dead periods than with other operating systems. Debugging tools do not help the developer test the application and fix bugs. In addition, Xcode tends to take up a lot of space in fixed memory and this can lead tomore problems, if you do not have desktop / laptop PCs with large hard drivers or SSDs.

Swift UI is still an immature feature.

It is not possible to use it for the creation of new apps, due to its compatibility problems with the most current technologies. Each time you must wait for Apple to release the new kits (the PDF kit is not compatible with Swift UI). Navigation between apps is also problematic due to the presence of multiple bugs (especially when we are navigating, when we access a new screen it does not correctly show all the features) that Apple seems to ignore.

A special thanks to our iOS development team: Alessandro Maroso, Vlady Turato, Davide Pagin.

Photo by Mohamed Mrishi , Marina Vitale on Unsplash