文档章节

ios学习规划

余成海
 余成海
发布于 2015/10/22 11:37
字数 1171
阅读 844
收藏 13
点赞 0
评论 0

前言:我看很多人在开始投向ios开发的怀抱,也有很多问我该怎么学ios,我也想单凭自己的学习来总结下ios学习的过程和规划,希望是有帮助的,而不是误导了大家。


1.准备

1)准备Mac,mac是必须的,可以选择的是mac mini(最便宜的,不过要自配显示器)、mac book(有三种,推荐pro)、imac(最合适的开发设备,就是太贵)、黑苹果(最实惠,最难搞,学习推荐远景

2)准备iphone,手机尽量要有,不然模拟器很多东西都模拟不出来的(比如摄像头,重力什么的),如果真买不起iphone,ipod touch 也是可以代替的

3)开发者账号,开发者账号是为了能真机调试,不然你有手机也不能调试,可以到官网买一个(一年688元人民币,可以一群人一起买),配置下证书,买了账号还可以发布你的应用。

4)在app store 下载xcode开发工具


2.入门(初级)

1)基本语法

基本语法看看基础书和视频就可以了,如果是自己学习的话可以直接研究swift,如果是为了找工作和公司认可的话还是建议要学objective-c。(下面都以oc为例)

2)界面学习(红色重点)

ios的UI一般有三种方式:手写布局、xib、storyboard

常用的控件:UIView、UIButton、UILabel、UIImageView、UITextFiled、UITableView、UITableViewCell

ios的MVC模式:M(数据层单独创建Model、Info)、V( 分散在xib、storyboard、view、UIViewController)、C(UIViewController)

UITableView总结

页面切换结构:UINavgationController(pushViewController、UITabbarViewController(setSelectedViewContoller)、UIViewController(PresentViewController)、UIView(AddSubView)

3)持久化存储数据

FMDB(sqlite)、NSUserDefault

4)数据结构

NSArray(数组)、NSDictionary(字典)、NSMutableArray(可变数组)、NSMutableDictonary(可变字典)、NSData(二进制数据)、NSDate(时间)、NSString(字符串)、double、int、float

5)层间回调

NSNotificationCenter(通知)、Delegate(协议)、Block(块)

ios 异步回调选择

6)网络(学会使用)

ASINetWork、AFNetWorking

ios http 上传图片

7)静态数据、全局数据、外部定义数据、宏定义、常量数据

8)多看别人的代码,github

推荐几个我自己写的,合适入门的应用源码:

rando(图片分享):http://git.oschina.net/jonear/Rando

消消豆(小游戏):http://git.oschina.net/jonear/LianLianDots

Demo(一些实例):https://github.com/Jonear/iosDemo

9)推荐书:《Objective-C 基础教程》


3.进阶(中级)

1)界面学习

常用的控件(补充):UICollectionView、UITextView、UIScrollView、UIActivityIndicatorView、UISegmentedControl、UIPageControl、UISlider、UISwitch、UIProgressView、UIWebView、UIMapView、UISearchBar、UIWindow

手势:touchBegin、touchMove、touchEnd、UIGestureRecognizer(tap/pan/long)、摇一摇

MVC:学习层级结构,层级调用、搭建框架

app通知:UIApplicationDidEnterBackgroundNotification等(UIApplication.h)

自动布局:autoLayout、autoResizing、code By ScreenSize

2)xcode快捷键熟悉

3)图片处理(切圆、滤镜、缩放等)

ios圆角图片的实现》《ios图片拉伸》《UIImageView中图片的大小缩放

4)VC、view加载结构和过程(viewWillAppear\viewWillDisappear\viewdidload)

5) 多线程与安全(NSThead、GCD、NSOpration)《ios多线程总结

6)内存管理(ARC、autoreleasepool、@property)

7)持久化存储数据(补充)

coreData、文件、cSqlite、plist

8)分类(类别)、常用分类库(BFKit

9)网络(补充)

NSUrlConnection、TCP/UDP

网络数据结构:json、xml,解析和生成

