I come from a strict PHP/Python/Java background which is why I’ve always developed web applications. I’ve made a few Android apps in the past but nothing too special. Now that I started using Swift and have really dived deep into the iOS world, I’ve put together a few reasons why you SHOULD NOT develop for iOS, but also why you SHOULD.

DISCLAIMER: THIS IS NOT AN IPHONE VS. ANDROID COMPARISON OR A SWIFT VS. JAVA COMPARISON. THIS IS MORE OF A BACK-END DEVELOPER VS. IOS DEVELOPER COMPARISON

CONS

1. The biggest deterrent about developing for iOS is that it’s almost a huge waste of time. You’ll spend a ton of time learning Swift, a language only used by Apple, which can not be applied anywhere else. On top of Swift, you will also have to learn Apple’s API-like programming interface which comes with a bunch of pre-defined methods you will have to get the hang of. On top of all that, you will also have to get the hang of a brand new IDE in Xcode which unless you’re making an app for OSX/iOS you will probably never use again as well.

2. You feel way less powerful when developing for Apple. Xcode does a great job of handling a lot of stuff on the GUI, making it very easy for developers. But for those web developers out there like myself, who are used to nothing but the black background of Sublime Text, it kind of feels a little WIX-like (being able to ctrl + drag to a different View Controller to create a segue and things of that nature).

3. You’re going to spend most of your time coding design. Personally, I suck at design and I hate doing it. With iOS, way more of your code is simply just making the design flow better, changing a font, etc. For those developers out there who don’t care much for design, this can get a bit tedious. Don’t get me wrong, you will spend plenty of time doing core programming stuff, but a significant time is used to code design.

4. You need a Mac to do it. This is probably my least favorite part of developing iOS. Not only, do I have to learn a whole new languagee, IDE, and some API-like programming interface, but I ALSO have to use a Mac to make it. I’m currently using my sister’s 8 year old iMac that I had to refurbish myself just so I could make an app. Absolutely ridiculous.

PROS
1. Swift as a language is awesome. I’m not talking about the iOS methods here. I’m talking about strictly Swift as a language. It is by far one of the best languages out there. Everything requires you to be so explicit, leaving very little margin for error, and is syntactically very similar to a bunch of languages combined. Personally, if there was a stable Swift MVC out there meant for web development, I’d drop everything right now and start using it. It’s that awesome.

2. Although iOS development is very API-like, it makes for very good apps. They give you very little room for error. The pros that come with that are you’ll have less bugs, but at the same time, you’re learning curve is significantly higher, and you are limited to just using certain predefined iOS methods that you can’t write yourself.

3. Although I hate to admit it, the majority of America is using iOS. This is NOT the case with the world as Android is the most popular world-wide mobile OS, but if you’re looking to develop an app for/in America, iOS definitely has more potential users.

And there ya have it folks! Why I hate developing for iOS but I’m still doing it.