iOS开发必要的技能 !
1. 语言基础
无论哪种开发,都离不开程序语言的学习。Objective-C是iOS的官方语言,更是学习和理解iOS开发的基础。万丈高楼平地起,将OC学得透彻最起码需要了解C语言基础、Object-C的基础、OC运营时的特性、面向对象的概念、Protocol/Block/Category、内存管理等等。
另外,作为一个基础扎实的iOS工程师,熟悉swift也非常重要,swift或许是一个将来要替代OC的语言。
2. 界面开发
曾经有人这么说过,在iPhone里你看到的,摸到的,都是UIView,所以UIView在iOS开发里具有非常重要的作用。下面几个问题你能够回答出来吗?
1、怎么使用constraint来控制UIView?
2、UIVIew里的哪些属性变化可以用动画来呈现?
解决这些问题需要对界面开发的深入了解。初级的界面开发中,工程师需要至少需要完成一个APP页面,深入了解各类界面元素是如何使用的,以及各界面元素间是如何进行复杂的布局排列,以下是需要这部分需要核心技能:
· 常用控件使用
· 常用 UIViewController 容器使用
· 布局基础 (手动布局和 AutoLayout)
· App 生命周期
· 事件响应流程
· 简单手势
进阶的界面开发中,工程师为了实现“产品级”优秀的交互体验、独特的动画效果,提供更多丰富的功能,需要了解手势与事件、绘制、动画等进阶技术,以及音视频、相机相册、定位、运动等等常见iOS特性的实现。
动画
· UIView Animation
· CAAnimation
绘制
· CoreGraphics
· QuartzCore
· OpenGL ES
音视频
· Audio Toolbox
· CoreAudio
· MediaPlayer
缓存
· 通用缓存实现
· 网络缓存
学习基本的界面设计也是很必要的,了解了基本的设计以及Sketch的使用。iOS Human Interface Guide也是开发之前的必读书。
3. 并发编程
“UIButton 工程师"和真正合格的 iOS 开发工程师有什么区别?一个优秀的iOS工程师需要了解文件存储、线程管理等知识,了解如何合理存储用户数据,如何合理使用线程模型,如何高效发起网络请求。并发编程部分的核心技能主要有一下3点,你是否都了解透彻了?
· GCD(GCD 和 block 的配合使用)
· NSOperation(NSBlockOperation和NSInvocationOperation的使用)
· Runloop(利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能)
4. 工程相关
无论是企业开发人员还是独立开发者,在需求、交互、视觉、开发一系列的步骤后,都会面对APP的测试、优化、上线、版本更新的问题,一个优秀的iOS开发者在面对这方面问题的时候,就需要有工程相关的知识,保证我们开发的APP能够长期运行,高效优化。这部分我们必须了解的内容有以下几部分:
· 常用第三方库
· 版本管理工具和常用工作流
· 第三方库管理工具
· debug 技能
· 性能调优
· 单元测试