学习第三方库源码结构:ASI、AF

10)强化学习UITableView(自定义Cell,重用优化)

11)性能调试工具 Instruments

12)字符串处理(剪切、匹配、反转等)

13)动画(UIView动画,UILayer动画) 《ios隐性动画

14)内外部推送处理、推送证书、发布证书

15)语音视频播放、录制、处理

16)毛玻璃、高斯模糊(FXBlurView、UIBlurEffect)

17)多看第三方库的代码记录ios第三方库

18)推荐书:《Effective Object-C》


4.熟练(高级)

1)界面学习:(补充)

手势冲突处理、UIWebView js交互、MVC结构搭建和优化

2)runtime(非常重要)

3)runloop

4)逆向工程分析

5)MRC性能管理

6)多线程优化、队列、锁优化

7)网络结构、底层协议、安全(加解密方法、https)

8)keychain

9) 音视频处理(裁剪,合成、除噪、滤镜)GPUImage、直播、格式转换

10)高阶动画(贝塞尔、阻尼、正弦 RBBAnimationpop

11) 数据统计,埋点(方案、优化)

12)即时通信(方案、网络、刷新)

13)编写SDK、xcode插件、FrameWork

14)apple watch

15) CGContextRef 绘图

16)多看官方贴:https://developer.apple.com/library/prerelease/ios/navigation/

17)core、coreText、coreImage...

18)推荐书:《ios逆向工程》


-呀,按这个目录好好写写,我能出本书了呀!

© 著作权归作者所有

共有 人打赏支持
余成海
粉丝 61
博文 56
码字总数 29577
作品 0
杭州
iOS工程师
一样的iOS开发程序员为什么有人4k有人40k?

前言 移动开发真正火起来其实就是最近这几年,iOS 开发技术因为发展也就才这么几年,所以值得做的事情还有很多,这就造成了每年苹果的 WWDC 都会推出一堆新的特性和 API。整体上来说,这对业...

原来是泽镜啊 ⋅ 05/16 ⋅ 0

一年iOS工作经验,如何一举拿下百度、美团、快手等Offer面经(附面试题)

前言: 先简单说说我最近的面试经历吧。面试的公司很多,大部分最后都能得到令人满意的结果,我将这些体会记录下来,面了这么多公司,如果不留下什么,那岂不是太浪费了。对于我来说,这也是...

原来是泽镜啊 ⋅ 04/24 ⋅ 0

如何判断你是合格的高级iOS开发工程师?

前言 随着移动互联网的高速发展泄洪而来,有意学习移动开发的人越来越多了,竞争也是越来越大,需要学习的东西很多。如何才能在激烈的移动开发者竞争中一枝独秀,成为一名真正合格的高级iOS...

_小迷糊 ⋅ 05/26 ⋅ 0

2018 一份"有点难"的iOS面试题(5年iOS开发)

序言: 之前一时兴致在本站上出过一份iOS的中级面试题,引起一些关注,不少同学表示对”隐藏关卡“感兴趣。升级版iOS面试题来了,目测难倒90%iOS程序员,目测一大波程序员撸着袖子在靠近。 ...

原来是泽镜啊 ⋅ 05/26 ⋅ 0

【AR】开始使用Vuforia开发iOS(2)

原 设置iOS开发环境 安装Vuforia iOS SDK 如何安装Vuforia iOS示例 编译并运行Vuforia iOS示例 支持iOS金属 iOS 64位迁移 设置iOS开发环境 适用于iOS的Vuforia引擎目前支持运行iOS 9及更高版...

lichong951 ⋅ 06/11 ⋅ 0

iOS最火那年转型管理,他收获了什么?

过去一年,移动端开发者就业环境爆冷。一些迷茫的程序员,通过转岗甚至转行的方式,暂时告别自己的移动开发路。 提到转型,作为国内最早的一批 iOS 开发者,唐巧相当有发言权。工作八年,他恰...

100offer ⋅ 04/13 ⋅ 0

iOS高仿QQ侧滑控件、下载框架、动画效果、扫一扫、颜色变化、K线图等源码

