`
isiqi
  • 浏览: 16029342 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

iOS 开发阅读笔记

阅读更多

http://thruth.ixiezi.com/2010/12/07/iosdev-notes-the-application-runtime-environment/

http://thruth.ixiezi.com/2010/12/07/iosdev-notes-ios-overview/


iOS 开发阅读笔记1 – iOS 程序运行时环境

纯粹作为 Hobby,空余时间比较多,纯粹当练习英语阅读再学点东西,按照阅读进度发布 iOS 开发官方文档笔记。因为英文文档废话较多,所以精简出来几条笔记。原则是,重要内容都有,链接到其它文档详细叙述的简单带过,看过笔记基本不用看原文了。

如果你喜欢该笔记系列,愿意 Donate 的,请查看关于页面 ,邮箱即支付宝帐号。

原文:The Application Runtime Environment

标题:iOS 程序运行时环境

#iOSdev iOS 程序具有即用性:典型应用场景是用户取出设备开程序,用一会儿就关程序把设备塞回去。设计程序需考虑此特点。

#iOSdev iOS 多任务管理:多任务模式下,App 不退出,自动挂起到后台,此时需要执行保存用户数据。内存不足时系统会按照活动时间顺序,轮询query后台任务退出,为当前任务获取内存空间。

#iOSdev iOS 虚拟内存系统类Mac, 不支持 page to disk。不足时先释放只读内存page, 然后向运行程序发送通知,所有程序必须响应通知,该退出的退出。

#iOSdev 应用需要考虑自动休眠计时,比如用重力感应的游戏不需要触摸屏幕操作,需要关掉自动休眠计时,否则玩着玩着就黑了。同时也要兼顾省电。

#iOSdev 每个App都分配 Sandbox, 首次安装创建 App home目录 /ApplicationRoot/ApplicationID/ 。安全特性是也。

#iOSdev Keychain (用户名密码)数据不在沙盒,统一保存便于iTunes backup。

#iOSdev App home目录结构:
  • /Appname.app 程序本身,安装时签名。改动导致无法启动。非首次不备份
  • /Documents/ 用户文档数据,可用户文件共享,有备份。
  • /Library/ 非用户数据文件,可定义子目录。除 cache 子目录其它有备份。
  • /Library/Preferences 勿自创偏好文件,用 NSUserDefaults 类或 CFPreferences API, 有备份。
  • /Library/Caches 程序启动/升级续用文件存此,自控。无备份。
  • /tmp/ 临时文件,程序不开随时可能被干掉。无备份。

#iOSdev App 升级会创建新的 App home 目录,然后把旧 home 目录下用户数据移动过来。/Documents /Library 目录文件必然会在升级中留存,其它用户目录也可能被保留,但是别指望。

#iosdev iOS 文件系统大小写敏感;iOS 模拟器和真机可能有不同,比如不支持Page to disk(…), OpenGL ES 实现也可能不同。需特别硬件支持用 info.plist 中 UIRequiredDeviceCapabilities,具体查文档

iOS 开发阅读笔记2 – iOS 概览

纯粹作为 Hobby,空余时间比较多,纯粹当练习英语阅读再学点东西,按照阅读进度发布 iOS 开发官方文档笔记。因为英文文档废话较多,所以精简出来几条笔记。原则是,重要内容都有,链接到其它文档详细叙述的简单带过,看过笔记基本不用看原文了。这篇文章应该是所有开始 iOS 开发者学习之路的起点。

如果你喜欢该笔记系列,愿意 Donate 的,请查看关于页面 ,邮箱即支付宝帐号。

原文:iOS Overview

标题:iOS 概览

#iOSdev iOS 是iPad/iPhone等苹果设备操作系统,相似 Mac OS X 但专注移动。iOS 有独特之处,如多点触摸界面和重力感应等。开发 iOS 程序先下 iOS SDK,含开发工具 Xcode、代码和iOS 模拟器,需 Intel Mac 机器。

#iOSdev iOS 基于Mach kernel 变体(同Mac),之上服务层由上至下为 Cocoa Touch -> Media -> Core services -> Core OS -> kernel。

#iOSdev Core 两层有最底层接口,文件访问、底层数据类型、Bonjour 服务、网络接口等等。接口大多基于 C,包括 Core Foundation, CFNetworl, SQLite 以及 访问 POISX 线程和 UNIX socket 等等技术。之上层是 C 和 Objective-C 的混合。Media 层提供 2/3D 绘制,音频视频。该层有 C 的 OpenGLES, Quartz, Core Audio. 也有 OC 的 动画引擎: Core Animation. Cocoa Touch 层全是 Objective-C。应用大多依赖此层 Framework。比如 Foundation Framework 提供集合、文件管理、网络操作等面对对象的支持。UIKit 则提供各种视觉支持,各种窗口视图神马的。硬件特性其它框架支持。

#iOSdev 新项目起于 Cocoa Touch 层,尤其 UIKit Framework。开发尽量采用上层的技术/framework,通用省力。特性实在满足不了再往下层找接口。

#iOSdev iOS SDK 可创建原生图形 iOS 程序,运行就单窗口全屏,无同屏多窗概念。iOS 事件处理模型和传统桌面分野巨大,依赖触摸事件非点击事件。拖曳、选择等简单触摸事件可即时同时发生,与内容互动。复杂事件则如swipe横扫,两触点接近远离(照片放大/缩小)等。

#iOSdev 别光想程序架构,多想想用户。界面简单直接,突出重点信息服务用户,因为用户没耐心;游戏可用相机和重力感应,因为用户憎恨平庸。

#iOSdev 开始开发先用 Foundation, UIKit 两者,它们丫是所有程序关键部分。具体文档令具。此外,Xcode 内置模板,搞个简单iOS程序很易。入门易,深入难。深入需研读 iOS Dev Center 所有文档(就是这个笔记系列)。

iOS 开发入门途径

#iOSdev 如果没有Mac编程经验,先理解iOS基础设计模式和习惯,勿急码程序,磨刀不误砍柴功。所有 iPhone 开发者都应该先通读基础文档 Cocoa Fundamentals Guide,学习 ObjectiveC 编程\惯例\UIKit和其他框架的设计模式。

#iOSdev 基础了解之后,看 iOS Application Programming Guide 学细节和开发流程。该文档有概念介绍、具体任务、界面构建、事件处理示例,同时描述如何用 Xcode 从头到底地开发。iOS Application Programming Guide 之后,多看代码实例。iOS 自带很多全功能示例,多看,学着点。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics