修iOS开发前应该了解的——第二有些

英文原稿:Things I wish I had known before starting iOS
development—Part
2

要保留此段版权声明:本文由@树上男爵郝鹏程[http://weibo.com/1062419133\]
原创立翻译,最初发表于CocoaChina,转载请务必注明出处。

要是您还从未读就首文章的首先组成部分,请预念毕了再度来拘禁第二有些。

  • 习iOS开发前应当理解的——第一局部:设计师设计下了一个不利的指引界面,然而当自家看出设计稿的上,我们的app也并未几上便假设达标线了……

以率先组成部分中,我谈谈了读iOS开发之组成部分基本问题。第二有的用另行多地谈论一些实际上问题,这些题材都是您于支付iOS应用时会遇见的。

Debugging

无须置疑,你以支付使之进程遭到一定会碰到重重错误和怪。比如,你晤面赶上NSInvalidArgumentException,遇到NSInternalInconsistencyException,还见面逢“0xfaded322”这种错误代码。有时候你得于Stack
Overflow或Quora上找到答案,但多数辰光你得自力更生。

Xcode具有断点、视图调试以及日志的意义,是debug的不次之选。但终归孤掌难鸣,你照欲呢它们寻找几能的羽翼。

1.Pony Debugger

square/PonyDebugger:PonyDebugger

  • 下Chrome Developer Tools,为而的native
    iOS应用进行远程网络和数目调试。

square开发了之强大的开源工具。它是一个远道调试工具,类似于客户端库和网关服务器的结合体。它在web浏览器上应用Chrome
Developer
Tools,对运的网络流量和数目存储进行调剂。作为一个有力的网调试器,PonyDebugger允许用户实时查看下之大网要。它还有其他一个酷酷的效能,就是可远距离调试iOS应用之主干数据栈。

2.Cocoa Lumberjack

CocoaLumberjack:CocoaLumberjack

  • 迅速、简单,强大、灵活。它便是CocoaLumberjack,
    一慢性好用之Mac和iOS日志框架。

CocoaLumberjack,它很快、简单,强大、灵活,是同缓好用之Mac和iOS日志框架。如果您想寻找一舒缓强大的日记工具,希望她兼具从定义格式化这样的炫酷功能,那CocoaLumberjack就是你的菜。

3.Reveal App

Reveal:Reveal –
iOS应用的runtime视图调试。
虽视图调试已经于引入iOS,但Reveal无疑在调节的细节方面尤其强有力。它是收费应用,但绝物有所值。它起局部深好用的效用,如Auto
Layout Inspection。

4.OHHTTPStubs

AliSoftware/OHHTTPStubs:OHHTTPStubs

  • 轻松stub你的网络要。以编造网络数据测试你的以,可由定义响应时间……

OHHTTPStubs库可以轻松stub你的纱要。它可拉而:

  • 使用制假的网数据(stubbed from
    file)测试你的采用,并学慢速网络坐检查采取在网络不良状况下的显现。
  • 由设备中得伪造之网络数据,用于形容单元测试

数码存储

或者大部分动还亟待将各种任务之数量存储在当地。数据存储是一个复杂的话题。它来众多选,每个选择都针对承诺一律种植状态。但我可怜喜欢Stack
Overflow上的平种植法则,用她来抉择数据存储方就是格外不错。

  • 若数据了配合内存且相对不结构化,则利用plist
  • 设数据全匹配内存且具有树状结构,则动用XML
  • 倘数据以及内存不般配配且具有图形结构,同时采用不需额外的查询能力,则应用Core
    Data
  • 如若数据与内存不配合配且具有复杂结构,或动得关系数据库提供的强查询能力,则以sqlite
  • 假设数额要保密(例如密码),则使用keychain。

下面列了有些数存储方的堆栈,或许对大家发扶持。

FMDB

ccgus/fmdb:fmdb

  • 围绕SQLite建立的Cocoa / Objective-C的wrapper
    万一你当类型受到以SQLite,此wrapper库会要你的行事转移简单。

SSFKeychain

soffes/sskeychain:sskeychain

  • 简短的Objective-C wrapper,Mac和iOS上之keychain可以采取

使于用被存储敏感数据,你必须时刻以keychain。这个库房可以简化使用keychain数据存储的历程。

Magical Record

MagicalRecord – 轻松管理Core
Data

Core data非常麻烦被管理。而者库房可以被您舒爽地管理Core Data。

网络

假使惦记让用还好玩,你莫不了一旦联网抱一些API。虽然iOS在针对网的支撑地方表现良好,譬如它具有NSURLSession、NSURLConnection和NSJSONSerialization,但自我要么引进您下下的堆栈。

AFNetworking

AFNetworking:AFNetworking

  • 使得人拍案叫绝的iOS和OS X网络框架。

自己当这是从来最好的iOS库之一,它的机能何止炫酷二字。但这些职能中不过要的或是开发者社区,他们每天都在运用这个库房,并也AFNetworking做出贡献。一些iPhone、iPad和Mac上最好火之利用还是由AFNetworking提供的支撑。

Restkit

RestKit/RestKit:RestKit是以iOS和OS
X上以和构建RESTful web资源的框架。

Restkit有精心设计的API,访问和构建RESTful资源的进程要打春风。如果你用core
data进行数量存储、用rest
service进行多少读取,那您的顶尖选项就是其——与Core
Data到集成的Restkit。

Alamofire

Alamofire/Alamofire:Alamofire

  • Swift下细的HTTP Networking。
    嗬嗬切克闹,Swift粉们不用产生,煎饼果子来平等仿。下面就是啊你们准备的事物了。Alamofire是一个精密的网络库,它富有部分Swift专享的精锐力量。

乃吧足以在此地找到多其它的库房。

vsouza/awesome-ios

awesome-ios——精选之甲iOS生态系统,包括Objective-C和Swift项目。

依傍管理

自在前的文章中提到了凭管理,但重要之题目如说个别不折不扣!在此地自己还要叫她细细道同样作。在路遭到,你根本出三种植管理依赖的方。

CocoaPods

CocoaPods.org:iOS和Mac项目的指管理器。

CocoaPods是Swift和Objective-C
Cocoa项目的依赖管理器。它拥有近乎一万个仓库,可以帮助而轻轻松松扩大项目规模。要惦记管理Ruby
Gems这种依赖,实践备受极其得力的点子就是是它了。

谷歌开发者做了一个YouTube视频,解释了为何要在您的花色遭到采用CocoaPods。小心笑尿。

点此观看视频sqlite:Route 85: An Introduction to
CocoaPods

Github Submodules

乃还得使git submodules,在路面临坐sub
repos形式管理依赖。子模块相对于Cocoapods的优势在于子模块也是sub-repos——这不光是乘git和git
GUIs逐渐认可并越支持它们,也表示你的负可以将git
repos和大规模的世界连接起来,而CocoaPods却休能够。

只是git
submodules也发出好的题目:项目被莫那些你所据之代码的自。它只有是依为了子模块库。而大多数光阴你向不见面错过管这库房。

Carthage

Carthage/Carthage:Carthage

  • 简言之、去中心化的Cocoa依赖管理器。

Carthage旨在也Cocoa应用提供极简便的框架添加方式。Carthage使用xcodebuild建立framework
binaries,把整并工作留给了用户。CocoaPods的方式还简便易行好用,而Carthage的法子重复活温和。

背之凡,Carthage也发出一个英雄缺陷——仅仅支持iOS 8及以上版本

测试

大部口同提到以测试就会呵欠连天。但万一没测试的说话,说不巧哪天而的利用就是突然倒了。发布以时,你早晚得事先进行深测试,保证用户得到最佳体验。

此地发出诸多测试框架,它们得以简化测试工作。

XCTest

XCTest是一个单元测试框架,包含在Xcode中。它支持将单元测试作为项目编译过程的同样有的。XCTest与XCode高度结合,因此提供了不断做支持与覆盖率测试这样的作用。

KIF

kif-framework/KIF:KIF

  • Keep It Functional – iOS功能测试框架

KIF是Keep It
Functional的缩写。它由Square开源,是千篇一律暂缓iOS一体化测试框架。它以该可访问性——即系统给访问不能显示的应用成可能,轻松实现了iOS应用之自动化。

Kiwi

kiwi-bdd/Kiwi:Kiwi

  • BDD for iOS

Kiwi是iOS开发之Behavior Driven
Development库。其目标是供一个设置与下还非常简单的BDD库。

Quick

Quick/Quick:Quick

  • Swift (以及Objective-C)的测试框架。

Quick是Swift和Objective-C的同缓行为令的开框架。它由RSpec、Specta和Ginkgo出。与Quick并肩战斗的是Nimble——一迟迟也测试服务之配合框架。

自尝试在本文中说道尽量多之技巧问题。跳入iOS开发之不行坑后,你尽管能够因此取得上自我说之这些事物了。关于iOS开发要说之实在太多,所以当此时我尚未云到营销之类的话题。如果您想看的讲话,那便等于自家之生一致首文章吧!

网站地图xml地图