iOS精选源码 仿京东"加入购物车"转场动画(http://www.code4app.com/thread-28162-1-1.html) ColorTool(颜色转换)(http://www.code4app.com/thread-29256-1-1.html) Swift 专业版K线(http://w......

sunnyaigd ⋅ 04/17 ⋅ 0

HDU ~ 6297 ~ CCPC直播 (模拟,输出格式控制)

思路:模拟就行了,注意Running和RTE的开头字母一样。 iomanip是I/O流控制头文件,就像printf的格式化输出一样。 以下是一些常用的: dec 置基数为10 相当于"%d" hex 置基数为16 相当于"%X" oc...

zscdst ⋅ 05/29 ⋅ 0

iOS逆向工程- 学习整理(工具详解)

前言 一、逆向工程的要求 具备丰富的 iOS 开发经验 最好能非常熟悉 iOS 设备的硬件构成,iOS 系统的运行原理。 拿到任意一个 App 之后能够大致推断出它的项目规模和使用的技术,比如它的MVC模...

_小迷糊 ⋅ 05/11 ⋅ 0

苹果WWDC2018开发者大会总结,不错过任何一个重点,最后发布的新品你一定意想不到

前言: 北京时间2018年6月5日1点,苹果在美国圣何塞举行苹果全球开发者大会(WWDC)。在此次开发者大会中,推出全新iOS 12全新系统版本,以及全新watchOS 5,tvOS和macOS Mojave。 iOS 12:增...

马蹄上的茉莉清香i ⋅ 06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JAVA RMI

什么是JAVA RMI Java RMI (Remote Method Invocation) 远程方法调用,能够让客户端像使用本地调用一样调用服务端 Java 虚拟机中的对象方法。RMI 是面向对象语言领域对 RPC (Remote Proced...

saulc ⋅ 5分钟前 ⋅ 0

Linux系统工程狮养成记

如今的社会,随着时代的发展,出现了很多职业,像电子类,计算机类的专业,出现了各种各样的工程师,有算法工程师,java工程师,前端工程师,后台工程师,Linux工程师,运维工程师等等,不同...

linux-tao ⋅ 16分钟前 ⋅ 0

进入编辑模式 vim命令模式 vim实践

1.

oschina130111 ⋅ 16分钟前 ⋅ 0

mysql用户管理、常用sql语句、mysql数据库备份恢复

1. mysql用户管理 mysql默认有一个root超级管理员账户,实际工作环境中不可能每个人都用此root权限,防止误操作、误删除,可以给单独的用户进行授权。 Mysql创建用户以及授权: grant all on...

laoba ⋅ 16分钟前 ⋅ 0

类型后面三个点(String...)和数组(String[])的区别

类型后面三个点(String…),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Obj...

流氓兔- ⋅ 22分钟前 ⋅ 0

JEPLUS表格组件之表格合并——JEPLUS软件快速开发平台

JEPLUS表格组件之表格合并 我们在列表配置时会遇见这样的一种情况,需要对个人的数据进行统一化,对一些数据进行归类,这样展示出来美观又直观,在这篇笔记中我来给大家介绍下如何配置出来专...

JEPLUS ⋅ 23分钟前 ⋅ 0

golang 并发中全局唯一操作

package main// go 携程共享 数据// 加锁解锁操作// 同步锁import ("sync""fmt")// 创建Once结构var once = sync.Once{}func computed(data *int, lock *sync.Mut...

304158 ⋅ 24分钟前 ⋅ 0

Mobx入门之二:asynchronous actions

这一节主要看mobx怎么实现asynchronous actions 1 要实现的demo功能 输入地名,查询天气,利用openweathermap api 2 思想 observable观察数据:location地点、temperature温度 observer响应式...

pengqinmm ⋅ 26分钟前 ⋅ 0

【2018.0620学习笔记】【linux高级知识 13.4-13.6】

13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复

lgsxp ⋅ 48分钟前 ⋅ 0

Java强弱引用示例

package jdk;import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;public ......

月下狼 ⋅ 53分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部