http://www.hgbbs.com/bbs/archiver/?tid-141535.html

“iPhone是一款革命性的、不可思议的产品,比市场上其它任何移动电话整整领先了五年,”苹果公司首席执行官史蒂夫·乔布斯如是说,“手指是我们与生俱来的终极定点设备,而iPhone利用它们创造了自鼠标以来最具创新意义的用户界面。”

的确,iPhone已经推出,便在全球手机市场中引起了轰动。iPhone被称为手机中最美丽的姑娘,拥有无与伦比的高雅与品位。它创新性的大屏幕、多点触摸交互、以及重力感应等超炫的特性不仅让全球用户对手机有了全新定义。更为广大程序员提供了华丽和令人振奋的平台。

加之App Store这一革新营销模式的成功运营,创造性的拉近了广大程序员与全球手机用户之间的距离,使得草根程序员在iPhone平台上的创业成为可能。一年时间即超过15亿次的App下载量,这一巨大金矿正吸引全球最优秀与最具创意的软件工程师加入。

博看科技(www.ibokan.com)作为国内最早从事iPhone 3G平台开发的智能移动开发商,在iPhone平台上取得了业内瞩目的成就,拥有自主知识产权的3G开发框架和游戏物理引擎。三星移动全球三家核心开发商之一。

博看文思(www.ibokanwisdom.com)是国内首家iPhone 3G软件工程师培训学校,针对广大人士推出了有针对性地iPhone 3G软件开发课程。在这里特别跟大家分享下有关iPhone/iTouch开发基础和开发流程的一些总结。

1、iPhone硬件特性

iPhone内置4种传感器:加速计、触摸传感器、光线感应器和接近性传感器iPhone上这么多硬件设备为其炫丽的功能提供了强大的基础。利用加速器,iPhone能够检测出用户何时把它由纵向旋转为横向,是否在做甩、摇等动作;利用光线传感器,根据周围环境光线强度,户内或户外,自动调节显示亮 度,提供最舒适的视觉效果;利用接近性传感器,可以检测出用户何时把iPhone提升至耳朵附近,并立即关闭显示屏,以节省电源和防止触碰,直至 iPhone被移开。

2、开发环境介绍

1)、iPhone SDK开发库框架介绍

Cocoa Touch :是面向程序员的编程接口,包括 UIKit 和 Foundation 两部分。UIKit 提供了进程、线程管理,事件、窗口、视图管理。Foundation 提供基本的数据结构, Cocoa 提供的接口全部是Objective-C方式的接口。

Media:该层提供了更底层的图形、声音、视频方面接口。如OpenGL-ES、OpenAL、动画、QuartzCore,Video支持H.264、mp4、3gp、quicktime等压缩编码。音频支持 AAC、ALAC、A-law、IMA/ADPCM (IMA4)、PCM。另外还支持PDF、HTML格式图形显示。这层接口有些是用 Objective-C方式提供,有些是使用C语言接口方式提供。

Core Services:此层提供的功能和Cocoa touch的Foundation 功能比较接近,不同的是Core Services 提供的接口是C语言接口,并且更接近系统底层,效率更高。

Core OS:提供接近操作系统层的接口,C语言接Memory、Threads、File System、sNetwork。

2)、开发工具Xcode介绍

下载安装完iPhone SDK,机器上便有一个Xcode应用程序,XCode是一个IDE,功能强大。支持语法高亮、在线帮助、工程管理、断点调试、单步跟踪等功能。并且XCode 和 其他工具如 iPhone 模拟器,内存检查工具Instruments, 性能分析工具Shark无缝结合的非常好。

3)、模拟器(iPhone Simulator)

iPhone 模拟器能模拟大多数场景,并且和XCode 集成的非常好,可以在Xcode中断点调试,查看内存泄露问题。但是和它和真机设备环境还是有一些区别:

Ø         不能模拟GPRS或EDGE无线上网方式;

Ø         不能模拟多点接触操作;

Ø         不能模拟OpenGL-ES;

Ø         模拟器的CPU和内存,网络都是用PC机的,相对比较充裕,真正设备上相对比较恶劣,所以在模拟器上跑得很流畅的应用,在真机设备上可能性能低下。

Ø         运行库不完全一致,在模拟器上能运行的应用有可能运行不起来。可能某个函数在模拟器上不支持。

3、如何开发自己的iPhone 应用

