iphone开发教程(1) iOS大纲
iOS 大纲
iOS 由操作系统和应用技术构成。虽然和 Mac OS X 共用了很多技术,但是 iOS 是专门为了移动设备而设计的。当然如果你以前做过 Mac OS X 的应用程序,你会发现很多相似之处,但是很多技术只能在 iOS 里面使用,比如支持多触点和遥感等。
iOS SDK 包含了 API ,文档和一些工具 , 这些工具用来开发、测试、运行、调式和在 App Store 上发布应用。 iOS 的官方 IDE 是 Xcode,Xcode 可以编译,测试和调式你的代码,并且设置断点在你的设备上调式程序,当然在应用的开发阶段你也可以使用 Xcode 上的模拟器来模拟的你的 iOS 环境,同样可以调式、编译和运行。( 业界大型的 iPhone 游戏更多的是用 VS C++ 利用 OpenGL 来开发的, Xcode 只是最后用来集成和测试的。)
这篇文章是从一个比较高的层面来讲解 iOS 的架构,你也可以查看其他的文章帮助你快速了解 iOS 的底层信息。
文章大纲:
1.iOS 技术层级
2. 为 iOS 写代码
3. 开始 iOS 之旅
1.iOS 技术层级
iOS 核心层是基于 Mac OS X 的,他们有很多共同点基础类。在核心层上面是服务层( iOS Services ),服务层( iOS Services )是为应用提供 API 的 .
Figure 1-1 iOS 技术层级
服务层( iOS Services )大部分是基于 C 语言写的。核心层和服务层( iOS Services )包含了很多基础性的类库,比如底层数据类型 (low-level data types), Bonjour 服务( Bonjour 服务是指用来提供设备和电脑通讯的服务) , 和网络连接类库 (network sockets) 等等。服务层( iOS Services )包括了 Foundation 核心类库, CFNetwork 类库 , SQLite 访问类库 , 访问 POSIX 线程类库和 UNIX sockets 的通讯类库,等等。
在服务层( iOS Services )的上层是多媒体应用层( Media layer ),多媒体应用层是用 c 语言和 Objective-C 混合写成。多媒体应用层包含了基本的类库来支持 2D 和 3D 的界面绘制,音频和视频的播放。这一层包括了一些基于 C 语言的技术,比如 OpenGL ES, Quartz, 和 Core Audio 。当然也包括了基于 Objective-C 的较高一层次的动画引擎。
多媒体应用层( Media layer )上一层是( Cocoa Touch )层,这一层大部分代码是基于 Objective-C 的。这一层提供了很多基础性的类库 Foundation ,比如提供了面向对象的集合类,文件管理类,网络操作类等等。比如, UIKit 框架提供了可视化的编程方式,比如包含了 window, views, controls 和 controllers 管理这些类。当然 其他的类库也提供了一些非常实用的功能,比如访问用户的通讯录,照片集,重力感应器,和一些访问硬件设备的功能。
如果你想马上开始做一个新项目,那么你最好使用( Cocoa Touch )层,特别你准备使用 UIKit 框架的时候。使用高级别的框架比使用低级别的框架更加容易使用,建议只有当高级别的框架没有现成的方法的时候,才考虑使用更低级别的框架。
更多的技术细节,查看 iOS Technology Overview .
2. 开始为iOS写代码
iOS SDK 支持创建一个图形化的应用程序,这个创建的应用程序可以被创建在iphone的桌面上,并且是独立于其他的程序,比如图片,天气,时钟。它会在一个独立的沙箱里,这个会在以后描述。当你的程序运行的时候,你的程序会占用整个iphone的界面。如果你开发过windows下的应用程序,你肯定熟悉什么叫多文档应用,很遗憾,iOS并不支持多文档模式,iOS的应用只能在独立的窗口下显示,不能在一个应用里多窗口切换。
在 iOS 中,事件处理模式和经典的桌面系统( windows )是不一样的。经典的事件处理模式是相应鼠标和键盘,因为 PC 的主要外设就是鼠标和键盘。而 iOS 并没有鼠标和键盘,所以 iOS 的事件处理模式是基于触摸的。一个触摸事件可以发生在任何时间,也可以和其他触摸事件组成另外一个事件,比如多触点。这些触摸事件既可以用来检测简单的操作,比如选择和拖放某个项目,也可以检测到复杂的操作,比如滑动(类似与刷卡的动作,在忍者水果中的切的效果)、捏开和捏拢(照片的放大、缩小操作)。
当你准备做一个 iOS 应用程序时,你不仅仅要考虑程序的代码结构,基于什么基础构架,更重要的是考虑这个应用的用户会怎么使用它。 iOS 应用程序应该是操作和界面都简洁的,而且关注于最终用户的实际需求。记住,你的用户很忙,他需求的是最快的获得他所要的信息,而不是花很多时间在一些华而不实的界面之间切换来切换去。所以请提供一个简单的界面布局,并且把关键的信息放在醒目的位置。在游戏或者其他一些娱乐类应用,你可以考虑多
相关新闻>>
- 发表评论
-
- 最新评论 更多>>