寻找灵感:

·TappGala -一个很棒的优美应用设计的集合站。静态展示别人的优秀应用界面,你可以在此获取灵感。

·Dribbble -最优秀的设计师们在上面展示他们的作品。真正的精品。

·Capptivate -给人灵感的设计作品。有些动态展示的。感谢你,@joaopmaia!

设计:

·iOS 7 PSD by Teehan+Lax -如果你(或者你的设计师)用Photoshop的话,这是个超有用的资源。也有 iOS 6 版本的。

开源代码:

·Cocoa Controls -一些很棒的你可以用在你的iOS应用中的组件(代码)。有时你可以找到一段优秀代码来节省时间,有时你也可以学习其他开发者是如何完成某个功能的。都是github上的项目,订阅他们的每周一报吧。

代码控制:

·Source Tree -一个免费功能很全的Git应用。我没用过是因为我喜欢命令行的方式,但如果你喜欢用GUI工具的话,可以看看这个。

工具脚本:

    ·appcrush.rb  -这个很方便的 ruby脚本可以获取apps图片资源浏览。只需将它指向你磁盘上的一个 .app文件,它就会将所有图片提取到你桌面上的一个文件夹里。很方便地可以知道你手机上的应用如何完成某些设计的。我的 my screencast on dissecting apps上有视频演示。

·OMColorSense  - 另一个 Xcode插件,当你的光标停留在某个代码行如: [UIColor redColor]上的时候,它会在一小块区域里展示出代码中的颜色。点击颜色选项卡会打开颜色选择器,你在上面做的任何改变都会在代码里得到反映,相应代码改为 [UIColor colorWithRed:... green... blue... alpha:... ]。当我开着这个功能写代码,别人看到的时候总是问我: “哇哦!这是啥玩意! ”

·KSImageNamed  -另一个 Xcode插件,可以在你打下 [UIImage imageNamed:...]的时候,自动补全 bundle中图片的文件名。有了它,就可以避免那些不小心打错图片名导致方法返回 nil,然后你花 10分钟去检查为什么图片没有展示出来的问题了。

        ·appledoc  -想自动生成苹果官方那样的文档吗?不用再找了。自动在你的项目中定义超链接符号,使用特殊格式的代码注释来提取内容。生成正式文档和 HTML网页。

依赖管理:

是的,这里只列举了一个工具。我不想引入真正的第三方库列表,因为它们属于完全不同的另一个列表。当我们谈到依赖管理的时候,最最重要的就是:

·CocoaPods -  管理Objective-C项目的重要工具。允许你轻松快速地将第三方库集成到你的应用中。它是通过创建另一个静态库工程,然后自动链接到你的工程来实现的。有成千上万个可用的pod,可以轻松地为你的项目增加那些不属于你(或者私有)的第三方库支持。我在我的每个项目里都用了CocoaPods。

诊断&调试:

        ·Cocoa Lumberjack -一个更强大的NSLog,Cocoa Lumberjack提供了高级日志行为,比如记录日志到文件、网络,根据日志级别来筛选(info,debug,warn,error)。在NSScreencast Episode 61中有提到。

·Spark Inspector -  在调试模式运行你的应用时,可以用3D来展示调试你的视图层次。这个应用你真的要看到了才会真正明白它的价值。它能帮助你了解你的应用是由哪些视图组成的。它还带有一个通知中心监视器,你可以轻松看到发出了哪些NSNotification,谁在观察它们。另一个监控NSNotification的应用是Reveal。

图形图像:

ImageOptim  -另一个 Mac应用,可以压缩 PNG图片来节省空间。大多数 PNG文件可以省掉几个百分点的大小,有时甚至 30%或更多。图片更小意味着应用尺寸更小,运行时加载它们所使用的内存也更小。

       ·Prepo  -一个 Mac上的小应用,可以将图片快速变换为你需要的多个尺寸。只需要拖动一个大图标文件(比如, 1024*1024)到 Prepo,它就会生成 512*512的iTunesArtwork ,114*114 的 Icon@2x.png ,以及其他的尺寸和文件名。

 后台服务

最终你的iOS应用很可能会和服务器通信分享数据、获取新内容、发送推送通知等等。虽然你都可以手动去做,但你或许想要更方便的解决方案。

·Helios - Helios是一个开源的框架,为iOS应用提供了基础的后台服务,从数据同步、推送通知到应用内购买以及passbook集成。它建立在许多开源ruby gem的基础上,因此如果你想要的话可以挑选构建你自己的栈。看一下Nomad CLI,有很多好用的相关工具。

·Windows Azure Mobile Services -你可以把它想象成在云端的一个可编程数据库。建表,用JavasScript来读取、插入、删除,增加额外的功能。实现推送通知相当简单。

·Urban Airship -我现在在用Urban Airship来实现推送通知。很容易集成,用户量不大的话是免费的。

·Parse -这是另一个云端数据服务,但是它提供了很多API以及有一个在线数据浏览器。我们一个很小的应用用了Parse,感觉不错。

分析:

这里还有些别的选择,但没有一个让我觉得有冲动把flurry换掉的。我乐于听取意见,欢迎在评论里告诉我吧。

·Flurry -我用flurry很长时间了,它可以提供用户使用我的应用的有用的分析数据。想知道什么时候可以停止支持iOS5么?Flurry会给你数据供你们讨论。

部署:

·Cupertino - Nomad CLI工具之一,Cupertino为你提供了命令行接口来管理苹果Provisioning Portal上的设备及profile。举例来说,只要键入ios devices:list就可以看到你帐号里的当前设备列表。可以用来自动化许多过程。

·TestFlight -一个类似于Hockey App的免费应用。我们使用TestFlight已经取得了很大成功,轻松发布应用,从用户那收集反馈。我唯一希望他们能对这个服务进行收费。它还包括了分析和崩溃报告功能,但我们没有用到那些功能。

·Crashlytics -对于你正在开发中的应用来说是个很棒的崩溃报告工具。在发布版里自动上传dSYM文件,因此你的崩溃日志会为你自动符号化并组织好,你可以专注于最关键的部分。

 测试:

我认为我们作为一个社区对测试关注得还不够。有很多不错的工具可用,大多数都很好用,我们没有借口不为我们的应用写一些测试。

·Kiwi - 一个不错的Rspec风格的iOS测试框架。基于SenTestingKit建立,因此你只需按下⌘U来运行你的用例。它同样带有健壮的mocking以及stubbing库和断言。

·Specta -一个类似于Kiwi的轻量级BDD框架,但是它的expectation语法有一个比Kiwi好的地方:每个变量都隐式装箱:expect(items.count).to.equal(5)。不需要像Kiwi那样将5包装成NSNumber。和Expecta搭配使用效果更好。

以下的几个都可以用来执行端到端的验收测试。这些测试会和你的界面交互,点击按钮,滚动,等等。虽然上它们运行会比较慢,但是在大范围内测试会更容易看到所有的模块整合的是否良好。

  • KIF
  • Calabash
  • Zucchini
  • Frank
  • Bwoken

 演示/市场

  • Placeit -一些关于人们使用设备的高分辨率的图的集合,但是设备可以由你上传的截屏图来定制。很酷,很适合在你网站上优雅地展示你的应用。