iOS完全自学手册——[一]Ready?No!
1.前言
今天开始我会不定期写一些iOS自学的相关文章。毕竟,自己是自学开始,知道自学有哪些坑,知道自学对于开发欠缺什么,此外,加上现在的实际开发经验,希望能给自学的iOS开发者一些建议。
2.Ready?
2.1 工欲善其事,必先利其器 —— 务必要有自己的 Mac
微博上 @不知霜舞哀伤udspj (http://weibo.com/udspj ,公众号 udspj_manga )妹纸画过一副图,关于iOS新手的建议,漫画上给的回复是“不要怕花钱”。我很认,舍不得孩子套不着狼,没有Mac干毛线的iOS开发?或者你说暂时用虚拟机或者黑苹果。但是,且不说这样做很浪费时间,光是这种地沟油式的(援引自 @tinyfool )盗版思想,就没必要再学iOS开发了。
所以,还是老老实实买台Mac OS的机子吧,哪怕是11寸Air,或者Mac mini都可以的啊,或者买个二手的MacBook能用就行,这样能切身地体验苹果的产品才是刚开始学习iOS开发要做的。
不过,可以不需要有iPhone,模拟器可以搞定开发。但是,最好要有,因为可以体验iOS的各种UI动画的效果,和苹果生态带给用户的服务。
2.2 选择Objective-C还是Swift?
嗯,我建议是如果急于找工作的话先学Objective-C,毕竟主流商业项目还是用oc,若是swift可以自己学习使用。但是,Swift还是必须要学的,谁让这是人家苹果的亲孩子,并且已经开始主推,开源还跨平台,哪天要是能做服务端的脚本语言。
2.3 Linux/Unix的基础
用Mac OS做开发最大的好处就是,图形界面和unix的操作系统可以兼得。学习iOS应该先接触一些Linux/Unix操作系统的基础,比如一些简单常用的bash命令,系统目录等。
2.4 文档!文档!
苹果的官方文档非常好,写得很详细。但是唯一的难度就是全英文的,作为一个,大学只过四级的英语渣渣来说,看文档真心累。但是,看久了也就越来越熟练了,知道如何使用文档。以后,我会整理一个关于文档使用的文章。现在,我看文档也是比较累,真心觉得英语很关键哪。
2.5 Xcode的使用
Xcode作为iOS应用唯一的编译软件,自然非常重要,对于interface builder ,navigator ,inspector,调试栏等都要熟练掌握。
2.6 参考书
我买了不少iOS开发的书,看完的也就两本,粗略看过的大概不超过10本。看不完没关系,慢慢看嘛~
对于入门来说,先学一门语言基础一点的就成。
- 如果是Objective-C,《Objective-C程序设计》、《精通iOS 开发》(我就是看完的这两本),随便看看就好,对iOS开发有一定了解就成。
- 如果是Swift,《Swift 开发指南》、《Swift权威指南》都可以入门。
- 其他入门的书也可以看看《iOS数据库应用高级编程》(这本书很坑,根本不能称之为高级)、《iOS高级编程》(这本书很坑+1,翻译的译作者把professional翻译成高级也真真是醉了!)、《iOS 8 案例大全》(各种小demo的堆砌,入门的话看这个练手不错)
- 进阶的书,我比较推荐 《精通Objective-C》、《Objective-C编程之道:iOS设计模式解析》、《iOS编程实战》、《iOS网络高级编程》、《Core Data应用开发实践指南》,这几本我粗略看过,没看完,但真心觉得很好。
- 其他杂七杂八的书,《iOS 逆向工程》(狗神的书,买了至今没看呢T_T)、《黑客攻防技术宝典 iOS实战篇》(仍然木有看)、《iOS Auto Layout开发秘籍》(木有看+1)、《PhotoshopCC 移动UI界面设计与实战》(基本就是小人书,都是图画,看着玩可以,不过没有学习价值)
但是书,看看就好了,最重要的还是要写代码,多练习。千万不要落入,把所有书看完再找工作的误区,只要有点基础,投简历就是了,真正的项目开发才是最能快速提高技术的。
2.7 开发
在自学阶段的开发,除了各种demo练习,最好能做个小应用,有完整功能的最好。当然,只有UI也可以。网上也有很多高仿的应用吧,不过我认为,自己做的能完整做完对开发项目有帮助。
另外,就是,真心觉得初学能用storyboard就用sb,能用xib就用xib,不要只用代码搭建UI,费时费力,而且不利于对 iOS的开发模式的学习。
3.工作?oh,NO!
关于开发工作,我是这么认为的,由于2015年初互联网+炒作太火了,而且移动互联网是主流趋势,iOS开发依旧会很火,加上苹果出大屏手机,大部分消费者都趋于选择iPhone。不过,这个行业永远都是需要的是人才,现在培训的学员太多了。所以,刚出来没工作经验的,还是很难找的。当时,我自己找工作也是比较难,从PHP转iOS并不好转,基本从零开始。所以,找工作的新手要做好心理准备。
另外,现在的市场,我觉得确实也比较浮躁。不过,真本事永远都是自己的,时间久了,苦一两年,也就无所畏惧了。哪一行都一样,所以要有心理准备,记得一句话,这么说的,“人生最艰难的就是,第一份工作,和最后一次说再见”。也没什么的,学到东西就好嘛。
4.结语
我一直认为,人但凡想做一件事情,只要真心想做,就一定能做成。日积月累,厚积薄发。任何行业都有其社交圈子,演艺圈,商业圈,IT圈云云~但凡圈子,都有大佬,那些人一开始选择了这个圈子,期间他们不像其他人一样弃圈换坑,而是,一直在做,经历了那么多年的危机,现在依旧好好的。所以,作为后浪,不要着急,反正跟大佬比,我们年轻,跟小辈比我们有经验。总之,时间久了,一切都会有的,面包,爱情都会有的~~嗯,bug可以没有。
iOS完全自学手册——[一]Ready?No!的更多相关文章
- iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象
1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较 ...
- iOS完全自学手册——[二]Hello World工程
1.前言 写第二篇文章之前,我在想第二篇应该怎么写?后来觉得与其写Objective-C语言的相关语法,不如直接开始写个小项目.语法简单入门即可.因为,即便把语法看的很深到最后还是不一定能做项目,运用 ...
- <iOS>other linker flags[转]
包含静态库时候需要在Target的Other linker flags里面加上值:-objC,-all_load,-force_load 对于64位机子和iPhone OS应用 解决方法是使用-all ...
- iOS10收集IDFA,植入第三方广告[终结]--ADMob
[PS: 前段时间,公司做ASO推广,需要在应用中收集IDFA值,跟广告平台做交互!于是有了这个需求--] 1.首先,考虑了一下情况(自己懒 -_-#),就直接在首页上写了一个Banner,循环加载广 ...
- [caffe]linux下安装caffe(无cuda)以及python接口
昨天在mac上折腾了一天都没有安装成功,晚上在mac上装了一个ParallelDesktop虚拟机,然后装了linux,十分钟就安装好了,我也是醉了=.= 主要过程稍微记录一下: 1.安装BLAS s ...
- [Swift]基础
[Swift]基础 一, 常用变量 var str = "Hello, playground" //变量 let str1="Hello xmj112288" ...
- [Ruby on Rails系列]4、专题:Rails应用的国际化[i18n]
1. 什么是internationalization(i18n)? 国际化,英文简称i18n,按照维基百科的定义:国际化是指在设计软件,将软件与特定语言及地区脱钩的过程.当软件被移植到不同的语言及地区 ...
- [译]一个灵活的 Trello 敏捷工作流
[译]一个灵活的 Trello 敏捷工作流 翻译自 An Agile Trello Workflow That Keeps Tasks Flexible Getting things done 可不只 ...
- Lua完全自学手册(图文教程)
Programming in Lua程序设计 http://book.luaer.cn/ Lua完全自学手册(图文教程) https://edu.aliyun.com/course/506/les ...
随机推荐
- VC6.0 OpenGL环境配置及编程基础
1.一般情况下VC并不携带glut,需要到opengl官网下载,下载地址 http://www.opengl.org/resources/libraries/glut/glut37.zip 解压后 打 ...
- iOS与PHP/Android AES128 ECB NoPadding加密
前言 谈谈AES加密,网上有很多的版本,当我没有真正在加密安全问题前,总以为百度出来某个AES加密算法就可以直接使用,实际上当我真正要做加密时,遇到了很多的坑,原来不是拿过来就能用的.写下本篇文章,记 ...
- android触控,先了解MotionEvent(一)
http://my.oschina.net/banxi/blog/56421 这是我个人的看法,要学好android触控,了解MotionEvent是必要,对所用的MotionEvent常用的API要 ...
- Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享 支付宝十年账单上的数字有点吓人,但它统计的项目太多,只是想看看到底单纯在淘宝上支出了多少,于是写了段脚本,统计任意时间段淘宝订单的消费情况,看 ...
- Devexpress VCL Build v2014 vol 14.2.1 beta发布
已经快到2015 年了. 14.2.1 beta 才出来了. 还好,有一些新东西. 官网地址 VCL Gauge Control Designed to clearly convey informat ...
- hdu-1141
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1141 参考文章:https://blog.csdn.net/fei____fei/article/de ...
- UVaLive 6525 Attacking rooks (二分图最大匹配)
题意:给定一个 n * n的图,X是卒, . 是空位置,让你放尽量多的车,使得他们不互相攻击. 析:把每行连续的 . 看成X集体的一个点,同理也是这样,然后求一个最大匹配即可. 代码如下: #prag ...
- POJ 3320 Jessica's Reading Problem (滑动窗口)
题意:给定一个序列,求一个最短区间,使得这个区间包含所有的种类数. 析:最近刚做了几个滑动窗口的题,这个很明显也是,肯定不能暴力啊,时间承受不了啊,所以 我们使用滑动窗口来解决,要算出所有的种数,我用 ...
- 解决Error creating bean with name 'huayuanjingguanDaoimp' defined in file [D:\apache-tomcat-7.0.52\webapps\landscapings\WEB-INF\classes\com\itheima\landscaping\dao\imp\huayuanjingguanDaoimp.class]: Invo
问题描述: 10:23:13,585 ERROR ContextLoader:307 - Context initialization failedorg.springframework.beans. ...
- Java中的I/O 线程 网络
Java学习总结--I/O,线程,网络题目整理 I/O 1.有什么理由必须要用字符流? 答:处理字符数据的语法更方便.自动化字符编码 2.插入哪些代码可以让下面的代码正确编译? Console con ...