零基础学习 iOS 开发
链接:https://www.zhihu.com/question/22000647/answer/114700565
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作为一名混迹iOS开发圈近4年的码农,资历不深不浅,看到这个问题还是忍不住想回答一下。
如果你打算学习iOS开发,那么在开始学之前,你要做好以下4个方面的准备。
——————————————————————
1 、信念。
很大程度上,学iOS就是一个信念的事情。iOS开发本身不难学,不需要你有很高的智力,只需要你能够坚持下去。只要你心中有信念,坚持下去就会有收获。不管你是学哪一种编程语言,不用怀疑你能不能学会,只要你肯下工夫,坚持下去就一定会成,学不会只有一个原因,你没有付出足够的努力。
2、英语。
几乎所有重要语言,重要开发工具,开源项目都是在英文网站上以英文的形式展示。如果你连官方的文档读起来都非常困难,那还谈什么提高和进阶,咱们学习iOS的所有权威的资料都来自apple开发者网站,靠逛论坛看帖子不是出路。如果这点没达到,那就从阅读官方文档开始吧,找一篇你比较熟悉的技术的官方文档,比如:View Programming Guide for iOS自己阅读,翻译。里面不懂的单词,记下来,多学几遍,这些你不懂的单词,在以后你看其他时文档里还会出现无数次的。坚持几个月后,你会发现,英文的文档,看起来比中文的顺眼了。老码农教你学英语(1)
3、对计算机有一定的了解。
知道一些软件开发的基础知识,接触过C语言、.NET、PHP等对学iOS开发也会有一定的帮助,因为很多语言是相通的。题主学过C语言,并且也通过了计算机二级,从这点上看,学习iOS开发是有天然优势的。因为想学习iOS开发,Objc是必须要学的。学过C语言再学Objc会简单很多。
4、一台mac。
学iOS开发需要有一个苹果系统的电脑,最好有苹果原配电脑,有钱就买个mac pro,八九千不算很贵,钱少就买个四五千的mac mini,如果实在没钱又想着自学的话,那么就只能收紧裤腰带,厚颜买个山寨黑苹果主机了。(组装机一般2000 -2500可以搞定,配置大概4G 500G 硬盘内存 I3 2012 H61主板系列 显卡GF430 以上的都可以了。 如果你的主机本身都是这样的配置 那么恭喜你买个20元的mac lion 系统马上就搞定了。上面的配置装狮子系统没有问题。开发足够用了。)
——————————————————————
以上讲的四点都是学习iOS开发的基础前提。缺一不可,如果这四点你都符合,就可以继续往下看,下面就进入iOS开发的学习阶段了。
一、首先你需要学习Objc语言。
学习Objc的话,看视频教程再结合看参考书足够了。
1、参考书推荐两本。
一本是 Scott Knaster出的《Objective-C基础教程》。
<img src="https://pic4.zhimg.com/e7e0fe99e5c96ef4c3b9ffb504bbbe47_b.png" data-rawwidth="238" data-rawheight="311" class="content_image" width="238">
大家不用去买,这里给你们献上这本书的电子版的下载链接:
http://pan.baidu.com/s/1sjlyONV
另一本是Big Nerd Ranch出的《Objective-C编程(第2版)》。(推荐华中师大出的版本)
<img src="https://pic2.zhimg.com/afc697a3b877270d17059fbeeb36a959_b.png" data-rawwidth="333" data-rawheight="413" class="content_image" width="333">
——————————————————————
2、视频教程的话,只推荐我赢职场出的iOS移动开发课程。
教程链接如下:
iOS9实战开发教程
<img src="https://pic2.zhimg.com/cc45eba1c821d5a1f35937a8ac150205_b.png" data-rawwidth="398" data-rawheight="202" class="content_image" width="398">
讲的细致是这门课程最大的特点。因此,这款教程尤其适合那些零基础学习iOS的学员。我赢职场知名度不够,但是做的课程不错,可惜没人听说过这个品牌。这款教程是从Objc一直讲到iOS高编。所以跟着这款教程走,iOS开发基本也可以学的差不多。
——————————————————————
二、其次,你要学习API,了解iOS UI控件
Objc阶段的学习只是带你入门,如果你想进阶,API和UI控件是必须需要学的。一门语言可能会有成千上百的API和UI控件。你不需要把他们全都记住,只需要记住一些常用的即可。
例如:Objc中的UITableView的dataSouce和delegate;NSDictionary、NSArray相关的增删查改方法;JSON数组转换方法;文件操作方法等。
UI控件的话,常用的有UIView、UITableView、UIScrollView、UIButton、UILable等。你要熟悉这些控件的属性和相关的操作方法。
记忆这些东西,只靠死记硬背是不行的。多去写代码,多去实践,这样才能逐渐掌握。
学完这个阶段,基本上就可以做出来一个简单的APP了。由于没有进一步学习高深的东西,咱们暂且不说流畅性和内存。
UI控件部分的知识点如图:
<img src="https://pic3.zhimg.com/81d8191d5845179b85ba48617664738e_b.png" data-rawwidth="607" data-rawheight="531" class="origin_image zh-lightbox-thumb" width="607" data-original="https://pic3.zhimg.com/81d8191d5845179b85ba48617664738e_r.png">
——————————————————————
三、最后,你还需要了解iOS开发的底层原理。
能学到这一部分已经很不错了。所谓专业的iOS开发工程师和一个业余的iOS开发爱好者基本也差在这最后一步了。这一部分的知识点也是在面试的时会经常问道的。如果你想找一份iOS开发工程师的职位,这一部分是非学不可的。
这一部分的需要掌握的知识点包括:
iOS内存管理、iOS运行时机制、RunLoop、多线程等
每一块都需要掌握的很详细。
你还要熟练使用类库并阅读类库源码,例如AFNetWorking、SDWeblmage等,这两个是初学者必看的。
——————————————————————
这一阶段的学习可以多去github上下载源代码去阅读。
推荐一些完整的源码下载:
1、懒人笔记iOS客户端
GitHub - liaojinxing/Voice2Note: Voice2Note iOS client source codes.
2、《猿已阅》码农周刊iOS客户端
GitHub - icepy/manong-reading: 《猿已阅》码农周刊 iOS App(放弃维护,推荐大家下载《开发者头条》App)
3、火狐浏览器iOS客户端
GitHub - mozilla/firefox-ios: Firefox for iOS
4、某位大神做的高仿网易新闻项目源码
GitHub - dsxNiubility/SXNews: High imitation Neteasy News. (include list,detail,photoset,weather,feedback)
5、维基百科iOS客户端
GitHub - wikimedia/wikipedia-ios: The official Wikipedia iOS app.
6、品趣iOS客户端
GitHub - ltebean/novel-design: PinQu ios client
7、YoCelsius——一款天气预报的应用
GitHub - YouXianMing/YoCelsius: A weather app that uses animation to give you an at-a-glance look at the weather.
8、密记iOS版——款简单的笔记应用
GitHub - iHTCboy/SecurityNote: 密记iOS版:本应用主要功能是简单笔记。【已经开源,AppStroe可下载】The application of the main function is a simple notes.
——————————————————————
四、关于swift语言的学习。
学习iOS开发分为Objc和swift两个路线,以上介绍的是最经典的Objc路线。如果你想靠学习iOS开发找到一份工作,就要选择从Objc开始学起。因为绝大多数公司都是以Objc为开发语言的。
然而swift作为一门现代语言,集合了很多编程语言的优点,并且比Objc也更加简单易学,近几年swift语言的发展势头十分不错,大有取代Objc而代之的迹象。所以在这里建议题主把两个语言都学习一下。并且Swift语言是在Objc的基础上发明的,学完Objc,再学习swift也会更加容易。
关于swift路线的学习,可以看看我赢职场的iOS开发教程,有大篇幅的章节去介绍swift语言,并且讲得细致入微,十分适合新手学习。
教程链接:iOS9实战移动开发(swift加强版)
<img src="https://pic3.zhimg.com/5ddbfeab48e9bd78dfea180bbae2bd26_b.png" data-rawwidth="860" data-rawheight="589" class="origin_image zh-lightbox-thumb" width="860" data-original="https://pic3.zhimg.com/5ddbfeab48e9bd78dfea180bbae2bd26_r.png">
五、下面把自己多年来私藏的一些学习iOS开发的网站推荐给大家。当然这只是部分,赞数过百还会把这些资料再放出来一部分。所以,你们快点赞吧!
——————————————————————
iOS开发相关的网站:
1、我赢职场
上文已经介绍过了,他们家的课程质量算是很赞的了,教程最大的特点是特别适合新手学习。
2、tutsplus
不定时更新一些 iOS 教程
3、 WWDC
苹果官方每年一度的 WWDC 视频, 可以了解历年有关 iOS 发布的内容。
4、 asciiwwdc
WWDC 的文字版
5、 Swift by Robin Eggenkamp
该网站收集了很多关于 Swift 的学习资料, 新闻。
——————————————————————
邮件订阅:
1、iOS Dev Weekly
每周一期,内容多为这一星期里值得关注的 GitHub 项目、文章、工具等。
2、iOS Design Weekly
每周一期,会提供一些iOS开发的建议,新闻资讯以及创意方面的内容。
——————————————————————
文档
iOS Developer Library
iOS 开发必看, 有此文档足矣, 内容非常之详细。
大家快点赞啊!赞数过百,会有大波福利等着你.....
零基础学习 iOS 开发相关推荐
- [iOS]关于零基础学习iOS开发的学习方法总结
关于零基础学习iOS开发的学习方法总结 最近很多零基础来参加蓝鸥培训的学生经常会问到一些学习方法的问题,就如下我自己见过的好的学习方法一起讨论一下. 蓝鸥iOS开发技术的学习路线图 程序员的主要工作是 ...
- 随笔分类 - 零基础学习iOS开发
随笔分类 - 零基础学习iOS开发 不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍 ...
- 【零基础学习iOS开发】【02-C语言】10-函数
一.基本概念 1.什么是函数 不论什么一个C语言程序都是由一个或者多个程序段(小程序)构成的.每一个程序段都有自己的功能,我们一般称这些程序段为"函数". 所以.你能够说C语言程序 ...
- 【零基础学习iOS开发】【01-前言】03-前景和难易度分析
本文目录 一.iOS开发的前景 二.iOS开发的难易度 这讲继续介绍iOS初学者比较感兴趣的问题:iOS开发的前景如何.iOS开发的难易度.要想分析iOS开发的前景,首先你要搞清楚是哪个牛X公司在维护 ...
- 【零基础学习iOS开发】【02-C语言】05-进制
上一讲简单介绍了常量和变量,这讲补充一点计算机的基础知识---进制. 我们先来看看平时是如何表示一个整数的,最常见的肯定是用阿拉伯数字表示,比如"十二",我们可以用12来表示,其实 ...
- 黑马程序员——零基础学习iOS开发——13 Foundation框架
------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...
- 【零基础学习iOS开发】【02-C语言】08-基本运算
计算机的基本能力就是计算,所以一门程序设计语言的计算能力是非常重要的.C语言之所以无所不能,是因为它不仅有丰富的数据类型,还有强大的计算能力.C语言一共有34种运算符,包括了常见的加减乘除运算.这讲就 ...
- 零基础学习IOS开发(二)- 使用cocos2d-x3.0 执行Hello world
关于开发框架,依据网上检索来的信息,感觉cocos2d-x的ios游戏开发框架非常不错,并且有非常强的可移植性,因此打算尝试一下. 截止写下此文章,最新的cocos2d-x的版本号为v3.0稳定版(几 ...
- 零基础学ios开发培训要培训多久
零基础学ios开发培训要培训多久 想参加ios开发培训,不知道ios开发培训需要多长时间能学会呢?零基础学ios培训要培训多久?学完IOS技术课程后是否可以快速找到高薪工作,一系列的问题都是菜 ...
最新文章
- c3p0获取连接Connection后的Close()---释疑
- 第二百三十一天 how can I 坚持
- eclipse集成weblogic开发环境的搭建
- WPF Rendering 2(硬件加速、软件加速)
- Ros基本概念及小乌龟程序学习
- 标题:	Huffman树
- 2中我建的表怎么是小写的_面试官:2个线程交替打印大小写英文字母,你会怎么实现?...
- Kali暴力破解Wifi密码完整步骤(学习记录)
- Python实现伽马矫正
- html5设置谷歌浏览器兼容性,google浏览器
- [从源码学设计]蚂蚁金服SOFARegistry之服务上线
- Hadoop综合大作业+补交平时作业
- 软考高级 真题 2016年下半年 信息系统项目管理师 案例分析
- java的if 、if else、while、do while、switch、for执行语句
- 【源码解析】StyleNeRF 之Train_encoder.py
- 2066服务器芯片组,华硕发布三款LGA2066对应工作站主机板
- AS608指纹模块开发教程
- 《Python绝技:运用Python成为顶级黑客》 用Python刺探网络
- 【转】GPS定位基本原理浅析
- Canvas如何设置一个渐变背景(支持从纯色切换到渐变,从渐变又切换到纯色)