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 ...
随机推荐
- Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
解决方法: <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-m ...
- 复制文件描述符---dup
函数功能:复制文件描述符 头文件:#include<unistd.h> 函数原型:int dup(int oldfd) 参数说明:oldfd:旧的文件描述符 返回值:成功返回-个新的文件描 ...
- tomcat中如何配置虚拟路径
第一步:打开server.xml配置文件.在Host节点里写上该行代码: <Context path="/upload" docBase="E:\upload&qu ...
- hdu-1130(卡特兰数+大数乘法,除法模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1130 卡特兰数:https://blog.csdn.net/qq_33266889/article/d ...
- GitHub 安装配置
1:到 Github 注册 页面中注册,填写用户名.邮箱和密码 选择免费服务 步骤三可以根据自身喜好勾选或者直接跳过 2.1.2 创建远程仓库 创建完账号后,可以开始创建仓库 但是这里我们还没有验证邮 ...
- UVa 11732 "strcmp()" Anyone? (左儿子右兄弟前缀树Trie)
题意:给定strcmp函数,输入n个字符串,让你用给定的strcmp函数判断字符比较了多少次. 析:题意不理解的可以阅读原题https://uva.onlinejudge.org/index.php? ...
- python网页爬虫 spiders_97A-04B
import urllib import urllib.request import bs4 from bs4 import BeautifulSoup as bs import re import ...
- qq强制聊天工具
当你想和别人聊天, 别人有不理你的时候可以用上哦!!!特别是情人吵架的时候, 呵呵 复制下面的代码: @echo off title DIY-QQ强制聊天工具color 0a echo. echo. ...
- (最小生成树) Networking -- POJ -- 1287
链接: http://poj.org/problem?id=1287 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7494 ...
- 个人封装JavaScript函数
function get_next_day(str_date){ var d=""; d=new Date(str_date); d.setDate(d.getDate()+1); ...