2009年05月30日

IPhone开发初步认识

作者 非鱼

想开发IPhone程序,首先得弄个MacOSX系统,版本要求10.5.3以上。虽然网络上也有一些Linux下甚至XP下搭建开发环境的文章,但是那些只限于开发工具链,没有开发工具,对于新手来说,不使用开发工具直接写代码来开发IPhone程序,那是根本没可能成功的事。不管是买台Mac也好,在PC上装个Mac也好,用虚拟机也好,准备好操作系统。

然后是上Apple的开发者中心注册个用户名,下载IPhone 2.2.1的SDK,很大,1.75G。下载完成后安装很容易。然后就可以进/Develop目录下启动xcode程序了。File菜单下面新建项目,提供了几个模板,选个View Based项目,下一步,改个名字,就生成了一套新项目的框架,直接点顶上的Build and Go就可以编译完成并自动启动IPhone模拟器然后自动启动这个程序。

IPhone程序的结构还是比较容易理解的,Object C的语法虽然是比较奇怪,(从来没有在别的语言里面见过这种用法),但是只要稍微理解一下跟别的语言的语法上的不同,要上手其实是很容易的。对于Object C方面,要了解的无非就是头文件里面的类定义,属性定义,方法定义,实现文件里的属性声明,方法声明。类的实例化以及内存释放,类方法和属性的调用方式,就足够了。

IPhone的程序架构方面是完完全全的MVC架构,视图和逻辑完全分开。在窗口编辑器(Interface Builder)里面设计的窗口跟代码没有任何关系,要想使用窗体上的控件需要在Controller层定义相关变量和动作方法,然后把变量和方法通过拖拉的方法跟控件关联起来,然后程序就会知道这两者之间的关系了。同一个方法可以方便的关联到任何按钮上,同一个变量也可以指向任何一个类型相符的控件。你所要了解的,就是在Controller中应该使用哪几个方法来显示和保存数据。

Apple提供的IPhone可用的控件种类不多,但是每个都很强大,大部分控件都可以互相嵌入,因为大家都是从同一个基类UIView继承下来的,所以,视图里可以嵌入视图,表格里也可以嵌入其它视图,比如表格的每一行里都可以放入标签或者图片,或者另一个表格。充分利用这种特点,就可以用很少的控件类型写出非常丰富的界面。

IPhone程序处理数据直接使用sqlite3数据库,读写也都还算方便,当然要是能够提供一个官方的ORM类那就更好了,目前还是得自己去实现一个。不过sqlite本身没有加密功能,所以你的程序如果是以数据为核心竞争力的,还得自己想想办法加密数据库里的数据,没有办法像其它数据库那样直接定义一个复杂的数据库读写密码来解决问题。IPhone的数据库读取性能很强,在数据库里读取5000多条数据生成一个TableView,只需要六七秒的样子就可以显示出这个表格,并且上下滑动表格也很平滑,并不存在什么内存问题。

编译出来的软件只能在模拟器里运行,放到IPhone上是不能运行的,因为没有授权。需要花99美元去买个Apple的授权,才能让程序运行在IPhone上,当然,这一步有办法跳过去,用MacOS自带的签名工具自己做一个签名,就可以让程序跑在IPhone上,但是这样的程序还是没有办法放到AppStore里面去卖钱的,想赚钱,这个投资是必须的。Apple真是个稳赚不赔的生意人啊。