sqlite学学iOS开发前相应了然的——第二片段

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

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

假如你还没读这篇作品的首先部分,请先读完了再来看第二有些。

sqlite 1

在首先有些中,我谈谈了上学iOS开发的局部着力问题。第二局部将更多地研究一些事实上问题,这么些题材都是你在付出iOS应用时会境遇的。

Debugging

不必置疑,你在支付应用的过程中必将会遭受许多荒谬和非凡。比如,你会遇见NSInvalidArgumentException,碰着NSInternalInconsistencyException,还会遇上“0xfaded322”这种错误代码。有时候你可以在Stack
Overflow或Quora上找到答案,但大多数时候你得自力更生。

Xcode具有断点、视图调试和日志的法力,是debug的不二之选。但毕竟孤掌难鸣,你仍需为它找些得力的助理员。

1.Pony Debugger

sqlite 2

square/PonyDebugger:PonyDebugger

  • 行使Chrome Developer Tools,为您的native
    iOS应用举办长途网络和数量调试。

square开发了这么些强大的开源工具。它是一个长途调试工具,类似于客户端库和网关服务器的结合体。它在web浏览器上使用Chrome
Developer
Tools,对应用的网络流量和数目存储进行调试。作为一个精锐的网络调试器,PonyDebugger同意用户实时查看应用的网络请求。它还有另一个酷酷的效应,就是可以长距离调试iOS应用的核心数据栈。

2.Cocoa Lumberjack

sqlite 3

CocoaLumberjack:CocoaLumberjack

  • 高速、简单,强大、灵活。它就是CocoaLumberjack,
    一款好用的Mac和iOS日志框架。

CocoaLumberjack,它很快、简单,强大、灵活,是一款好用的Mac和iOS日志框架。倘若您想找一款强大的日志工具,希望它兼具自定义格式化这样的炫酷功用,这CocoaLumberjack就是您的菜。

3.Reveal App

sqlite 4

Reveal:Reveal –
iOS应用的runtime视图调试。
即便视图调试已经被引入iOS,但Reveal无疑在调节的细节方面进一步强劲。它是收费应用,但相对物有所值。它有部分相当好用的法力,如Auto
Layout Inspection。

4.OHHTTPStubs

sqlite 5

AliSoftware/OHHTTPStubs:OHHTTPStubs

  • 轻松stub你的网络请求。以编造网络数据测试你的施用,可自定义响应时间……

OHHTTPStubs库可以轻松stub你的网络请求。它可以帮忙您:

  • 使用冒用的网络数据(stubbed from
    file)测试你的使用,并仿照慢速网络以检讨选择在网络不良状态下的变现。
  • 从设备中拿到伪造的网络数据,用于写单元测试

sqlite 6

数码存储

兴许大部分应用都亟待将各个任务的数据存储在本地。数据存储是一个复杂的话题。它有为数不少挑选,每个采用都对应一种状态。但自我很欢喜Stack
Overflow上的一种法则,用它来摘取数据存储模式就很不错。

  • 若数据完全配合内存且相对非结构化,则接纳plist
  • 若数据完全配合内存且具有树状结构,则运用XML
  • 若数据与内存不匹配且具有图形结构,同时使用不需要额外的询问能力,则接纳Core
    Data
  • 设若数额与内存不匹配且具有复杂结构,或采用需要关周全据库提供的强查询能力,则运用sqlite
  • 假如数据必须保密(例如密码),则利用keychain

下面列了一些数目存储方面的库,或许对我们有补助。

FMDB

sqlite 7

ccgus/fmdb:fmdb

  • 围绕SQLite建立的Cocoa / Objective-C的wrapper
    假如您在项目中应用SQLite,此wrapper库会使你的工作变简单。

SSFKeychain

soffes/sskeychain:sskeychain

  • 简简单单的Objective-C wrapper,Mac和iOS上的keychain可以运用

要在采取中蕴藏敏感数据,你不可能不时刻使用keychain。那个库可以简化使用keychain数据存储的进程。

Magical Record

sqlite 8

MagicalRecord – 轻松管理Core
Data

Core data相当难于管理。而以此库可以让您舒爽地保管Core Data。

网络

要想让动用更幽默,你免不了要接入一些API。即便iOS在对网络的协助地方表现优秀,譬如它具备NSURLSession、NSURLConnection和NSJSONSerialization,但本身或者引进你利用上边的库。

AFNetworking

sqlite 9

AFNetworking:AFNetworking

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

