ios程序猿攻城策略

这也是一个面向对象的问题,作为实例对象的你需要一步一步去攻城拔寨。待各处插满了自己的旗帜,回过头来,你会感谢一路走来的自己!

一、入门  

面向对象编程基础(类和继承,变量和方法的作用域,MVC基本概念,分类)

方法和函数(消息,类定义和属性,与C/C++的混合编程)

内存管理(strong/weak, ARC自动引用计数,自动释放对象)

代码设计模式(Block块语句,Target/action,协议)

UIKIT(视图层级,绘制事件,触摸事件,动画)

多媒体(配置,AVFoundation, C语言的API)

 

二、中级   

掌握核心类库:
相机和microphone
社交网络与分享
CoreData数据持久化
Foundation,又包括Application loop(应用循环),Threads(线程),Networking(网络)。
MapKit,也就是如何使用地图
Passbook,也就是和移动支付系统的整合
CoreLocation,如何在茫茫人海之中找到你所爱的位置
Bluetooth,蓝牙模块,如果你要开发周边硬件设备,这是必不可少的
Notifications,消息推送,又包括Local本地和Push(APNS)推送
CoreMotion, 比如陀螺仪相关的东西
GameKit,和第三方游戏设备(手柄)相关的东西
SpriteKit,类似cocos2d2D游戏引擎

 

三、进阶   

第三方依赖库管理

CocoaPodsiOS开发者不说立马晋升高大上,至少也突破了屌丝的瓶颈。
CocoaPods的使用请参考这里:CocoaPods安装和使用教程

攻城工具Xcode的学习:

项目管理:包括文件结构,导航,Build 设置,属性列表等

代码编辑器:包括如何高亮,查找,自动完成,查看文件,Assistant Editor等等。

Interface Builder: 如今的Interface Builder(界面编辑器)是内置在Xcode中的,这部分又包括Storyboardsxib的使用,控件类型及属性设置,IBOutletIBAction,自定义类,Tag,视图文件结构等。

代码调试工具:包括lldb,断点,日志等

Instrumentation工具:包括内存泄露和CPU使用率的监控等。

Git版本管理:包括repository的管理,branchingmerging

详情请参考:

开发者工具概述

四、高级    

软件工程

iOS开发者除了知道如何具体写代码,还要在思想上提升自己的档次,站在一个更高的角度看待项目的开发和管理。这个时候就需要了解一些软件工程的概念。

对于软件工程,需要掌握的内容如下:
应用程序的架构:比如模块化和SOA,逻辑封装等
敏捷过程:比如项目所有者和用户场景,迭代开发,高效沟通等。其中迭代开发步伐又包括测试和结对编程,CI和代码审阅,QA质量测试和调试。
项目管理:比如项目规划和评估,工具和文档化,Licensing等。

五、淬炼期大成

(1)、iOS开发者的淬炼功法1-Tests测试  

一个有经验的iOS开发者往往会采用测试驱动开发的思路。

大概要学习的内容包括:
测试类型:单元测试,功能测试,整合测试,性能测试,可用性测试,回归测试等。
连续测试:continuous integration,自己去google
XCTestXcode特有的测试方法。
关于这部分的内容详细参考:
Quality Coding

TDDiOS开发初步以及Kiwi使用入门

Xcode Overview: Unit Test Your App

 

(2)、iOS开发者的淬炼功法2-Git版本控制   

iOS开发者需要对Git版本控制有一定程度的了解。
具体包括:
版本控制系统:其中又包括分布式VCSBranch,Merge,Diff
GitHub的使用:ForkPull requests
config remotesdefault behaviors

 

(3)、iOS开发者的淬炼功法3—移动应用开发的独特性    

虽然Web开发,PC端应用开发,移动应用开发并没有等级之分,但各自却有了完全不同的特点。

开发者需要根据移动应用开发的独特性掌握相应的知识:

HIG(Human Interface Guidelines):人机界面交互,具体参考:

iOS Human Interface Guidelines: Designing for iOS 7

流量消耗的考虑:包含两个方面,一个是安装包的大小,另一个则是在使用过程中的流量消耗。

多线程操作:比如上传下载文件之类比较耗时间的操作可以单独放在一个线程中,详细请参考:Grand Central Dispatch (GCD) Reference

状态保存和恢复:让用户下一次进入应用时仍然进入此前所在的界面和状态。

本地化:根据用户所在的地区选择对应的语言显示

 

(4)、iOS开发者的淬炼功法4—吸星大法-参考别人的源代码   

源代码的来源包括:
http://developer.apple.com中苹果官方的源代码;
http://github.com里面的源代码;
code4app,cocoachina等第三方网站中大家共享的源代码;
教程网站和其它第三方网站中的源代码(如http://raywenderlich.com等);
通过逆向过程研究别人的应用,这个有点高大上了。

 

(5)、iOS开发者的淬炼功法5—提高英语水平  

一个修真者莫大的痛苦是,自己的面前摆着一门绝世神通,却TMD是火星文完全看不懂?

对于iOS开发者(包括其它程序猿)来说,如果自己的英文水平不行,就等于手握万千绝世神通却半个字都不懂。

所以,最起码要多花时间看看英文文档,教程,博客,论坛,不必刻意去学,而是在提高自己iOS功力的同时提高自己的英文水平。两者相辅相成,相得益彰。

 

(6)、产品发布   

App Store发布:包括provisioning profile,code-signing,开发者入口,具体参考:

如何发布IOS应用程序到苹果APP STORE

或苹果官方文档,因为具体做法经常会有调整。

  

原文地址:https://www.cnblogs.com/liuxiaokun/p/4806638.html