Ø         首先需要一个Mac OS X 10.5.4 or later 的操作系统。Mac可以在 Apple电脑和普通PC上安装。

Ø         一台iPhone或iTouch是不可缺少的,虽然SDK带有模拟器,但是模拟的环境和真实环境还是有很大差别的。

Ø         下载安装iPhone SDK (Xcode),SDK是免费的。

Ø         申请license,这个不是免费,有99美元和299美元两种license.

Ø         熟悉Objective-C 语言,iPhone 的界面库是使用Objective-C语言写的,熟悉Objective-C语法是必修之路。

Ø         写代码,编译,调试,发布。

4、iPhone 应用设计原则

iPhone全新的开发平台,在归类上它属于嵌入式开发,和许多其他嵌入式开发遵循相同的原则,同时,它又有自己的特色。

1)、One Application at a Time

在同一时刻只能有一个应用运行。 这条规则是Apple公司给开发人员的一个紧箍咒。实际上,iPhone OS 是一个支持多进程的系统。当你的iPhone开机后,至少有10个以上的 进程在后台运行。但是Apple给开发人员这个限制也是无奈的选择。原因是 iPhone物理内存虽然有116M,但是iPhone OS不支持虚拟内 存,也就是说,无法像高级操作系统那样通过存储设备换取大内存。另外,iPhone 一开机,就有10多个系统应用在运行,这时候留给用户可以用的内存空 间只有4-5M可以用。这么少的内存,加上iPhone应用都是图形应用,根本无法同时分给几个进程。

2)、One Window at a Time

在同一时刻只有一个窗口,iPhone是一个手持设备,遵循便捷的输入输出,不能像PC上应用那样,多窗口叠加拖放。基本上,iPhone每个界面都是全屏显示。

3)、Reducing Memory Use

这是开发人员在开发过程中时时刻刻要挂在心里的一条原则。正如第一条所述。iPhone系统中内存是极度缺乏。尽量少用长期占用内存,用完马上释放。

4)、Reducing Power Consumption

减少电源消耗。iPhone 耗电量大是iPhone几大缺点之一。网络,电话,影视频,3D这些调用都是导致耗电量大的原因,如果你的应用中有这些调用,那你就要考虑如果省着点用,如减少网络流量等方法。

5)、Fast Launch, Quickly Out

这个是要求用户软件应当有良好的用户体验感,启动快,退出快。不能长时间对用户操作没有响应。

5、应用程序结构介绍

1)、应用程序生命周期和事件循环

应用程序从点击桌面快捷方式开始,就被系统加载到内存中,在所谓的沙箱环境运行,成为一个进程。经过一系列初始化开始在主循环中接收处理事件(定时器、用户点击、网络事件、内存不够系统事件、电量不够系统事件)。当用户按Home按键,应用程序将退出,释放自己的资源。

2)、沙箱

Application Sandbox 是提供给应用程序一个限制的运行环境。对应用的许多操作做了授权限制。如文件读写,应用程序只能访问某些限定目录下的文件,还有网络和其他硬件设备的访问控制都做了限定。

应用程序的目录限定如下,MyApp.app目录下是只读,Documents有读写权限、Library只读、tmp可读写。

6、UIKit控件介绍

iPhone的开发工具Xcode支持C语言和Objective-C语言,可以混合编译, 开发人员可以像在其他平台一样使用C语言写自己的数据结构管理数据。但是如果要创建窗口和控件的话,就得用Objective-C 语法,因为UIKit 接口是Objective-C接口。

UIKit是iPhone开发的界面库,提供了丰富的界面元素:

UIWindow:一个应用程序有且只有一个window,window是个容器只能放一个UIView;

UIView:用来显示的区域,UIView是所有其他界面控件的父类。UIView可以作为一个容器,放多个子View;

UIButton:从UIView继承,响应用户点击事件;

UILable:从UIView继承,静态只读文本标签;

UITextField: 从UIView继承,单行文本输入控件。

UITextView:多行文本输入

UIWebView:显示Html网页控件。

UINavigationBar:导航条;

UITabBar:工具条;

UIAlertSheet/UIAlertView:模态对话框

UISwitchCtrl:相当与RadioBox,2选一。

UISegmentCtrl:多选一

UITableView:显示列表

UISlider:表示进度或百分比

UIProgressView:表示进度。 。

UIPickerView:有点例似于Combox功能,多选一

7、总结

