假定你去到一名闇练的木工的任务室,你老是能发现他/她有一堆对象来完成不合的义务。
软件开辟异常如此。你可以从软件开辟者若何应用对象中看出他水准若何。有经历的开辟者精于应用对象。对你今朝所应用的对象赓续研究,同时知道一些替代品的应用,当你今朝所用的对象没法满足你的需要时可以抵偿空白。
记住了这些,我将向你揭示一份关于各类对象的长长的列表。个中一些我每天都用,其他的我看状况应用。假定你还有更多的对象想展此刻这个列表里,可以跟我留言哦亲。
在这里我还是要推荐下我自己建的iOS开发学习群:680565220,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程
我尽我所能给列表分分类。有一些是网站,有些是后台处事,但大年夜大年夜多半是你可以装的应用。不是一切应用都是收费,是以我会用$符号来暗示此应用可否要花钱。
废话不多说,我们立时末尾。
灵感
pttrns - 一个很棒的按义务分类的iOS屏幕设计图库。举例来讲,假定你想看其他应用若何措置勾当feed,在这儿你可以找到一堆的例子。
TappGala - 另外一个很棒的美好应用设计的调集站。它不是按义务来分类的,只是一个优良应用的列表,你可以在此获得灵感。
Cocoa Controls - 一些很棒的你可以用在你的iOS应用中的组件(代码)的列表。有时你可以找到一段优良代码来节流工夫,有时你也能够进修其他开辟者是若何完成某个功用的。订阅他们的每周一报吧,都是精华,极少糟粕。
IICNS - 真正优良图标的调集。获得灵感吧,但不要抄袭。
Dribbble - 最优良的设计师们鄙人面揭示他们的作品。真实的精品。
Capptivate - 给人灵感的设计作品图库。有些带有动画。感激你,@joaopmaia!
设计
Mocks ($) – 一个简单应用的快速创建iOS应用原型的对象。自带一些默许控件,你可以快速搭建原型。
Briefs ($) – 一个很有效的应用,可让你创建应用原型,将原型连起来构成交互。你可以安插到真实设备上,看看在你手上是甚么样的感应。
Acorn ($) – Photoshop的有力竞争者,比ps便宜多了。我发现本身比来用Photoshop愈来愈少了。该项目在积极的开辟保护中。
Sketch ($) - 一个基于矢量的画图对象,跟着屏幕尺寸和像素密度的改动,这个对象愈来愈有效。只需要设计一次,然后可以根据需要遏制缩放。同时还带有一个很弱小大年夜的导出系统。关于Sketch示例项目,请看Sketchmine。我的 screencast on Sketch上有视频演示。
iOS 7 PSD by Teehan+Lax - 假定你(或许你的设计师)用Photoshop的话,这是个超有效的本钱。也有 iOS 6版本的。
Bjango’s Photoshop Actions - 假定你用Photoshop来设计iOS应用的话相对能帮你省工夫。一次点击便可重设画布大年夜大年夜小,缩放200%(或50%),设置全局亮度为90等等。他们的 博客中也有很多Photoshop的任务身手。
xScope ($) – 一把弗成或缺的瑞士军刀,指导,像素缩小大年夜镜,屏幕怀抱等等。想知道某个像素点的色彩值?想知道某个Mac应用的一个按钮和窗口之间有若干像素?xScope都能帮你。可以看下他们为镜像设计所开辟的iPhone应用,看镜像设计在你的苹果设备上是多么的像素完美。
Glyphish ($) – 一个很赞的有很多你的iOS应用可以应用的高质量图标的调集。苹果供给的内置图标其实不多,一切具有这么一个包括各类概念的图标调集很有效。我还在寻觅关于婴儿的一些图标。Glyphish是以包的情势颁布发表的,最新的包里有iOS7的“细线条”图标,当设计iOS7应用的时辰很有效。
Fontastic Icons for iOS - 一个应用图标字体的开源类调集,例如iOS应用中的Font Awesome。可以在任何像素维度上快速精练的获得一个图标。因为字体在本色上可以轻松缩放,用这类编制可以很便当的在不合平台应用的图标,而无需根据不合尺寸导出不合的版本。
PaintCode ($) -一个基于向量的画图对象,可以将你的作品导出为Core Graphics源代码。用来进修Core Graphics画图是异常棒的,同时假定你想要静态画图也是异常便当。我的screencast on PaintCode上有视屏演示。
Edge Insets ($) – 一个帮助你定义可重用图片边距的简单对象。在Mac App Store上有售。
LiveView - 一个iOS上的长途屏幕查抄器,在你的设备上可以立马轻松地看到你的设计图。感激你,@_funkyboy!
Skala Preview ($) – 另外一个很棒的可以在真实设备上快速看到你的设计图的对象。Bjango的同伙们很给力,这个应用物有所值。感激你,jn40!
源代码节制
Git - 假定你没有应用源代码节制的话,停下手中的活立马做出改动吧。我应用git做任何任务,我超爱它的。
Kaleidoscope ($) – 最棒的diff/merge对象。三路归并,看着很斑斓。我每天都用。
p4merge - 一个收费的、粗陋的Kaleidoscope的替代品。弱小大年夜的三路归并功用,但找下载链接不随便啊。我每首要找的时辰都觉得在他们网站上藏的很深啊。
Git X - 一个简单弱小大年夜的GUI对象,可以看到git的工夫线,轻松精练地完成暂存区提交。我平日在终端上应用git,但当我需要将暂存区的改动做一次提交的时辰就会想到这个应用。这是本来(曾对峙)的GitX的一个衍生品,我在这个衍生品列表上找到的。
Source Tree - 一个收费功用很全的Git应用。我没用过是因为我爱好敕令行的编制,但假定你爱好用GUI对象的话,可以看看这个。
分解应用
pngcrush - 这个合用对象可以缩短解缩短PNG文件,当你想那些App Store上应用里的图片时很有效。只需翻开iTunes,查抄本地应用列表,对图标右键在Finder中翻开。然后翻开应用,你可以看到一堆PNG文件,但你没法查抄它们。应用了pngcrush你可以将它们全数提取出来,然后用预览来查抄。
appcrush.rb - 这个很便当的ruby脚本可以针对一切图片将以上过程主动化。只需将它指向你磁盘上的一个.app文件,它就会将一切图片提取到你桌面上的一个文件夹里。很便本地可以知道你手机上的应用若何完成某些设计的。我的my screencast on dissecting apps上有视频演示。
Charles ($, 收费功用受限的试用版) – 我不知道它的界面或许图标为何如此丑恶,然则Charles是关于任何开辟者来讲都异常首要的一个对象。Charles作为一个代办代理,许可你监督进出你iPhone摹拟器的汇集流量。你异常可以经过过程将手机的代办代理设置为你Mac上正在运转的Charles来监控你设备上的流量。字签名的SSL证书,恳求&照顾断点,恳求/照顾查抄器,Charles真心是大年夜大年夜赞。一个必须具有的对象。再次,我的dissecting apps上视频演示。
编辑器
我知道你在想甚么,莫非不是一切iOS开辟者都用Xcode吗?答案是大年夜大年夜多半都应用。但从我和Xcode的恩恩仇怨来看,我信赖很有需要来揣摩下有哪些替代品。
AppCode - Jetbrains(ReSharper for .NET的制造公司)的一款功用周全的IDE。弱小大年夜的重构对象和功用可以帮助你更快地写代码。快速辨认去世代码,当你应用了相干代码时主动拔出#import语句,轻松拔取变量、编制和类。我独一欲望的是它能成为Xcode的一个插件。
Vim - 等一下, vim?真的么?切当是真的,有人在vim里做一切的Objective-C开辟。我其实不是个中之一,但我爱好用vim开辟ruby。就因为如此,我很爱好…
Xvim - 一个Xcode插件,能应用vim中的keybindings。感应不错,‘nuff说。
OMColorSense -另外一个Xcode插件,当你的光标勾留在某个代码行如:[UIColor redColor]上的时辰,它会在一小块区域里揭示出代码中的色彩。点击色彩选项卡会翻开色彩选择器,你鄙人面做的任何改动都邑在代码里获得反应,照顾代码改成[UIColor colorWithRed:... green... blue... alpha:... ]。当我开着这个功用写代码,他人看到的时辰老是问我:“哇哦!这是啥玩意!”
KSImageNamed - 另外一个Xcode插件,可以在你打下[UIImage imageNamed:...]的时辰,主动补全bundle中图片的文件名。有了它,便可以避免那些不寄望打错图片名招致编制前去nil,然后你花10分钟去检讨为甚么图片没有揭示出来的结果了。
CocoaPods Xcode Plugin - 这个插件增加了一个菜单项可以和CocoaPods交互。假定你不想用敕令行的话很有效。
Alcatraz Package Manager - 一个很棒的元插件,可让你经过过程轻点鼠标轻松装配其他的Xcode配色经营和插件。
Code Runner ($) – 一个轻量级的代码感知文本编辑器,知道如何编译和运转多种措辞的代码。想快速测试一段Objective-C代码,又不想创建一全数Xcode项目?尝尝Code Runner吧。
文档
啊哈,文档,每小我最爱的话题。文档很首要,是以请寄望一下,我们可让你糊口变得简单一些。
appledoc - 想主动生成苹果官方那样的文档吗?不消再找了。主动在你的项目中定义超链接符号,应用出格格局的代码注释来提取内容。生成正式文档和HTML网页。
Dash ($) – 一个必须具有的API文档查抄器和代码片段办理器。它很好用,许可你下载并搜刮各类措辞和框架的API文档,并且速度很快。最快拜候文档的编制。为了使搜刮更快,我把Dash和Alfred集成起来应用。
依托办理
是的,这里只列举了一个对象。我不想引入真实的第三方库列表,因为它们属于完全不合的另外一个列表。当我们谈到依托办理的时辰,最最首要的就是:
CocoaPods - 办理Objective-C项目标首要对象。许可你轻松快速地将第三方库集成到你的应用中。它是经过过程创建另外一个静态库工程,然后主动链接到你的工程来完成的。有不成胜数个可用的pod,可以轻松地为你的项目增加那些不属于你(或许私有)的第三方库撑持。我在我的每个项目里都用了CocoaPods。
诊断&调试
有时辰我们正在开辟应用,我们想更好的懂掉掉落底产生了甚么,修bug或许改进机能。
Cocoa Lumberjack - 一个更弱小大年夜的NSLog,Cocoa Lumberjack供给了初等日记行动,比如记录日记到文件、汇集,根据日记级别来遴选(info,debug,warn,error)。在NSScreencast Episode 61中有提到。
DCIntrospect - 当你在摹拟器上调试的时辰链接到你应用中的超弱小大年夜的对象。一旦你这么做了,你可以按下空格键来获得一些很有效的视图调试撑持。查抄屏幕上视图元素的精确维度,打印视图层次,乃至程度或垂直移动视图。
Pony Debugger - 另外一个你可以嵌入一个库到你调试版本中的对象,Pony Debugger实践上应用了Chrome的开辟对象来查抄设备上收回的汇集恳求,还有一个根基的Core Data浏览器。很难刻画,请看我的screencast on Pony Debugger吧。
Runscope ($) – Runscope是一个汇集处事,可以捕获恳求,记录日记,给你关于你的API的有效数据。因为它是个HTTP通道API, 搭建简单,你只需要改换你的主机名就好了。
SimPholders - 快速简单的拜候你的摹拟器文件夹。根据iOS版本来浏览,然后是应用名,可以直接在Finder中翻开文件夹。
Spark Inspector - 在调试情势运转你的应用时,可以用3D来揭示调试你的视图层次。这个应用你真的要看到了才会真正大白它的价值。它能帮助你知道你的应用是由哪些视图构成的。它还带有一个通知中间监督器,你可以轻松看到收回了哪些NSNotification,谁在不雅不雅察它们。另外一个监控NSNotification的应用是Reveal。
图象
ImageAlpha - 一个Mac应用,可让你将24位带透明度的PNG图转成8位的带alpha通道的PNG图。平日8位PNG图不带有alpha通道,是以假定你的图片可以用8位来暗示(比如一个单色的按钮)的话,你可以经过过程把25位PNG转成8位的来节流很多空间。
ImageOptim - 另外一个Mac应用,可以缩短PNG图片来节流空间。大年夜大年夜多半PNG文件可以省掉落落几个百分点的大年夜大年夜小,有时乃至30%或更多。图片更小意味着应用尺寸更小,运转时加载它们所应用的内存也更小。
Prepo - 一个Mac上的小应用,可以将图片快速变换为你需要的多个尺寸。只需要拖动一个大年夜大年夜图标文件(比如,1024*1024)到Prepo,它就会生成512*512的iTunesArtwork,114*114的 Icon@2x.png,和其他的尺寸和文件名。
Slender ($) -一个很棒的应用,可以分解你的应用,找出各类结果,比如贫乏视网膜屏的图片,没用到的图片,能缩短的图片。应用Slender去除掉落落那些没用的图片,可觉得你的iPhone应用节流很多多少空间。
Core Data
Mogenerator - 一个超有效的对象,在你的Core Data模型中生成NSManagedObjects智能子类。有些人应用Xcode完成这功用,经过过程手动子类化或许创建分类来为模型增加逻辑。Mogenerator作为预编译脚本运转来生成你可以应用的子类。它经过过程创建带有下划线的版本(_User)和正常你可以批改的版本(User)来完成。
Base ($) – 你必然会需要查抄你的Core Data sqlite数据库来检讨产生了甚么。你可以应用sqlite3敕令行对象,但Base给了你一个便当查抄的GUI浏览器。当你看到Core Data为你创建的数据库schema时你可不要吐哦。
Core Data Editor ($) -关于一些更初等的数据分解、开掘和批改,你可以应用Core Data Editor。这个应用知道Core Data,是以你是在直接和实体打交道,而不是数据库行。
后台处事
终究你的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会给你数据供你们评论辩论。
安插
Deploymate ($) – 还需要撑持iOS4,然则你在用iOS6 SDK编译?当你应用了一些在你的安插目标上不存在的符号时,Deploymate会警告你的。
Cupertino - Nomad CLI对象之一,Cupertino为你供给了敕令行接口来办理苹果Provisioning Portal上的设备及profile。举例来讲,只需键入ios devices:list便可以看到你帐号里的今后设备列表。可以用来主动化很多过程。
Hockey App ($) – 办理你ad-hoc版本颁布发表的不错处事。测试人员可以获得一个链接,无线装配新的测试版本。它还供给了却实的解体申报功用,你可以轻松应对你应用中的解体。
TestFlight - 一个类似于Hockey App的收费应用。我们应用TestFlight曾获得了很大年夜大年夜成功,轻松颁布发表应用,从用户那汇集反应。我独一欲望他们能对这个处事遏制收费。它还包含了分解和解体申报功用,但我们没有效到那些功用。
iOS Simulator Cropper - 一个拍摹拟器屏幕快照的简单编制,可以选择带或许不带状况栏,带或许不带机械外壳等等。关于App Store或许深切市场上的一些截屏很有效。
Status Magic ($) – 拍出更好的app store截屏图。没有甚么比App Store上带有低电量或许低旗号暗号标识的截屏图更让你的应用看起来蹩脚的了。Status Magic让你充分定制你的状况栏,包含去除一些元素,把工夫改成苹果爱好的“9:41 AM”那样,等等。
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
演示/市场
Reflector ($) – 将你的iOS设备经过过程Air Play镜像到你的Mac上。很适合在你的电脑上做应用演示。
Placeit - 一些关于人们应用设备的高辩白率的图的调集,然则设备可以由你上传的截屏图来定制。很酷,很适合在你网站上优雅地揭示你的应用。
应用发卖申报
你当然想要知道你的应用能赚若干钱,不是么?有一些措置经营,这儿有些还不错的:
App Viz 2 ($) – 一个很有效的Mac应用,可以跟踪你应用的销量。你在本地运转它,它会登录并下载你的发卖申报。
App Annie - 一个在线的发卖申报对象。我不太甘心把我的认证信息交给除iTunes以外的第三方,但它切当能确保你的申报是最新的,你无需在本地运转一个法度典型。在评论中,Josh Brown建议可以创建另外一个用户用于iTunes Connect中的分解,这个主张不错。
摸彩袋
这些对象没有一个定义好的分类,但值得一提。
Quick Radar - 提交bug申报给苹果,是我们独一可以帮助他们改进对象的编制。假定你因为贫乏某个功用觉得万分懊丧,你可以提交一个bug申报。假定你碰着了一个bug,你异常可以。假定他们没有雷达的话,用户还没有抱怨的权力:)是以,经过过程bugreporter来提交bug申报的话仿佛又回到了1995年。Quick Radar是一个很赞的应用,它可使提交bug申报变得超等简单。主动颁布发表到开放的雷达,多么其他人就可以看到,也能够发twitter,颁布发表到App.net。我每周都要用好几次这个应用。
原文
如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务。
软件开发同样如此。你可以从软件开发者如何使用工具中看出他水准如何。有经验的开发者精于使用工具。对你目前所使用的工具不断研究,同时了解一些替代品的使用,当你目前所用的工具无法满足你的需要时可以填补空缺。
记住了这些,我将向你展示一份关于各种工具的长长的列表。其中一些我每天都用,其他的我看情况使用。如果你还有更多的工具想展示在这个列表里,可以跟我留言哦亲。
我尽我所能给列表分分类。有一些是网站,有些是后台服务,但大多数是你可以装的应用。不是所有应用都是免费,因此我会用$符号来表示此应用是否要花钱。
废话不多说,我们马上开始。
灵感
pttrns - 一个很棒的按任务分类的iOS屏幕设计图库。举例来说,如果你想看其他应用如何处理活动feed,在这儿你可以找到一堆的例子。
TappGala - 另一个很棒的优美应用设计的集合站。它不是按任务来分类的,只是一个优秀应用的列表,你可以在此获取灵感。
Cocoa Controls - 一些很棒的你可以用在你的iOS应用中的组件(代码)的列表。有时你可以找到一段优秀代码来节省时间,有时你也可以学习其他开发者是如何完成某个功能的。订阅他们的每周一报吧,都是精华,极少糟粕。
IICNS - 真正优秀图标的集合。获取灵感吧,但不要抄袭。
Dribbble - 最优秀的设计师们在上面展示他们的作品。真正的精品。
Capptivate - 给人灵感的设计作品图库。有些带有动画。感谢你,@joaopmaia!
设计
Mocks ($) – 一个简单应用的快速创建iOS应用原型的工具。自带一些默认控件,你可以快速搭建原型。
Briefs ($) – 一个很有用的应用,可以让你创建应用原型,将原型连起来形成交互。你可以部署到真实设备上,看看在你手上是什么样的感觉。
Acorn ($) – Photoshop的有力竞争者,比ps便宜多了。我发现自己最近用Photoshop越来越少了。该项目在积极的开发维护中。
Sketch ($) - 一个基于矢量的画图工具,随着屏幕尺寸和像素密度的改变,这个工具越来越有用。只需要设计一次,然后可以根据需要进行缩放。同时还带有一个很强大的导出系统。对于Sketch示例项目,请看Sketchmine。我的 screencast on Sketch上有视频演示。
iOS 7 PSD by Teehan+Lax - 如果你(或者你的设计师)用Photoshop的话,这是个超有用的资源。也有 iOS 6版本的。
Bjango’s Photoshop Actions - 如果你用Photoshop来设计iOS应用的话绝对能帮你省时间。一次点击即可重设画布大小,缩放200%(或50%),设置全局亮度为90等等。他们的 博客中也有许多Photoshop的工作技巧。
xScope ($) – 一把不可或缺的瑞士军刀,指导,像素放大镜,屏幕度量等等。想知道某个像素点的颜色值?想知道某个Mac应用的一个按钮和窗口之间有多少像素?xScope都能帮你。可以看下他们为镜像设计所开发的iPhone应用,看镜像设计在你的苹果设备上是多么的像素完美。
Glyphish ($) – 一个很赞的有很多你的iOS应用可以使用的高质量图标的集合。苹果提供的内置图标并不多,所有拥有这么一个囊括各种概念的图标集合很有用。我还在寻找关于婴儿的一些图标。Glyphish是以包的形式发布的,最新的包里有iOS7的“细线条”图标,当设计iOS7应用的时候很有用。
Fontastic Icons for iOS - 一个使用图标字体的开源类集合,例如iOS应用中的Font Awesome。可以在任何像素维度上快速简便的得到一个图标。由于字体在本质上可以轻松缩放,用这种办法可以很方便的在不同平台使用的图标,而无需根据不同尺寸导出不同的版本。
PaintCode ($) -一个基于向量的画图工具,可以将你的作品导出为Core Graphics源代码。用来学习Core Graphics绘图是非常棒的,同时如果你想要动态绘图也是非常方便。我的screencast on PaintCode上有视屏演示。
Edge Insets ($) – 一个帮助你定义可重用图片边距的简单工具。在Mac App Store上有售。
LiveView - 一个iOS上的远程屏幕查看器,在你的设备上可以立马轻松地看到你的设计图。谢谢你,@_funkyboy!
Skala Preview ($) – 另一个很棒的可以在真实设备上快速看到你的设计图的工具。Bjango的朋友们很给力,这个应用物有所值。谢谢你,jn40!
源代码控制
Git - 如果你没有使用源代码控制的话,停下手中的活立马做出改变吧。我使用git做任何事情,我超爱它的。
Kaleidoscope ($) – 最棒的diff/merge工具。三路合并,看着很漂亮。我每天都用。
p4merge - 一个免费的、简陋的Kaleidoscope的替代品。强大的三路合并功能,但找下载链接不容易啊。我每次要找的时候都觉得在他们网站上藏的很深啊。
Git X - 一个简单强大的GUI工具,可以看到git的时间线,轻松简便地实现暂存区提交。我通常在终端上使用git,但当我需要将暂存区的改变做一次提交的时候就会想到这个应用。这是原来(已经废弃)的GitX的一个衍生品,我在这个衍生品列表上找到的。
Source Tree - 一个免费功能很全的Git应用。我没用过是因为我喜欢命令行的方式,但如果你喜欢用GUI工具的话,可以看看这个。
剖析应用
pngcrush - 这个实用工具可以压缩解压缩PNG文件,当你想那些App Store上应用里的图片时很有用。只要打开iTunes,查看本地应用列表,对图标右键在Finder中打开。然后打开应用,你可以看到一堆PNG文件,但你没法查看它们。使用了pngcrush你可以将它们全部提取出来,然后用预览来查看。
appcrush.rb - 这个很方便的ruby脚本可以针对所有图片将以上过程自动化。只需将它指向你磁盘上的一个.app文件,它就会将所有图片提取到你桌面上的一个文件夹里。很方便地可以知道你手机上的应用如何完成某些设计的。我的my screencast on dissecting apps上有视频演示。
Charles ($, 免费功能受限的试用版) – 我不知道它的界面或者图标为何如此丑陋,但是Charles是对于任何开发者来说都非常重要的一个工具。Charles作为一个代理,允许你监视进出你iPhone模拟器的网络流量。你同样可以通过将手机的代理设置为你Mac上正在运行的Charles来监控你设备上的流量。字签名的SSL证书,请求&响应断点,请求/响应查看器,Charles真心是大赞。一个必须拥有的工具。再次,我的dissecting apps上视频演示。
编辑器
我知道你在想什么,难道不是所有iOS开发者都用Xcode吗?答案是大多数都使用。但从我和Xcode的恩恩怨怨来看,我相信很有必要来考虑下有哪些替代品。
AppCode - Jetbrains(ReSharper for .NET的制作公司)的一款功能全面的IDE。强大的重构工具和功能可以帮助你更快地写代码。快速识别死代码,当你使用了相关代码时自动插入#import语句,轻松选取变量、方法以及类。我唯一希望的是它能成为Xcode的一个插件。
Vim - 等一下, vim?真的么?确实是真的,有人在vim里做所有的Objective-C开发。我并不是其中之一,但我喜欢用vim开发ruby。就因为如此,我很喜欢…
Xvim - 一个Xcode插件,能使用vim中的keybindings。感觉不错,‘nuff说。
OMColorSense -另一个Xcode插件,当你的光标停留在某个代码行如:[UIColor redColor]上的时候,它会在一小块区域里展示出代码中的颜色。点击颜色选项卡会打开颜色选择器,你在上面做的任何改变都会在代码里得到反映,相应代码改为[UIColor colorWithRed:... green... blue... alpha:... ]。当我开着这个功能写代码,别人看到的时候总是问我:“哇哦!这是啥玩意!”
KSImageNamed - 另一个Xcode插件,可以在你打下[UIImage imageNamed:...]的时候,自动补全bundle中图片的文件名。有了它,就可以避免那些不小心打错图片名导致方法返回nil,然后你花10分钟去检查为什么图片没有展示出来的问题了。
CocoaPods Xcode Plugin - 这个插件增加了一个菜单项可以和CocoaPods交互。如果你不想用命令行的话很有用。
Alcatraz Package Manager - 一个很棒的元插件,可以让你通过轻点鼠标轻松安装其他的Xcode配色方案和插件。
Code Runner ($) – 一个轻量级的代码感知文本编辑器,知道怎么编译和运行多种语言的代码。想快速测试一段Objective-C代码,又不想创建一整个Xcode项目?试试Code Runner吧。
文档
啊哈,文档,每个人最爱的话题。文档很重要,因此请注意一下,我们可以让你生活变得简单一些。
appledoc - 想自动生成苹果官方那样的文档吗?不用再找了。自动在你的项目中定义超链接符号,使用特殊格式的代码注释来提取内容。生成正式文档和HTML网页。
Dash ($) – 一个必须拥有的API文档查看器和代码片段管理器。它很好用,允许你下载并搜索各种语言和框架的API文档,而且速度很快。最快访问文档的方式。为了使搜索更快,我把Dash和Alfred集成起来使用。
依赖管理
是的,这里只列举了一个工具。我不想引入真正的第三方库列表,因为它们属于完全不同的另一个列表。当我们谈到依赖管理的时候,最最重要的就是:
CocoaPods - 管理Objective-C项目的重要工具。允许你轻松快速地将第三方库集成到你的应用中。它是通过创建另一个静态库工程,然后自动链接到你的工程来实现的。有成千上万个可用的pod,可以轻松地为你的项目增加那些不属于你(或者私有)的第三方库支持。我在我的每个项目里都用了CocoaPods。
诊断&调试
有时候我们正在开发应用,我们想更好的了解到底发生了什么,修bug或者改善性能。
Cocoa Lumberjack - 一个更强大的NSLog,Cocoa Lumberjack提供了高级日志行为,比如记录日志到文件、网络,根据日志级别来筛选(info,debug,warn,error)。在NSScreencast Episode 61中有提到。
DCIntrospect - 当你在模拟器上调试的时候链接到你应用中的超强大的工具。一旦你这么做了,你可以按下空格键来取得一些很有用的视图调试支持。查看屏幕上视图元素的精确维度,打印视图层次,甚至水平或垂直移动视图。
Pony Debugger - 另一个你可以嵌入一个库到你调试版本中的工具,Pony Debugger实际上使用了Chrome的开发工具来查看设备上发出的网络请求,还有一个基本的Core Data浏览器。很难描述,请看我的screencast on Pony Debugger吧。
Runscope ($) – Runscope是一个网络服务,可以捕捉请求,记录日志,给你关于你的API的有用数据。因为它是个HTTP通道API, 搭建简单,你只需要更换你的主机名就行了。
SimPholders - 快速简单的访问你的模拟器文件夹。根据iOS版本来浏览,然后是应用名,可以直接在Finder中打开文件夹。
Spark Inspector - 在调试模式运行你的应用时,可以用3D来展示调试你的视图层次。这个应用你真的要看到了才会真正明白它的价值。它能帮助你了解你的应用是由哪些视图组成的。它还带有一个通知中心监视器,你可以轻松看到发出了哪些NSNotification,谁在观察它们。另一个监控NSNotification的应用是Reveal。
图像
ImageAlpha - 一个Mac应用,可以让你将24位带透明度的PNG图转成8位的带alpha通道的PNG图。通常8位PNG图不带有alpha通道,因此如果你的图片可以用8位来表示(比如一个单色的按钮)的话,你可以通过把25位PNG转成8位的来节省很多空间。
ImageOptim - 另一个Mac应用,可以压缩PNG图片来节省空间。大多数PNG文件可以省掉几个百分点的大小,有时甚至30%或更多。图片更小意味着应用尺寸更小,运行时加载它们所使用的内存也更小。
Prepo - 一个Mac上的小应用,可以将图片快速变换为你需要的多个尺寸。只需要拖动一个大图标文件(比如,1024*1024)到Prepo,它就会生成512*512的iTunesArtwork,114*114的 Icon@2x.png,以及其他的尺寸和文件名。
Slender ($) -一个很棒的应用,可以分析你的应用,找出各种问题,比如缺少视网膜屏的图片,没用到的图片,能压缩的图片。使用Slender去除掉那些没用的图片,可以为你的iPhone应用节省好多空间。
Core Data
Mogenerator - 一个超有用的工具,在你的Core Data模型中生成NSManagedObjects智能子类。有些人使用Xcode完成这功能,通过手动子类化或者创建分类来为模型增加逻辑。Mogenerator作为预编译脚本运行来生成你可以使用的子类。它通过创建带有下划线的版本(_User)以及正常你可以修改的版本(User)来实现。
Base ($) – 你肯定会需要查看你的Core Data sqlite数据库来检查发生了什么。你可以使用sqlite3命令行工具,但Base给了你一个方便查看的GUI浏览器。当你看到Core Data为你创建的数据库schema时你可不要吐哦。
Core Data Editor ($) -对于一些更高级的数据分析、发掘以及修改,你可以使用Core Data Editor。这个应用了解Core Data,因此你是在直接和实体打交道,而不是数据库行。
后台服务
最终你的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会给你数据供你们讨论。
部署
Deploymate ($) – 还需要支持iOS4,但是你在用iOS6 SDK编译?当你使用了一些在你的部署目标上不存在的符号时,Deploymate会警告你的。
Cupertino - Nomad CLI工具之一,Cupertino为你提供了命令行接口来管理苹果Provisioning Portal上的设备及profile。举例来说,只要键入ios devices:list就可以看到你帐号里的当前设备列表。可以用来自动化许多过程。
Hockey App ($) – 管理你ad-hoc版本发布的不错服务。测试人员可以得到一个链接,无线安装新的测试版本。它还提供了健壮的崩溃报告功能,你可以轻松应对你应用中的崩溃。
TestFlight - 一个类似于Hockey App的免费应用。我们使用TestFlight已经取得了很大成功,轻松发布应用,从用户那收集反馈。我唯一希望他们能对这个服务进行收费。它还包括了分析和崩溃报告功能,但我们没有用到那些功能。
iOS Simulator Cropper - 一个拍模拟器屏幕快照的简单方法,可以选择带或者不带状态栏,带或者不带机器外壳等等。对于App Store或者普通市场上的一些截屏很有用。
Status Magic ($) – 拍出更好的app store截屏图。没有什么比App Store上带有低电量或者低信号标识的截屏图更让你的应用看起来糟糕的了。Status Magic让你充分定制你的状态栏,包括去除一些元素,把时间改成苹果喜欢的“9:41 AM”那样,等等。
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
演示/市场
Reflector ($) – 将你的iOS设备通过Air Play镜像到你的Mac上。很适合在你的电脑上做应用演示。
Placeit - 一些关于人们使用设备的高分辨率的图的集合,但是设备可以由你上传的截屏图来定制。很酷,很适合在你网站上优雅地展示你的应用。
应用销售报告
你当然想要知道你的应用能赚多少钱,不是么?有一些解决方案,这儿有些还不错的:
App Viz 2 ($) – 一个很有用的Mac应用,可以跟踪你应用的销量。你在本地运行它,它会登录并下载你的销售报告。
App Annie - 一个在线的销售报告工具。我不太乐意把我的认证信息交给除了iTunes以外的第三方,但它确实能确保你的报告是最新的,你无需在本地运行一个程序。在评论中,Josh Brown建议可以创建另一个用户用于iTunes Connect中的分析,这个主意不错。
摸彩袋
这些工具没有一个定义好的分类,但值得一提。
Quick Radar - 提交bug报告给苹果,是我们唯一可以帮助他们改善工具的办法。如果你由于缺少某个功能感到万分沮丧,你可以提交一个bug报告。如果你遇到了一个bug,你同样可以。如果他们没有雷达的话,用户还没有抱怨的权利:)因此,通过bugreporter来提交bug报告的话好像又回到了1995年。Quick Radar是一个很赞的应用,它可以使提交bug报告变得超级简单。自动发布到开放的雷达,这样其他人就能看到,也可以发twitter,发布到App.net。我每周都要用好几次这个应用。