If you follow the developers, you can follow the trends. Way back when MS-DOS became popular, developers flocked to write MS-DOS programs. When Windows became popular, developers flocked to write Windows programs. Now developers are flocking to mobile computers, specifically iOS running on the iPhone, iPad, and Apple Watch. By following the developers, you can follow the trends and the trend is towards iOS programming.
If you’re interested in creating your own iOS apps, you basically have two choices: Xcode and everything else. The biggest advantage of Xcode is that it’s Apple’s official programming tool and always has the latest access to all of Apple’s newest technology such as the Apple Watch. Besides the latest access to features, Xcode gives you all the power to do anything that Apple can do. So if you want the most powerful programming tool for creating iOS apps, you want to use Xcode.
Now here’s the huge drawback. Xcode has a steep learning curve. Even if you’re familiar with programming in Windows using C/C++/C#, you’ll find learning Xcode initially can be challenging. That’s because Xcode has its own way of doing things that makes sense when you understand it, but can feel foreign until you get used to it.
Even worse, writing programs for iOS in Xcode relies on the Cocoa Touch framework that’s heavily object-oriented with lots of alternative ways to run code that isn’t trapped inside of an object. With confusing terms like “conforming to the protocol” or “notifications,” understanding how a typical iOS program works, let alone being able to write your own, can be time-consuming and challenging.
If you want the most power and the latest features, use Xcode. If you’d rather not bang your head against a wall for several months learning Xcode, there are plenty of alternatives such as LiveCode, Xojo, PhoneGap, and many more. The advantage of these alternatives is that they make iOS programming far easier. The huge drawback is that they don’t give you access to every feature of iOS and you have to wait for an upgrade to even use advanced features like accessing the Apple Watch. At the time of this writing, the only way to write apps for the Apple Watch is to use Xcode. In a few months, everyone else will catch up, but Xcode will always be the first one to get access to the latest features.
So your choice boils down to power and features vs. simplicity and speed. Xcode has the power and features, but takes longer to master. Every other tool is far easier to learn so you can create apps much faster, even creating cross-platform apps for Android as well. The huge drawback with other tools is that they never give you full access to features that Xcode will always be the first to get.
Ideally you should learn both Xcode and something else. This will let you appreciate both tools. For the greater opportunities, you can’t go wrong learning Xcode. If you want to create apps in a hurry, learn anything but Xcode. Just keep in mind that any other tool will always be limited compared to Xcode.
For professional programmers, take the time to learn Xcode. For anyone else who just wants to turn their idea into an app and doesn’t want to get bogged down with complexity, use anything but Xcode.