Pretty much every dev tool used in the development of native iOS apps has caused me issues in the past. Even just downloading an open-source app from Github and trying to build and run it is a nightmare. Xcode is probably the most expansive IDE around but makes it difficult to complete even the most basic tasks without having to solve a nondescript compile error in the process.
When I first started programming I had goals of becoming an iOS developer. This was when Swift was still a fledging language which meant that most existing codebases, tutorials, and documentation of the time we're migrating from Objective-C, or worse, using both languages in conjunction. This led to an astounding amount of confusion and frustration. So many errors and warnings telling you to convert to a certain Swift version only to find out that the CocoaPods package that the app depends on isn't compatible.
By far the most anxiety-inducing, ass-backward hurdle to overcome when trying to run an app is the code signing and provisioning process. Without being enrolled in the Apple Developer Program it is monumentally difficult to configure and run an application with any advanced app capabilities. Even with the proper certificates you will more than likely experience issues with the bundle identifier not matching your provisioning profile, certificates being revoked for seemingly no reason at all, and the neverending struggle of code signing apps that you're collaborating on with multiple devs.
What makes all of this worse is the fact that Apple's Developer Documentation is atrocious. The documentation for many of the core concepts needed for programming for iOS has been relegated to the shadow realm aka the documentation archive making it near impossible to find. When you do find what you're looking for, chances are that the page hasn't been updated in years and the information you're seeking is only documented in a release note that you'll never find. Worse even are the topics only explained in a WWDC video causing me to comb through pages of video transcript to find the one instance where someone sheds light on the issue you've been having.
Top comments (1)
thanks for speaking out
I'm thinking since months about writing a similar article about the other half of the mobile duopoly.
Android programming is at least equally atrocious, for a different set of reasons
the tricky part is to not offense too many people while still speaking out clearly