iOS开发路线概述

1  iOS开发环境



1.1 开发环境

    标准的配置是MacOSX+Xcode。

MacOSX的话首选用苹果电脑,macmini最便宜只要4000多就好了然后自己配一个显示器,macbookpro 也可以,不推荐使用macbookair。还有很多人使用黑苹果或者虚拟机甚至在windows上装一些工具都是不可取的。

Xcode这个开发工具自己继承了iPhoneSDK,所以不用单独下载SDK。调试的模拟器可以从Xcode里面下载不同版本的模拟器。


1.2  账号 证书 上架 等

     iOS调试真机是需要证书的,所以这个时候需要从申请一个iDP账号,应用上传appstore的话有很多种方法。


1.3  svn 

    Xcode有自带的svn,我以前用过一个cornerstone,好不好用你用了就知道了。



2 Obejct-C语言



     Object-C语言是C语言的扩展,是一门面向对象的动态语言,它能够和C、C++混合编程。

2.1动态特性

    Object-C具备一些动态特性,包括动态类型、动态绑定、动态加载,也就是Object-C在运行时才能知道一些对象的类型以及所调用的方法。


2.2内存管理

OC是使用引用计数原则,现在OC引入ARC(自动引用计数原则)。引用计数有几个规则,一是谁创建谁释放,通过alloc、new和copy创建对象,然后调用release或者autorelease去释放对象,第二是,除了alloc、new和copy之外创建的对象都是autorelease的,第三谁retain了,谁释放。

2.3 一些语言特性


     OC首先是只有单一继承,没有多重继承。

     属性访问,@property加上@synthesize使用后能够自动生成setter和getter方法。

     category,中文一般叫做类别,他能够为现有的类提供新的方法,他将类的实现分散到多个不同的文件或框架中,创建对私有方法的前向引用,向对象添加非正式协议。

    block语法,块,他通常代表小段的自包含的代码片段,因此,他们封装为可以并行执行的工作单元额外有用,还可以用于在集合中进行遍历,或者在其他操作完成时作为回调。块代替传统回调函数的意义有两个:一是他们允许在方法实现的调用中就近写入代码,而且块经常被作为框架中一些方法的参数;二是他们可以访问本地变量。

    OC中有很多类是以NS开头的,那是cocoa层里面Foundation框架的类库。



3 iOS开发


3.1 iOS操作系统简介

    iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。


3.2 常用的设计模式

    最基础的是MVC模式,就是把项目分为Model、View和Controller三层进行管理。

    常用的还有代理模式,通过协议实现。观察者模式的话体现在了KVO和notification上了。target-action模式是OC中非常常见的对象之间方法调用的方式,一般在和UI打交道的时候处理各种GUI上的事件会利用到这种模式,他通常会有一个target作为消息的接收者。单例模式,使得单例对象在项目中只会创建一次。工厂模式,是一个类族的概念,很符合敏捷软件开发的开放封闭原则。


3.3 Interface Builder和Storyboard

    一般写iOS的UI有三种方式。xib,Storyboard以及代码创建。

    我之前自学用了一会的xib,之后一直用代码创建,代码更容易区做多语言版本,而且

xib启动需要事件比用代码直接写慢,xib文件比代码建立UI文件也大。


3.4 常用系统框架

     UIKit是最常用的框架,主要是用来做UI的。包括视图UIButton、UILabel,控制器UIViewController等,还有一些触摸事件、手势等。

     QuartzCore、CoreAnimation框架是一些绘图、动画的类库。


3.5数据存储

    iOS数据存储主要有四种方式。

    NSKeyedArchiver,采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议。归档形式保存数据只能一次性归档保存以及一次性解压,只能针对小量谁,而且数据操作笨拙,即如果想改动数据的某一小部分,需要解压整个数据或者归档整个数据。

    NSUserDefaults,用来保存应用程序设置和属性。

    第三种,Write写入文件。

     第四种,相对前两种更为复杂,但也最好用。SQLite,可以自己封装,也可以使用FMDataBase等第三方封装库,还可以使用系统的CoreData。


3.6数据通信

     iOS的数据通信有几种方式,应用层的HTTP,以及传输层的封装TCP或者UDP的socket接口,还有就是蓝牙通讯。

     HTTP的WebService一般可以用post、get或者soap等方式请求数据,可以用系统的NSURL也可以用第三方类库ASIHTTPRequest,这两个类库都可以做缓存,数据交换的格式一般有JSon和xml。

socket可以通过c语言的socket和CoreFoundation框架的CFNetwork实现,也可以用第三方类库asyncsocket。

    蓝牙4.0的话使用的是CoreBluetooth框架。


3.7多线程编程

     iOS的多线程有NSThread、NSOperation以及GCD。NSThread比其他两个轻量级,但是需要自己管理线程的生命周期,线程同步。线程同步对数据加锁会有一定的系统开销。operation则不需要关心线程管理,GCD是一个替代NSThread和operation的技术。


3.8iPad开发

     iPad和iPhone开发是异曲同工,但是不要试图去适配iPad和iPhone,因为他们的UI差别太大。


3.9其他

    iOS的地图是使用MapKit框架,定位用CoreLocation。

iOS有一个云端机制iCloud,iOS还有一个推送机制,可以由服务器推送消息到手机应用程序,iOS还可以做本地化。

    iOS有一些内置的传感器可以利用起来编程,比如三轴加速传感器,用来测加速度的,还有陀螺感应器,测角速度,感知移动的。

    关于iOS的相机、相册以及音视频都有相应的类库。



4   游戏开发



     游戏开发用的cocos2d。



5  书籍 网站推荐 



    书籍目前没有发现什么好书,但是网站有很多。

    code4app,开源中国,cocoachina是国内常用的三大代码库网站,国外我会上版本控制的网站github。


6 iOS学习路线图

    最后给出一个iOS学习路线图。


参考:http://www.cnblogs.com/mjios/archive/2013/02/26/2933200.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值