分类: 嵌入式
2012-01-18 17:22:14
自去年 iPhone 面世以来,开创了移动设备内容服务的一种新的模式—-程序商店(App Store)。它极大地降低了移动设备应用的成本,即使普通人也能进入这个市场。就像在PC上开发应用程序一样,我们的投入只是一台电脑,一个手机。
截止到目前为止,许多大的电话设备提供商/运营商和软件企业都加入了这个新的模式,Nokia的 (2009年5月26日开始),微软的 mobile/ja-jp/win-dev/marketplace/default.mspx">Windows Marketplace for Mobile ,Google的 (2008年10月22日开始)等都已经或者准备进入这个市场了。
就像以前开发PC上的共享软件一样,许多程序员和小的企业加入了开发队伍的行列。只要有新意捞到你人生的第一桶金不是什么问题。国外的一个22岁开发者只用了20分钟开发了一款叫做Sound Grenade的 程序,一个小时的收入就是200美金!!!一个月70,80万人民币轻轻松松啊。要论这个程序,没有什么技术可言,纯粹一个垃圾,可是就是这么一个垃圾程 序,却受到很多人的欢迎,这只能说作者有创意了。顺便说一说,程序本身是免费的,主要是靠流量带来的广告收入(和网页广告一个道理)。
从今天开始,介绍一下 iPhone 应用程序的开发,发布流程,让我们也把自己的创意写成程序,展现一下实力吧。
iPhone开发入门(1)—-程序员眼中的iPhone
iPhone 不单纯是具有电话功能的 iPod,它的有许多有魅力的地方。作为一个应用程序的开发者,我们首先来看看它的这些特征。
首先,手机上的按键没有了,应用程序的按键,开关与电话的按键统一了起来。取而代之的是触摸屏技术,应用程序的开发者从此不再受按键的限制,可以自由的设计UI的风格。喜欢把按键放哪就放哪,即使不用按键,类似于PC应用程序的滚动条/拖动条等也可以在触摸屏上实现。
iPhone 中已经提供了从按键到滚动条等一系列的UI控件。当然,你也可以不使用这些控件,而是自己自作独特的UI控件。
制作iPhone应用程序需要的东西首先是开发环境,标注的配置是以下的环境:
当然你也可以在windows或者linux上安装开发环境。iphonedevonlinux有详细的介绍,使用toolchain在Cygwin或者linux下进行iPhone的开发,如果你想省些钞票或者想更深入的了解 iPhone OS 那么不妨试试它。这一部分,我在以后的章节中会专门介绍。
另外,开发所必要的软件,SDK,IDE等可以免费从Apple的网上。如果你想开发有GPS和照相机或者重力传感器功能的程序,那么需要iPhone 3G,其他一般的程序iPod touch就可以了。另外,如果想要把做成的程序发布出去,还需要到Apple Developer Connection花99美金登录。
Cocoa Touch与Xcode Cocoa Touch刚才介绍了开发iPhone应用程序的时候,可以选择许多现成的UI控件。实际使用的过程当中,使用叫做「Cocoa Touch」的程序开发组件库,它类似于windows下开发时所用的MFC,.NET FrameWork。利用 Cocoa Touch,开发者不用考虑设备的特性和画面特性,就可以简单的构筑GUI。
另外,利用Cocoa Touch,可以开发具有以下iPhone功能的应用程序。
照相功能利用照相机拍照,并将照片保存到iPhone。
当前位置取得功能要用iPhone取得当前位置,可以使用 GPS,无线LAN,基站等3种方式。应用程序不用考虑使用哪种方式,系统通过最佳的方式取得现在的位置信息。
XcodeXcode是Mac OS X下的IDE开发环境,也是免费的。主要包含有GUI设计用的「Interface Builder」,iPhone应用程序模拟器,编译器等。
Objective-C语言iPhone开发的时候,基本使用Objective-C语言。它是扩充C的面向对象语言,也是创建Mac OS X应用程序的首选语言。如果你会C或者C++,理解Objective-C应该很快。并且因为Objective-C可以在gcc运作的系统写和编译,你也可以混合Objective-C和C/C++来写程序,或者使用原先的C/C++库。
并且使用Cocoa Touch来开发程序,自己写的代码量也会相应减少,应为大部分的算法,逻辑部分都被程序库吸收了。
现在就开始开发iPhone应用程序准备好了所有的工具,我们就可以开始开发iPhone应用程序了。当然学习Cocoa Touch,Objective-C语言也是很重要的,这些我以后会有专门介绍。
在开发自己的应用程序之前,最重要的是什么呢? 是开发程序的知识和技能吗?不是的,最重要的是开发者的激情和创意。有了激情,我们能产生好的创意,有了好的创意,我们才能写出优秀的应用程序