###Xcode or AppCode
近年来随着iOS设备和Mac发展,Objective-C(以下简写为OC)进步神速,但是这个世界上并没有多少OC的IDE。要说集成了Mac和iOS SDK的OC开发套件,最为常用和普及的一定是Apple自家的Xcode了。真心说来Xcode是一个很棒的IDE,它具备了作为一个优秀IDE所应该拥有的一切要素。其他的OC IDE环境从来不是主流,但是其中却也不乏优秀者,JetBrains的AppCode便是佼佼者之一。
说到JetBrains可能最为人熟知的是它旗下的另一款Java IDE——IntelliJ IDEA。而JetBrains也还同时有PHP,Python,Ruby等语言的专用IDE,可以说JetBrains就是以IDE为主要产品的公司。作为一家专业的IDE解决方案提供商,它的产品自然也能符合绝大多数用户的需求。而AppCode是JetBrains为Mac和iOS下app开发所推出的IDE产品。如果你想要更effective和elegant的coding,那确实应该尝试AppCode;或者只是单单看腻了Xcode,也可以尝尝鲜~
###列举AppCode的几个好用特性 ####代码补全
这是最最基本的特性,我想也是一个合格的IDE及编辑器应该完成的最基本的功能。AppCode的代码补全不仅限于类、方法或者变量名字这样的基本自动完成,它还具备了根据上下文推测的能力,并且推测算法十分可靠。
甚至如果你写了一个从未出现过的变量或者方法,AppCode都会询问你是否想要添加这个方法。开发者将有机会避免一切可能的无意义的来回跳转,而专注于有效代码的编写。
####快速跳转
Xcode的最大确定之一就是难以定位文件和类。想找一个文件的话,基本上不可能完全用键盘实现。而如果遵循效率至上的原则的话,手指离开键盘就意味着效率下降。Sublime Text提供了一种很优秀的寻找和跳转的方法,而AppCode中也有类似的导航方式(我不确定是谁先提出的)。配合类似微博的特定符号,可以完成从文件到类乃至到方法和符号的快速跳转,避免了所有可能的鼠标操作。
####代码分析和修改意见
虽然Xcode也有代码分析的功能(Shift+Cmd+B in Xcode 4),但是大部分情况下是会望了用的,而且Xcode的分析基本只能找到内存上的潜在问题,随着ARC的逐渐普及,相信内存上的issue会在开发过程中越来越少。AppCode的代码分析是实时进行的,在代码完成之前,你就可以看到存在的问题。分析和监测的问题包括且不限于代码内存管理、从未调用的方法、不可到达的代码段等。
关于警告或错误代码的修改可以说是AppCode的强项,自动帮助添加release/autorelease,优化头文件引用(去掉多余头文件以及自动添加需要的头文件),自动帮助完成强制转换等。
代码分析和修正共有超过60种监视的错误,遵循AppCode的建议可以保证代码的整洁。
####代码格式修正
每个人都有自己喜欢和习惯的代码格式,比如{}的位置,缩进和隔行的形式等等。阅读符合自己风格的代码时,往往效率能有大幅提升。AppCode提供了高度可自定制的代码风格模版,并可以很简单地将其套用到任何代码上。这样,不论写代码时多么没有注意格式,最后产生的代码都是完全符合风格的漂亮优雅的代码。这不仅可以为自己之后的维护和修改打下基础,也能在团队合作中快速将自己的代码的风格改为和团队统一。这也是我个人最喜欢的AppCode的一个功能。
####iOS环境
既然是for OC的IDE,那基本上绝大部分时间都是在为iOS或者Mac开发而工作了。AppCode虽然不是Apple的亲儿子,但是不管是设备调试还是模拟器运行也都是没有问题的。而且AppCode也集成了GDB和LLDB,其Debug工具的界面总体上说比Xcode更灵活。另外,单元测试和文档功能也深度集成到了AppCode中,可以随时方便地运行和调用。
####插件
插件这种东西,为一个应用提供了无限的可能(关于插件这种东西的登峰造极的应用,可以参考VIM或者魔兽世界)。可以说使用插件或者自己编写插件来使用,完全可以将AppCode二次开发为一个完全符合自己需求和习惯的IDE。Xcode虽然也提供插件功能,但是Xcode的插件开发相当繁琐,而且成功的Xcode插件也基本不存在与这个世界之上。而AppCode现在已经有50+的插件存在于插件仓库中,已经可以满足大部分开发者的需求了(比如存在把编辑器VIM化的强力插件)。
###AppCode的不足
金无足赤,AppCode也有一些不足之处。比如需要依赖Xcode,没有集成nib编辑器,在打开nib文件时会自动去开Xcode,Instrument工具也要调用Xcode等。但是这并不妨碍AppCode成为一款伟大的IDE,在通过一段时间的对AppCode的使用后,我已经成为了AppCode的忠实拥趸~这款IDE对于开发效率的提高和开发心情的调节可谓是相当成功。