自己觉着这是历来最好的iOS库之一,它的效益何止炫酷二字。但这几个效率中最根本的可能是开发者社区,他们每一天都在动用这多少个库,并为AFNetworking做出进献。一些Nokia、三星GALAXY Tab和Mac上最火的使用都是由AFNetworking提供的支撑。

Restkit

sqlite 10

RestKit/RestKit:Rest基特是在iOS和OS
X上应用和构建RESTful web资源的框架。

Restkit具有精心设计的API,访问和构建RESTful资源的进程兴高采烈。假诺你用core
data进行数据存储、用rest
service进行数量读取,这您的极品选拔就是它——与Core
Data
完美集成的Restkit。

Alamofire

sqlite 11

Alamofire/Alamofire:Alamofire

  • 斯维夫特(Swift)(Swift)下精致的HTTP Networking。
    咦嗬切克闹,Swift(Swift)粉们不用闹,煎饼果子来一套。下边就是为你们准备的事物了。Alamofire是一个娇小玲珑的网络库,它具备局部斯维夫特(Swift)专享的兵不血刃功用。

您也可以在这里找到很多别样的库。

vsouza/awesome-ios

sqlite 12

awesome-ios——精选的上品iOS生态系统,包括Objective-C和斯威夫特(Swift)项目。

看重管理

本人在面前的稿子中关系过借助管理,但关键的题材要说一遍!在此处自己还要给它细细讲一发。在档次中,你根本有二种管理依赖的法门。

CocoaPods

CocoaPods.org:iOS和Mac项目标借助管理器。

CocoaPods是Swift和Objective-C
Cocoa项目标依赖管理器。它抱有将近一万个库,能够补助您轻轻松松扩大项目规模。要想管理Ruby
Gems这种倚重,实践中最有效的办法就是它了。

Google开发者做了一个YouTube录像,解释了为啥要在你的项目中行使CocoaPods。小心笑尿。

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

Github Submodules

你仍可以够使用git submodules,在项目中以sub
repos情势管理倚重。子模块相对于Cocoapods的优势在于子模块也是sub-repos——这不仅仅是指git和git
GUIs逐步认可并进一步扶助它们,也代表你的倚重性能够将git
repos和大面积的社会风气连接起来,而CocoaPods却不可以。

但git
submodules也有友好的问题:项目中从未那多少个你所依靠的代码的根源。它只是指向了子模块库。而大多数时光你一向不会去管那些库。

Carthage

sqlite 13

Carthage/Carthage:Carthage

  • 简单的说、去中央化的Cocoa依赖管理器。

Carthage目的在于为Cocoa应用提供最简易的框架添加形式。Carthage使用xcodebuild建立framework
binaries,把整合工作留给了用户。CocoaPods的不二法门更简明易用,而Carthage的不二法门更灵敏温和。

不幸的是,Carthage也有一个伟人缺陷——仅帮忙iOS 8及以上版本

sqlite 14

测试

大多数人一提到应用测试就会呵欠连天。但倘诺没有测试的话,说不巧几时你的应用就突然崩溃了。发布应用时,你一定得先举行深度测试,保证用户拿到最佳体验。

此处有好多测试框架,它们能够简化测试工作。

XCTest

XCTest是一个单元测试框架,包含在Xcode中。它襄助把单元测试作为项目编译过程的一部分。XCTest与XCode中度结合,因而提供了随地整合辅助和覆盖率测试这样的意义。

KIF

sqlite 15

kif-framework/KIF:KIF

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

KIF是Keep It
Functional的缩写。它由Square开源,是一款iOS一体化测试框架。它利用其可访问性——即系统让访问无法突显的选用成为可能,轻松实现了iOS应用的自动化。

Kiwi

sqlite 16

kiwi-bdd/Kiwi:Kiwi

  • BDD for iOS

Kiwi是iOS开发的Behavior Driven
Development库。其目的是提供一个装置和采用都十分简单的BDD库。

Quick

sqlite 17

Quick/Quick:Quick

  • 斯维夫特(Swift) (以及Objective-C)的测试框架。

Quick是斯威夫特(Swift)(Swift)和Objective-C的一款作为使得的支付框架。它由RSpecSpectaGinkgo支出。与Quick并肩战斗的是Nimble——一款为测试服务的匹配框架。

自家尝试在本文中讲尽量多的技术问题。跳入iOS开发的大坑之后,你就能用得到上自我说的这一个事物了。关于iOS开发需要说的实在太多,所以在此刻我从没谈到营销之类的话题。假诺你想看的话,这就等自己的下一篇著作吧!

网站地图xml地图