I first came to learn about AppCode in February of 2013. At the time I was blisfully unaware that there were any other way to compile and run an iOS app other than use Xcode directly from the mothership. I was thrilled to try something other than the buginfested forever crashing editor that Xcode was at that point. I found that AppCode had many cool features and I quickly invested in a license. After using AppCode for a couple of days my interest quickly vanished as I was missing essential features from Xcode and as AppCode was constantly throwing me errors when compiling. I put away AppCode and went back to my daily routine with Xcode.
Two months ago I got an email from JetBrains telling me that my AppCode support license was about to expire. I had totally forgotten about AppCode and went to see what had happened in the last year. It seemed that much had changed. Stability and compatability was improved and many great features, like native CocoaPods integration, improved refactoring tools and Clang integration. I decided to give AppCode another try and I was pleasantly surprised.
I've been using AppCode on a daily basis for two months now and rarely open Xcode for anything other than quickly editing a Storyboard. Thanks to the high speed of the editor, the vast variety of refactoring tools and keyboard shortcuts my development speed has gone up significantly. I can tame my editor to my liking, something I was never able to do with Xcode.
So why did I resist so much in the first place? Like most iOS developer I know, I really hate Java with a passion. I dislike the language, the horrible insecure platform and the terribly slow interpretor. It is very obvious to developers that launch AppCode for the first time that is written in Java. It has familiar look and feel that most Java editors have. Unlike other editors written in Java, AppCode is fast though. Another of my big concerns about using AppCode was using something that wasnt part of the official Apple ecosystem. It felt like Apple was secretely condeming for using a third-party editor.
But what it comes down to in the end is being a pragmatic programmer. Choosing the right tool for the job. The tool that gets you to the finish line fast and reliably. For me, that tool is AppCode for now