学习方法
面对有难度的功能,不要忙着拒绝,而是挑战一下,学习更多知识.
尽量独立解决问题,而不是在遇到问题的第一想法是找人.
多学习别人开源的第三方库,能够开源的库一定有值得学习的地方,多去看别的大神的博客.
作为一个程序员,如果你停止了学习,你也必将会被这个团队淘汰.
要把学习的技能当做兴趣,而不是为了挣钱去学习,是为了学习技能而学习.
有给自己定制一个详细的职业规划和人生规划,大到5~10年,小到近3年(并且细化到月)的计划.
不要盲目的面试,要针对即将面试的工作,准备面试.
首先针对一个自己没有接触到的知识,先使用 百度\谷歌等网站搜索资料.然后进行学习
这是个好东西,我劝你多用用https://developer.apple.com/search/
尝试写一个demo,对新技术进行熟悉.
如果市面上有成熟的Demo或者第三方库,下载下来进行学习.
在熟悉的过程中,遇到了任何问题,再进行百度/谷歌,学习不同人的不同看法和解决方法.
做一个负责任的开发者
那么现在说正题,如何成为负责任的开发者?
首先要负责,对自己的项目负责。如果是自己新开的项目,要保证随时都能清晰的想到项目当中每个地方是怎么实现的,测试或者用户反馈了问题以后,能立马想到可能的错误原因。
如果是接手的项目,就要尽快去了解主要的界面和功能是如何实现的。你只有先做好自己分内的事,才有机会去顾暇别人的事。
1.保持一个良好的代码规范以及文件架构。 2.每天要给自己做一个TodoList 和一个BugList,时刻保持自己是在有效率的工作,严重的需要时间修复的bug汇报上去,小bug自己记下来偷偷修复。 3.有空时将排行榜上的应用下载排名靠前的应用,去欣赏并分析主流app的界面,功能实现,在拿到设计图时,去考虑界面的合理性,功能怎么实现最符合用户的操作习惯。 4.要有一定的协调能力,交流能力,稍微了解一点后台知识以及前端知识。 5.信念,一个不做初级iOS开发的信念。多去了解,不会被别人当小白,学多少都是自己的,至于在你去学习的时候,有人会说风言风语,这就是区别,他们活该初级,自己不会的东西,也看不惯别人去学习。所以,一定要有一个规划,按照自己正确的规划去学习,去成长,别原地踏步。
关于后台你需要懂什么呢,如何设计接口文档,接口怎么设计合理,后台拿到你请求的数据是怎么存储的,你需要的数据后台又是怎么查询给你的,请求方式什么时候用get什么时候适合post,JSON格式的数据以及XML数据又有什么好处。
关于前端你需要了解什么呢,这里大致提一下H5和app交互,比如H5怎么调你的方法,你怎么调H5的方法,数据如何传递,图片如何交给H5显示,这些都需要去了解。
有些人会觉得,我上面说的这都是废话,或者说你知道有什么用吗,又没你提意见的资格。iOS的群普遍是什么风气,就是你提出来一个建议或者意见,如果路人甲会,他就趾高气昂怼你一顿,如果他不会,他就会说,会这个又没用,懂这么多又没用什么的bulabulabula。这就是第五点。
如果你想变强,那就做点什么.
iOS开发学习路线
iOS定位
-
iOS定位
-
简介:这里的定位,仅仅代表我个人意见,仅符合本笔记如何学习从哪里开始学习,怎么去学习来说.
-
尚未入门
-
如何判断自己是否入门
-
是否了解Mac
-
是否了解Xcode
-
是否了解Objective-C
-
是否会使用UI控件.
-
如果上面的都不了解,那说明你还没有入门,请从iOS学习路线开始学习.
-
-
-
初级iOS开发
-
说明:作为一名初级的iOS开发,你需要具备以下技能
-
必备技能(全部都会的情况下查看下一项)
-
Xcode的使用
-
第三方库的灵活使用
-
AFN
-
MJRefresh
-
-
各种网站的使用
-
-
如何判断是否可以升阶
-
是否了解AFNetworking 的实现原理
-
是否了解SDAutolayout/Masonry 一种布局库的原理
-
是否能够处理基本的iOS崩溃原因/无法编译原因/无法上架原因?
-
是否拥有了一定的工作效率,稳定的工作效率.(而不是说,上面派了一个活下来,忙都忙不完,天天加班,还一堆bug)
-
是否能够处理第三方库引起的崩溃.
-
是否可以很好的融入工作环境,完成每一阶段的工作指标,而不会让自己疲惫不堪.
-
-
结论
-
iOS中级开发说白了,就是你学会了基本的UI界面搭建,上架,沉淀一段时间,你觉得自己还适合这门行业,还适合,还能接受 这个所谓的iOS开发工程师的行业.你就可以说是一名中级iOS开发.
-
这个沉淀时间 大约在1年的实际工作中,就可以完成.
-
如果你觉得这门行业不适合你,请仔细结合自身情况,是否转另一门计算机语言,还是彻底转行.
-
-
-
中级iOS开发
-
说明:作为一名中级的iOS开发,你需要具备以下技能
-
必备技能(全部都会的情况下查看下一项)
-
应用的内存处理
-
应用的推送处理
-
应用的模块化/单元测试
-
应用的第三方集成/集中化管理/稳定迭代
-
阅读强大的第三方源码/拥有快速上手新的第三方库的能力.
-
能够接受各种新功能的开发(这里是指,即使你没有做过,但是你仍然可以凭借着学习,解决任何业务需求:例如:蓝牙.AR.摄像头.硬件交互.等)
-
清楚明白数据的传递方式,应用与后台如何交换数据,交换数据的过程,结果,格式.
-
多线程的灵活使用.
-
各种并发事件的处理/以及界面的合理性/流畅度
-
设计模式的灵活使用.
-
-
如何判断是否可以升阶
-
结论
-
-
高级iOS开发
-
说明:作为一名高级的iOS开发,你需要具备以下技能(我不是高级开发,所以这里只能给你们提供建议.)
-
必备技能
-
应用的组件化/架构分层
-
数据结构,操作系统,计算机网络都有自己的了解和认知
-
Shell脚本/python/Ruby/JS 至少会一种.
-
-
-
详细学习路线
-
学习路线
-
简介
这里只简单阐述一些概念性的东西,以及学习路线规划,真正的知识请从iOS基础知识点往下开始看. -
Objective-C
-
介绍
-
概念
-
编译原理
-
-
程序启动原理
-
App组成
-
Info.plist
-
.pch
-
-
打开程序
-
执行main函数
-
执行UIApplicationMain函数
-
初始化UIApplication(创建设置代理对象,开启事件循环)
-
监听系统事件
-
结束程序.
-
-
语法.(此处定义可能略失严谨,口头教学为主)
-
基础语法
-
对象.
-
属性
-
数据类型
-
方法
-
继承
-
Frame/CGRect/CGPoint和CGSize
-
内存(针对MRC下情况进行介绍)
-
ARC/MRC
-
弱引用/强引用
-
Assign,retain,copy,strong
-
import 和@class的区别
-
-
Xcode使用
-
首先是针对Xcode菜单栏,希望自己可以去翻译一下每个菜单里每项功能的英文都是什么意思,有助于自己熟悉并加深印象的使用Xcode.
-
熟悉Xcode的各个功能.
-
-
UIKit控件.
-
界面分析(下载App进行学习).
-
在这里推荐有兴趣的开发人员,下载并分析,AppStore中的每项分类的top50的应用,多学习大公司以及流行应用是如何开发应用的,其中流行的,新颖的开发界面的方式可以总结下来,猜想在大应用中,别的程序员是如何开发的.
-
界面适配
-
-
代码架构.
-
各种工具、第三方的使用.
-
其实每个项目的建立都大致分为:项目框架搭建,原生界面搭建,嵌入第三方库.有很多功能都会用到第三方库,大多数第三方库都是本着快速开发,完整功能实现的目的存在的.需要开发人员能够根据业务逻辑不同,选择最好最优质的第三方库进行使用.
-
-
代码封装
-
当使用较多第三方库后,要求开发人员学习其开发特点,以及其封装手法,运用在自己的项目上,封装自己的代码.灵活运用.
-
-
完整项目.
-
开发技巧
-
个人心得
-
iOS基础知识点
-
iOS基础知识点
-
如何学习iOS
-
刚刚入门(如何学习)
-
打好基础,学习OC中各种常用语法.
-
学习如何上架,上架会因为什么被拒,了解App上架规则.
-
多学习官方说明文档.
-
-
刚刚入职1年(如何稳定)
-
多看开源或者注明的第三方库.
-
收藏并阅读各种大神的博客或者论坛.
-
开始考虑项目中的细节优化,内存处理和耗电情况
-
-
入职3年(如何进阶)
-
开始涉猎不止于iOS领域中的知识,会去了解相关职位的基础知识,例如前端和后台或者服务器运维,或者项目相关知识,具体往自己的职业规划靠拢
-
-
-
框架的学习
-
苹果自带框架
-
第三方框架
-
AFNetworking
-
SDAutoLayout
-
YYKit
-
SDWebImage
-
MJRefresh
-
MJExtension
-
Bugly
-
Qiniu
-
Masonry
-
TZImagePickerController
-
Hyphenate_CN
-
-
-
基础UI控件
-
UILabel 标题栏
-
UIButton 按钮
-
UIImageView 图片视图
-
UITextField 文本输入框
-
UITextView 文本展示视图
-
UIProgressView 进度条
-
UISlider 滑动开关
-
UIGesture 手势
-
UIActivityIndicator 菊花控件
-
UIAlertView(iOS8废除) 警告框
-
UIActionSheet(iOS8废除) 操作表单
-
UIAlertController(iOS8出现) 警告视图控制器
-
UIScrollView 滚动视图
-
UIPageControl 页面控制器
-
UISearchBar 搜索框
-
UITableView 表视图
-
UICollectionView集合视图
-
UIWebView网页浏览器
-
UISwitch开关
-
UISegmentControl选择按钮
-
UIPickerView选择器
-
UIDatePicker日期选择器
-
UIToolbar工具栏
-
UINavigationBar通知栏
-
UINavigationController通知视图控制器
-
UITabbarController选择视图控制器
-
UIImagePickerController相册
-
UIImage图片
-
-
Xcode的使用
-
基础操作 状态栏
-
偏好设置
-
Xcode Source Control 源代码管理器
-
Xcode workSpace工作组
-
Xcode Scheme 计划
-
Xcode AutoLayout 约束
-
Xcode CoreData数据库
-
LLDB 断点调试
-
StoryBoard
-
界面预览
-
界面适配
-
内存监测
-
全局断点
-
全局搜索替换
-
-
数据存储
-
plist
-
NSKeyedArchiver
-
SQLite
-
FMDB
-
CoreData
-
NSUserDefault
-
沙盒存储
-
NSDictionary归档
-
-
App生命周期
-
应用生命周期
-
控制器生命周期
-
alloc
-
init
-
创建View
-
ViewDidLoad
-
ViewWillAppear
-
ViewDidAppear
-
ViewWillDisappear
-
视图将要消失 (做一些视图将要消失时的UI的处理)
-
-
ViewDidDisappear
-
视图已经消失 (做一些视图消失之后数据的处理)
-
viewDidDisappear销毁定时器
-
-
dealloc
-
didReceiveMemoryWarning
-
-
-
开发者账号&上架流程
-
文章推荐:
-
个人
-
公司
-
企业
-
-
常用知识
-
通信
-
NS系列
-
宏定义
-
视图层次
-
切换视图
-
深浅拷贝
-
对象序列化
-
写入文件
-
获取沙盒路径
-
翻转视图
-
延伸视图
-
九大基本数据类型
-
九宫格
-
坐标比较
-
UIColor 、CIColor和CGColor 之间的关系
-
画图
-
静态变量
-
tag值
-
延时执行方法
-
界面旋转+状态栏隐藏
-
plist文件
-
KVC/KVO
-
谓词NSPredicate
-
帧动画
-
AutoLayout
-
isKindOfClass 与 isMemberOfClass
-
Return/Break/Continue
-
Core Animation
-
CALayer
-
Quartz2D
-
真机调试
-
静态库
-
内存管理
-
iPad与iPhone的区别
-
响应链
-
异常捕捉
-
国际化
-
代码模块化
-
类别/扩展
-
-
中级知识点
-
设计模式
-
UIScrollView/UITableView/UICollectionView 的嵌套
-
动态行高
-
通知/代理/block
-
程序启动原理
-
触摸事件/手势
-
图文混编
-
Runtime
-
NSRunLoop
-
GCD
-
ReactiveCocoa开发
-
3DTouch
-
界面渲染
-
Charles花瓶抓包
-
区分模拟器/真机项目
-
常用知识
-
单例模式
-
多线程
-
网络请求
-
定位
-
源代码管理Git
-
真机调试
-
苹果内购/广告
-
推送/远程推送
-
音频/视频/二维码
-
Block
-
蓝牙/传感器
-
物理仿真器UIDynamic
-
通讯录获取
-
iOS高级知识点
-
iOS高级知识点
-
Socket
-
XMPP
-
加密
-
MD5详解
-
Base64加密解密
-
RSA非对称加密
-
AES对称加密
-
-
音频
-
基础
-
Core Audio
-
Audio Toolbox
-
OpenAL
-
AVFoundation
-
Speex语音聊天
-
AudioQueue/AudioSession
-
Speex简介
-
-
视频
-
AAC视频.H264推流
-
P2P传输
-
-
直播
-
直播的技术分析与实现
-
RTMP协议
-
RTMP直播应用与延时分析
-
如果做一款inke版的App
-
推流发布和播放RTMP
-
FFmpeg
-
基于FFmpeg的推流器
-
HLS流媒体传输协议(HTTP Live Streaming)
-
FFmpeg
-
ijkPlayer
-
-
算法
-
简介
-
冒泡排序
-
快速排序
-
插入排序
-
归并排序
-
二分查找
-
希尔排序
-
动态规划
-
堆排序
-
-
官方Kit
-
ARKit.
-
SiriKit
-
HealthKit
-
HomeKit
-
SearchKit
-
IOKit
-
PDFKit
-
CloudKit
-
GameplayKit
-
SpriteKit
-
SceneKit
-
MusicKit
-
ResearchKit
-
MapKit
-
StoreKit
-
AVKit