trans 那些在学习iOS开发前就应该知道的事(part 2)

在第一部分中,我讨论了学习iOS开发的一些基本问题。第二部分将更多地讨论一些实际问题,这些问题都是你在开发iOS应用时会遇到的。

Debugging

毋庸置疑,你在开发应用的过程中一定会遇到很多错误和异常。比如,你会遇到NSInvalidArgumentException,遇到NSInternalInconsistencyException,还会遇到“0xfaded322”这种错误代码。有时候你可以在Stack Overflow或Quora上找到答案,但大部分时候你得自力更生。

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

1.Pony Debugger



可能大多数应用都需要将各种任务的数据存储在本地。数据存储是一个复杂的话题。它有很多选择,每个选择都对应一种情况。但我很喜欢Stack Overflow上的一种法则,用它来选择数据存储方式就很不错。

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

† †

† †
http://www.cocoachina.com/ios/20150611/12111.html

† †

† †



我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用了page view controller和scroll view。在Stack Overflow和Google的帮助下,我用了2天把它完成了。当我把产品给一个同样搞iOS开发的朋友看时,他跟我说,如果我用了这个开源项目的话,一个小时就可以搞定一切。

过去这一年我经历了不少类似的事情,这些事情让我成长,让我能够成为一个更好的iOS开发工程师。我想跟大家分享一下我的经验,希望你们可以不再犯我这些错误,一路平坦走向成功。

重视基础

刚开始学iOS开发的时候,我直接去学习了斯坦福大学的这门课程,非常有用。然而,虽然我从课程中学到了很多,但它并没有教给我多少iOS开发语言的基础知识——当时的iOS开发语言主要是Objective-C。开始写自己的app以后,我发现自己在基础知识方面欠缺很多,这导致我老是弄出来一些bug。

如果你在面向对象编程的语言方面没啥经验的话,我建议你在投身进行iOS开发之前先读一本这方面的经典书籍。我最喜欢的两本是Big Nerd Ranch Guide for Objective-C和Swift的The Apple's Guide。



没错,Ray Wenderlich上的教程和Team Treehouse上的视频课程能教给你很多,但缺少基础知识的程序员就像无源之水、无本之木,总是长久不了的。


学习使用Xcode中的快捷键。虽然看上去使用快捷键没节省几秒钟,但“不积小流,无以成江海“,久而久之省下的时间就多了。以上这些都是我亲测有效的手段,它们在提高开发效率方面给了我很大帮助。

使用Cocoapods来进行依赖管理。你的团队会因此轻松很多。
在项目早期就学会使用持续整合(continuos integration),这样就可以避免未来可能出现的冗余工作。
使用Testflight来分发测试版本。在被苹果收购之后,Testflight变得更加简单易用了,每个人都可以通过它来使用iTunes账号进行测试版本的分发。
在app中整合Crashlytics,这样当app崩溃的时候你就可以获取Crash报告了。
如果你不想自己弄后端服务器的话,Parse为我们提供了很好的服务。

† †

† †

http://www.cocoachina.com/ios/20150608/12052.html

† †

† †

你可能感兴趣的:(trans 那些在学习iOS开发前就应该知道的事(part 2))