苹果现在的成绩得益于其始终如一的坚持。从Pentalobular screws到Sandboxing技术,当用户选择购买Mac或iPhone时,苹果希望消费者放弃对产品大量的控制。无论这些设计决策是为了确保一个好的用户体验,还是这种控制作为一种保留,都是有争议的。但是现实情况是,在硬件和软件方面,苹果公司喜欢的是象牙塔而不是集市。
没有比Xcode更好的例子了:软件开发者使用这款软件为iOS和Mac OS X的封闭生态系统构建软件。
确实,近年来在开放开发者的工作流程方面已取得了显著进步,从选择IEDs(如AppCode)到创建工具(如 CocoaPods, xctool和nomad)。不过关于定制和扩展Xcode的概念还是最近的事情,眼下正逐渐受到开发者的欢迎。
当Interface Builder是它自己独立的应用程序时,Xcode已经有了一个插件架构。然而,这个系统相对模糊,未被公开,并且没有广泛应用到第三方。尽管如此,像Delisa Mason 和 Marin Usalj 这样的开发者已经着手一项令人难以置信的工作,他们创建了一个稳定的和充满活力的第三方Xcode扩展生态系统。
只要简单地安装Alcatraz,就能安装你想要的所有插件(以及配色方案和模板)。
本周NSHipster选取了一些最有用的和令人兴奋的Xcode插件,你可以自己进行尝试。
因为每次都会提出这些问题,这里有一篇带图的文章:1. The color scheme is Tomorrow Night;2. The app used to make animated GIFs is LICEcap
让Xcode更像X
正如移民者抵达Ellis Island后,纽约成为了一个文化的大熔炉一样,Xcode欢迎来自各个平台和使用各种语言的开发者。就像第一批定居在各自民族社区的美国人在新土地上重建他们的传统一样,新的iOS开发者带来了他们自己喜欢的工作流和快捷键。或许你会在Cupertino会感受到家乡的气息。
Vim
发现很容易退出Xcode么?试试Vim,它是一个实验性的插件,可以添加所有你喜欢的Vim快捷键。
编码神器-SublimeText
是不是希望在编辑器的右侧栏距有一个minimap,以一个全新的角度来查看代码?安装SCXcodeMiniMap,就不会忘记体系结构的树状节点了。
Atom
想要和GitHub更搭调吗?添加Show in GitHub/BitBucket插件可以从Xcode代码编辑窗口直接打开Github或者BitBucket相关的页面。
修理Xcode
不需要在每年六月苦苦等待苹果工程师推出下一版本的Xcode,开发者们现在可以根据自己的需要修理现有的Xoce编辑器(最重要的是修复不能工作的部分)。
为Issue Navigator处添加换行符
Xcode 4中比较烦人的是Issues Navigator对项目的截断。使用BBUFullIssueNavigator,就不会在出现编译器警告时受挫了。
打字时解除调试控制台
Xcode 4中另一个比较烦人的地方是,似乎调试控制台总会成为障碍。使用BBUDebuggerTuckAway,当你在编辑器中打字时调试窗口将不再出现。
为调试控制台添加ANSI颜色支持
NCURSES狂热者无疑会很喜欢XcodeColors插件,这个插件支持在调试控制台中显示ANSI颜色。
在Source Navigator中隐藏@property方法
是否发现在Source Navigator中@property合成器创建一个较低的信噪比?让Xprop去掉这一冗余,将函数和方法表现出来。
去掉DerivedData文件夹
Xcode又给你发消息了么?90%的时间都需要对"Library/Developer/Xcode/DerivedData" 进行 rm -rf-ing 操作。使用DerivedData Exterminator,在你的Xcode窗口添加一个方便的按钮可以帮你做这件事情。
增强Xcode
Objective-C并非现有语言中不是最冗长的语言。在自动补全方面,它使用了它能获得的所有帮助。Xcode在类和方法的实现过程中做了很多繁重的工作,但是这些插件可以进一步扩展它:
自动填充switch语句
事实上,switch语句和NS_ENUM是一起使用的,类似mango和sweet sticky rice。唯一能够加强它的方法就是使用SCXcodeSwitchExpander为枚举的每个值自动填充一个case语句。
自动补全文档
文档(这种项目名称是不用翻译的,写英文就行)为代码库添加了很多值,但很难维护。VVDocumenter-Xcode插件能大大降低添加appledoc兼容性头文件的工作量。安装它,然后它会将代码封装在一个规范的代码注释生成器中。
格式化Xcode
"代码组织是一个整洁问题",所以为了你自己和团队,你需要在代码库中保持一致的空格。使用这些插件可以使你更容易实现流程自动化。
使用ClangFormat格式化代码
ClangFormat-Xcode是一个便捷的封装方法,它可以根据一个指定的风格指南自动格式化空白字符。使用这个插件可以永久地消除不喜欢的格式。
语句对齐
假设自己是一个代码设计者,不喜欢自动格式化么?XAlign可以自动对齐语句。
扩展Xode
正如Bret Victor writes about Learnable Programming这篇文章中提到的,这些插件扩展了我们对编辑器的期望,可以明确地添加上下文环境和理解代码。
检查NSColor/UIColor实例
单从RGB的值分辨颜色很不容易,所以面对一个NSColor或者UIColor值,我们直到创建并运行代码才知道它是什么颜色。不过可以使用ColorSense for Xcode。
引用:ColorSense是一款Xcode插件,能让开发者视觉化地管理和使用UIColor和NSColor,方便开发者定义颜色。该插件的编辑菜单增加了一些项目来插入颜色或者暂时禁用颜色高亮。 |
自动补全图片名称
类似于ColorSensec插件,使用[UIImage imageNamed:] 声明,KSImageNamed将会扫描整个workspace中的图片文件,为项目中使用的UIImage的imageNamed提供文件名自动补全功能。
语义高亮显示
任何好的编辑器都有语法高亮显示的形式。不过Evan Brooks的这篇文章中介绍了语义在编辑器中高亮显示的想法,即为范围内的每个变量分配一个特别的颜色,并与引用保持一致。这个方法能很容易地区分同一个方法中的两个实例变量。
XCode中使用Polychromatic初步实现了这一功能,值得一看。唯一的缺点是,这个插件需要使用特殊复杂配色方案。这也许会在将来的版本中实现,实现语法高亮这一想法应该就会得到广泛传播。
本地化
Lin是一款开源的智能的xcode5插件 可在代码中添加本地化编辑器,用图形化管理项目的本地化。
Xcode的插件架构是基于一些特定于Xcode私有框架,包括DVTKit和IDEKit。在Xcode的应用程序包中运行class-dump可得到一个完整的列表。
使用私有的框架是App Store禁止的,不过由于插件不通过该渠道分发,因此开发者可以以自己喜欢的方式使用插件。 |
开始使用插件吧!下载Xcode5 Plugin Template,使用其他可用的插件以及class-dump头文件作为指南,告诉你能做什么,以及怎么去做。