iPhone OS 提供了非常强大的开发平台,有许多强大的系统调用让你能够写出炫丽的应用。从某种角度来看,iPhone OS已经不是一个嵌入式操作系统,它几乎有着桌面操作系统所有的功能。同时它又有诸多限制,内存不够,CPU 频率过低,无法后台运行。如何在有限的资源上充分利用这些系统特性,就是考验开发人员系统设计能力和编程功底了

手把手教你iPhone 3G手机软件开发 转帖相关推荐

  1. 手把手教你iPhone 3G手机软件开发

    手把手教你iPhone 3G手机软件开发 "iPhone 是一款革命性的.不可思议的产品,比市场上其它任何移动电话整整领先了五年,"苹果公司首席执行官史蒂夫·乔布斯如是说,&quo ...

  2. 手把手教你打造360手机Android应用商店高级开发实战视频教程

    百度网盘下载 课程目标 *如果你需要完成一个完整的商业化项目,苦于无人指导,本课程正是你的不二选择. * 改变= 时间+合理的学习,建议童鞋们不要把时间浪费在零碎化的无意义的课程里,要学就学真正系统化 ...

  3. 3G手机视频开发平台

    3G手机视频开发平台 "3G手机视频开发平台"是一套开放的技术平台,模块化结构设计,可以快速的为现有视频应用系统,包括视频监控系统.视频会议系统.视频娱乐平台等提供手机终端接入能力 ...

  4. Android手机软件开发的前景

    Android手机软件开发的前景 今天是3G 的年代,中国拥有超过7亿的手机用户,而全球更是将近50亿,这样一个庞大的用户市场.而随着运营商语音话费的下降,手机上的各类增值应用已经成为了这个行业各环节 ...

  5. 手机软件开发入门 [转]

    昨天在<程序员>上看到一篇访谈文章,孟岩就3G手机软件采访科泰世纪的陈榕.看了后,第一个感觉就是陈榕没做过手机软件.其实"不知为不知"也无所谓,但陈榕扯了一堆&quo ...

  6. 实例:用C#.NET手把手教你做微信公众号开发(20)--使用微信支付线上收款:jsapi方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下jsapi支付,场景就是在微信内打开某个页面,完成在线支付,同样一个网页,使用微信打开就是js ...

  7. 求职 个人简历 手机软件开发工程师

    个人信息 姓名:  王成           性别: 男                    出生日期:  1985.10 学历:  大专           专业:  计算机网络技术   工作年限 ...

  8. 实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下H5场景支付,使用手机浏览器打开就是H5方式,最常见的推广是短信内置链接,这种场景需要调用微信 ...

  9. 北大青鸟:手机软件开发指引

    北大青鸟:手机软件开发指引 来源:[url]http://www.accp-teem.com.cn/ArticleView/2007-7-12/Article_View_1176.Htm[/url] ...

最新文章

  1. NDK crash栈信息的错误定位
  2. python作者龟叔_Python基础 — Python简介
  3. 阿里云专家详解 2020 服务网格发展趋势
  4. ASP中怎么实现SQL数据库备份、恢复!
  5. define关键字的使用,以及宏函数的定义
  6. 详解 WebRTC 高音质低延时的背后 — AGC
  7. Html5 学习笔记 --》html基础 css 基础
  8. tensorflow英语怎么读_英语不行?你可以试试TensorFlow官方中文版教程
  9. abap调vb写的dll实现电子天平的读数(带控件版)
  10. switch一定比if else好用吗
  11. 经历一番波折后的fedora以及wireshark
  12. 哪款scrm系统性价比更高?更受企业的欢迎?
  13. win10需要修复计算机,超好用!Win10自带修复系统 隐藏太深
  14. poj 1745 divisible
  15. java解压rar5 兼容rar4(改bug)
  16. paypal如何认证
  17. 厦门感恩回馈一线职工 为其开启“新年旅程”
  18. Java三层结构,附源码
  19. 可执行文件的装载与进程
  20. 针对126邮箱部分功能测试

热门文章

  1. 国产芯不知道怎么选?可以试试N32替代STM32
  2. 腾讯云域名如何绑定ip地址
  3. 华为云服务器数据库连接失败
  4. mac 竖屏显示屏鼠标无法从显示器移到mbp上
  5. c++ 不要节约代码行数_不要只是代码,但也c
  6. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)
  7. python一行代码实现白噪声检测
  8. GitLab-Runner 从安装到配置到入门
  9. Android scheme链接打开本地应用
  10. python解一元二次方程