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

转:http://www.cocoachina.com/ios/20150608/12052.htmlphp

英文原文:Things I wish I had known before starting iOS development—Part 1html

设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,咱们的app也没几天就要上线了。这个界面模仿了Evernote iOS app的风格。ios

1.gif

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

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

重视基础github

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

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

2.jpeg

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

良师益友Githubswift

我对这个iOS开源社区绝对是真爱。Github上面有无数的优质项目,如AFNetworking, Restkit、JSQMessages,甚是碉堡。你必须学会在这个社区里乘前人栽树之凉。

遇到问题时,先别一根筋急着苦思冥想或建立本身的库,不如先去GitHub或Google找一下有没有类似问题的解决方法。颇有可能某个开发者已经写好了一个符合你需求的开源项目。

经过Facebook GroupsSlack chat来开始社区之旅吧!他们很乐意回答你的一切问题。你能够浏览那些好的开源项目,看看大牛们是如何组织代码的,本身也学着点。

这里是GitHub上一些最优质的iOS资源。

vsouza/awesome-iosawesome-ios——精选的优质iOS生态系统,包括Objective-C和Swift项目。

blob.png

matteocrippa/awesome-swiftawesome-swift——收集了不少优质的swift资源。你也能够来贡献本身的力量!

blob.png

cjwirth/awesome-ios-uiawesome-ios-ui——优质iOS UI/UX库精选。

blob.png

若是你想找一些iOS的最佳实践以供本身模仿学习,那请看下面这些。

futurice/ios-good-practicesios-good-practices——为iOS开发者提供灵感,做者是Futurice的开发者们。

blob.png

了解你的工具

多数iOS开发者将Xcode做为开发的首选工具。Xcode有不少强大的特性,如Storyboards、Auto Layout,若是学会用这些的话,相信你的开发效率确定能上一个台阶。出于某些限制,不少开发者会尽力避免使用Storyboards,但我我的认 为,Storyboards是快速布局的有力工具。

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

  1. 使用Cocoapods来进行依赖管理。你的团队会所以轻松不少。

  2. 在项目早期就学会使用持续整合(continuos integration),这样就能够避免将来可能出现的冗余工做。

  3. 使用Testflight来分发测试版本。在被苹果收购以后,Testflight变得更加简单易用了,每一个人均可以经过它来使用iTunes帐号进行测试版本的分发。

  4. 在app中整合Crashlytics,这样当app崩溃的时候你就能够获取Crash报告了。

  5. 若是你不想本身弄后端服务器的话,Parse为咱们提供了很好的服务。

读一些优质博客和资讯

前文已经介绍了一些很棒的iOS开源社区。不少优质的博客是由经验丰富的iOS开发者撰写的,每周都会有一些精彩的内容呈现。我最喜欢的一些包括:

Cocoa with Love在本博客中,我将专一于使用和管理用户界面中字符串的最佳实践。这是一个至关...

多是最好的iOS博客。做者是Matt Galaghar。Matt作事情的方式是大师级的。

iOS Dev Weekly订阅本博客,轻松得到每周最棒的iOS开发网页精选。由Dave Verwer精选并发布...

blob.png

严格来讲这不算个博客,但它每周都有超级超级棒的内容更新。做者是Dave Verwer。

NSHipsterPlaygrounds并非Swift语言自己的特性,它们实际上是很棒的展现……

blob.png

NSHipster对Objective-C和Cocoa进行拾遗的杂志。它由Mattt Thompson每周更新。

Ray wenderlich高质量的编程教程:iOS、Android、Mac,还有更多!

blob.png

 

Ray Wenderlich的博客(对初学者超有用)

Custom Controls for iOS and OS X - Cocoa Controls暂无描述

blob.png

Peter Steinberger苹果在Xcode 6中增长了对NS_DESIGNATED_INITIALIZER 标志的支持,同时也将其添加到了各类各样的框架中……

blob.png

Matt Gemmell基于个人写做项目进行简要更新。它或许会引发一些人的兴趣……

blob.png

Natasha The Robot仅仅是又一个WordPress站点

在这些博客中挑选干货,认真阅读,相信你会变成一个更好的iOS开发者。

设计也能变轻松

不少开发者对于iOS的设计方面谈虎色变。咱们老是对设计敬而远之,一古脑儿都扔给设计师去作。但其实,只要稍稍努力,你也能够学会设计本身的app。

如今,设计师和开发者之间的界限日益模糊,由于好多成功的iOS独立开发者包揽了全部app设计、开发和营销工做。我将在下一部分谈到营销方面的 事。若是你想设计本身的iOS app的话,不妨学一下Sketch这个工具。Sketch专为应用设计和网页设计而生,简单易上手。

Bohemian Coding - Sketch 3Sketch是简单易用的轻量级软件,它强大、灵活而快速。最后……

blob.png

你能够在网上找到大量的Sketch资源和插件,它们能让你有趣而简单地工做。一旦完成了设计工做,你能够马上用这个神器将它们整合在一块儿。

Free mobile & web prototyping for designers - Marvel将草图和设计转化为可交互的Web、iPhone、iPad、Android和Apple Watch原型和模板……

blob.png

相关文章
相关标签/搜索