最近帮一些朋友开始学习iOS开发,他们让我列一个iOS开发入门需要知道的清单。这似乎是博客文章的好主题。不费吹灰之力,我就列出了成为入门级iOS开发人员需要了解的内容(排名不分先后)。计算机科学基础我不认为获得计算机科学博士学位对于开始移动应用程序开发是必要的,它应该被归入“绝对有帮助”的类别,但是了解最基本的数据结构和算法可以让一个新手开发者或者防止被自己的代码绕过。所以,对于初学者来说,我会推荐在YouTube上观看HarvardCS50课程开始学习,你可以很容易地跟上课程,而且课程看起来很有趣。Swift还是Objective-C?再次强调,我并不是说你必须了解两种语言才能写一些博客或教课,但你至少应该能够用其中至少一种语言编写代码,而不必经常查找语法。API是一种痛苦,尤其是在iOS中,框架每年都会更新,而且方法经常被弃用。我经常将Apple文档放在Safari选项卡中,这样我就可以在工作中查找它。API太多了,很难全部记住。你只需要能够编写类、结构、循环、函数(类方法和实例方法),并在没有任何外部帮助的情况下定义变量和表达式。这些天我们处在一个奇怪的时期,雇佣只懂Objective-C的人是可以接受的。Swift还很年轻,除非你被一家有大量项目更新的公司雇用,否则你大部分时间仍将使用Objective-C进行开发。尽管如此,还是有很多公司愿意在Swift上冒险(包括我正在工作的那家公司),而且我认为如果你只会Swift,找工作不会那么难。关键是您精通您选择的语言,并且至少了解足够多的另一种语言以能够阅读代码。框架和API正如我之前所说,我认为没有必要记住iOS的所有API,但你应该有一个很好的切入点。UIKit(UITableView、UIButton、UINavigationController和GestureRecognizers)界面生成器(Storyboard、Segues和奇怪的.xib)原始数据类型(NSArray、NSDictionary和NSString),以及Swift对应类型(数组、字典和字符串)、HTTPAPI(NSURLSession,RESTAPI基本概念,用NSJSONSerialization解析和处理JSON)GrandCentralDispatch(GCD,NSOperationQueue)持久化(NSCoding,NSUserDefaults,和CoreData)内存管理(什么是循环引用和ARC基础)开发模式很重要,它使开发更容易,代码更清晰。确保你了解最基本的模式,它们在iOS框架中被广泛使用,不了解这些你将无法在开发中使用你的拳头(还有很多其他模式,但这些可以作为你的起点学习)。Delegates(这是很多iOSAPI的用武之地,你必须清楚地理解它)ModelViewController(我认为Apple在鼓励最佳MVC分离方面做得不够好,但如果你花时间去做对吧,这将是一个重要的模式,可以帮助你提高代码质量。而且,它会出现在基本上任何面试问题的列表中。)子类化(几乎所有的用户界面都是一个类的子类)Singleton(模式肯定被过度使用了……谨慎使用)熟悉你的开发环境这似乎是显而易见的,但如果你没有Mac,那就去买一个吧!如果您没有iOS设备,那就去买一个吧!如果您正在为未使用过或不熟悉的设备进行开发,这可能会变得非常困难。同样,在没有Mac的情况下进行开发可能会很困难。我的第一台Mac是配备第一代iPodTouch的2009款13"MacBookPro。从低端设备入手是非常合适的。我在这两款设备上花了将近1500,但从长远来看是值得的。UX/UI一般而言,UX和UI是设计师的责任,但你应该了解AppleHumanInterfaceGuidelines。您需要了解原型和线框之间的区别,并在开发过程中同时使用它们。工具熟练掌握一些常用的开发工具。Xcode(必需)GitSourceControl(一些公司可能使用Subversion或Mercurial,但git足以让你入门。)JIRA或Bugzilla(对于JIRA,你不需要成为专家也可以使用它,但你至少要足够熟练,不会像第一次接触时那样被吓倒。)CocoaPods(这是一个管理依赖和第三方代码的工具,我从来没听说过哪个公司不用这个。)OpiniononiOS,HoldingyouropiniononSwift,orevenaspecificAPIisagoodwaytoshowtheinterviewertoshowtheinterviewerofyourunderstandingofyourunderstandingaknowledge(holdingyourownopiniononiOS,Swift,evenaspecificAPI)是向面试官展示你对某项知识的理解深度的好方法(holdyourownopiniononiOS,Swift,evenaspecificAPI可以让面试官很好地了解你在某个开发主题上的深入程度。)。它还让我们看到了您对学习的热情。如果你在采访中被问到:“从你的角度来看,你如何看待Swift?”答:“不错”,这不是正确答案,你应该告诉他们你对可选的态度,你如何使用新的语言特性。这里答错的不多,最重要的是有话要说。学习档案行动胜于雄辩。如果你真的很想面试,把你的一些简单的应用程序放在一起(如果你能在AppStore中启动它们就更好了)。独立完成一个项目可以让你的话更有分量。这是我强烈推荐的方式。GitHub也是一个很棒的平台,但如果你展示你的GitHub,请尽量让你的代码易于编译,以便面试官对其进行测试。我写了一篇关于如何构建应用程序组合的文章,你可以在这里查看。总结如果您需要更多信息来帮助您迈出第一步,请查看我的iOS开发人员资源博客文章,其中链接到一些我在学习iOS开发时发现有用的博客和文章。***加分就是JUSTDOIT!如今,iOS开发人员的需求量很大,如果您的技能可以达到不错的水平,您就不会长期失业。这份工作可以磨练您的工程技能和创造力。我错过了什么?在Twitter(@WestonHanners)上让我知道。我想用我的资源帮助更多的新手开发者开始他们的职业生涯。
