iOS开发学习指南

我想请分析下,iOS开发学习指南
最新回答
笑里藏泪

2024-04-26 13:28:03

作者从15年开始接触iOS开发,目前已经是一个拥有5年经验的iOS开发老兵了。写这篇文章的目的是希望能帮助到广大的iOS开发同行在iOS开发的不同阶段提升开发水平,少走弯路提升你的英语水平虽然知乎er的平均水平比较高,但是现实情况是很大一部分程序员的英文水平是不太过关的。那大概需要提升到什么水平呢?我觉得达到比较流畅的阅读技术文档及书籍,配合英文字幕可以比较轻松的观看wwdc的session的水平就可以了。

如果英语水平不过关,甚至没法成为一个合格的程序员。

说来惭愧,我刚实习的时候,碰到陌生的API都是复制到百度查怎么用,实际上API注释+官方文档很详细准确的说明了API如何使用。我不想看官方文档及注释就是怕看那一堆堆的英文,导致API使用过程中一知半解,浪费了不少时间。

经常在开发吹水的群里见别人发一个截图提问如何解决,实际上截图里的英文提示就已经很明确的说明了原因及解决方案。如果英语水平达标,就不会出现这种比较尴尬的提问了。

至于如何提升,下一个背单词的app吧。扇贝单词、百词斩这些都可以。不停的背4级单词就行,已经能涵盖绝大多数常用词了。

开发过程中碰到不明白意思的API,查清楚每个单词的意思,做到见名知意,而且开发中常用的单词也就那么一些,不要和我最开始的时候一样复制百度,然后只知道这一串英文大概是这样用的。实际上下次碰到了还是需要再查一遍.....

最后,尝试阅读纯英文的技术书籍,不用怕,书籍中的大部分单词都是开发中接触过的。配合查词app肯定能啃下来。当第一本纯英文书籍看完后,后面的都不是问题了。

当然,这个过程不是一蹴而就的。我毕业后基本每天都坚持在背单词的app上打卡,不要三天打鱼两天晒网,男人最重要的就是持久。

2.使用google而不是百度

查问题和文档一定一定优先使用谷歌而不是百度。大部分开发中碰到的问题你都能在stackoverflow上找到解决方案,并且还有不少优秀的回答附带了bestpractice。解决了问题以后试着去回答问题,这样印象会比较深刻。

3.swift入门

不要纠结先学oc还是先学swift。目前对于iOS开发来说,swift和oc都是必备技能。当然入门肯定要二者选一,重要的是你开始学,而不是纠结在我该学哪门语言,然后一直不肯迈出第一步。

目前个人建议从swift开始入门,除非你的公司明确使用oc。

首先学习语法,推荐阅读swift-apprentice。书卖的比较贵,csdn上应该有网友分享的,记得找swift5及以上版本的。

记住raywenderlich这个网站,有空的时候根据自身需求把里面的书籍都阅读一遍,基本都是精品语法学完了读UIKit-Apprentice

读完上面两本你对iOS开发大体有一个概念了。如果你是为了找一份iOS开发相关的工作,现在回过头去学oc。如果公司不要求OC,做一个了解就行

4.oc入门

学oc我比较推荐看培训机构的视频,印象中几年前iOS开发培训机构一大堆,部分教学视频还是非常适合初学者入门的。这些视频最大的优势是比较系统,从c语言-oc语法-uikit等,能比较轻松的带你一步步接触到一个完整的应用是如何开发的,对初学者来说最怕的就是不知道学习方向。而这些教学视频是根据为学员找工作培训设计的,作为入门教程很不错。

5.1-3年开发经验

首先推荐两本书,必读!必读!而且推荐反复多次阅读。

另外需要不断完善你知识库,非iOS相关书籍的推荐:http权威指南、正则表达式必知必会、mysql必知必会这几本书。这几本书阅读起来比较轻松,而且实用比较强。

除了读书之外,还推荐把UIKit中自己常用类的API仔仔细细的看一遍。详细阅读官方注释!肯定有你没注意到的细节。

很多开发者在这个阶段有一个误区,吸收了大量知识后,就非常想把它们应用在程序中。实际开发要避免这个问题,要追求最简单最稳定的实现方式,能不hack的就不hack,遵循bestpractice。不要了解一点runtime就想方设法在应用中methodswizzling。开发是为了实现业务,稳定性放在第一位。实际99%的业务都用不上runtime的各种黑魔法。各种设计模式和架构同理,这些都会随着你开发经验的增长在你脑海中有一个清晰的概念,等到积累够了,自然就能运用自如,而不是在一知半解的情况下各种乱用。

还有就是业务代码需要逻辑清晰,实际写代码时可以参照下面的例子,标注出序号,配合注释说明每一块的目的。这样不论是自己以后回看还是对于同事,基本一眼就能清楚业务逻辑和代码意图

//1letallPhotosOptions=PHFetchOptions()allPhotosOptions.sortDescriptors=[NSSortDescriptor(key:"creationDate",ascending:false)]//2allPhotos=PHAsset.fetchAssets(with:allPhotosOptions)//3smartAlbums=PHAssetCollection.fetchAssetCollections(with:.smartAlbum,subtype:.albumRegular,options:nil)//4userCollections=PHAssetCollection.fetchAssetCollections(with:.album,subtype:.albumRegular,options:nil)这段代码摘自raywenderlich,该网站gettingstart系列非常合iOS开发者了解新框架,保姆式的入门教学6.3年以上开发经验

这个阶段一般都是公司主力,已经形成了自己的代码风格并且对自己的学习路径有了规划。根据公司的app制定学习计划,比如图像处理App和智能硬件App所需要学习的内容就不太一样,提高自己的深度。

推荐看wwdc的session,最新的技术及最佳实践都在视频里面了。developerApp上可以直接下载观看,链接在下面。记得用Safari打开

广度方面,掌握一门脚本语言,python,shell都可以。把重复的事情都写成自动化脚本,能极大的节约时间。有精力还可以学一门后端语言,自己搭个服务器,写写接口。前后端都了解了之后就能很清晰的知道如何设计一个好的接口,相信对整个程序生涯都会有帮助的

7.总结

归纳下来,就是希望大家多去系统性的去读书学习。你可能更愿意每天逛逛论坛看看技术贴,但这实际上对开发水平提升有限。静下心来认真的看完我推荐的这些书,然后根据自身需要再选择其他书籍阅读。

我当初读的第一本raywenderlich的书是ios-animations-by-tutorials。阅读过程非常轻松愉悦,涉及到动画,相信大部分人还是很喜欢的。你也可以尝试从这本书开始读起,系统的了解iOS的动画系统。读完这本以后,你会迫不及待的找其他书去看的,相信我!

开始想写这篇文章的时候总感觉会有很多东西要写。最后发现很多内容涉及的比较具体,这篇主要作为一篇方向性的文章。希望能对你的iOS开发学习路程有所帮助。

8.资料链接最后放一些用于资料搜索的网站,不定期更新首先是官方的文档搜索(旧版),已经于2018年6月停止更新了。但是!!千万不要觉得这个网址没有用了,里面有非常多的优秀的资料及示例代码,如果你在别的地方找不到相应文档,可以尝试在此处搜索。里面有大量框架的ProgrammingGuide,非常推荐看。2.medium输入关键词搜索就行。有相当多高质量的文章