Q:学习开发iPhone程序难吗,多久能学会?
A:这取决于你的编程底子,如果真的对程序一窍不通,连什么叫程序,过程,函数,循环,变量,类,对象统统不知道的话,可能需要花个半年,如果你对其他语言尤其是VB,VC或者C#已经很熟了,那就很简单了。
Q:开发iPhone程序需要什么软硬件条件?
A:需要一台Mac(在普通电脑上装Mac也可以,有很多网站和文章专门研究这个,但是我不负责教这个,我的前一篇文章讲的那个虚拟机也是可以的,但是能不能在你的电脑上跑起来就不保证了),一部iPhone或者iTouch用来调试。有钱就买贵的,没钱就买便宜的。现在二手Touch只要七八百。不要再问能不能在Windows下开发了,没有意义的问题。
Q:需要学什么呢?
A:iPhone的开发工具是sdk,登录http://developer.apple.com/iphone/就可以免费下载最新的SDK,目前分两个版本,分别对应mac osx 10.5和10.6也就是snow leopard。sdk的核心是xcode,它是个像visual studio一样的开发工具,它所使用的语言主要是objective-c,同时支持编译c和c++文件,你在项目里是可以混用这三种语言的。
古人说:自己动手,丰衣足食。既然找不到免费又好用的销售统计程序,那不如干脆自己做一个吧。真正动起手来,其实并不算太难,模拟登录后发个Post下载下来压缩的Gz日报表,解压出来里面的txt文件,一行一行的按Tab拆分,然后每个字段写到数据库里去。然后就是建立统计界面的问题。功能基本上就按照appFigures.com的功能来设计就差不多了。
花了半天做了一个,目前已经实现的功能界面如下,用起来还是挺爽的,反正那个自动导入对我们也没啥用,因为每次新数据出来都是晚上六七点,而等它自动导入至少要到晚上10点,所以还不如自己动手下载。

按天汇总也就是每天的销售总额,已经将所有其它货币类型的销售额转换成美元并汇总在一起了。可以删除某一天的数据,以便重新导入。按周汇总显示的是导入周报表数据显示的以周为X轴的汇总数据,也是一个拆线图。按区域汇总比较有用,可以显示按App Store的国家区域汇总,也可以按照Apple实际付款所需的七个不同的区域进行汇总,以便确定你这个月是否可以拿的到钱(单个区域都要超过250美元才会付款)。按程序汇总可以显示你的各个程序的每日下载量和更新量。

不过目前还有点问题,就是算出来的几个汇总额跟appFigures.com里面的汇总金额有点小区别。尤其是按区域汇总,可能我把每个国家区域代码属于欧洲还是属于澳洲或者WorldWide搞错了。
不过总体来说,很好用。嗯,果然还是自己动手比较好。
AppStoreReporter完整版,点击下载。本程序需要安装.net framework 3.5,解压即可使用。不定期更新。
10月12号更新,添加了周报的同步功能。为了防止覆盖掉你的数据库导致以前的数据丢 失,本次更新的压缩包里面只有exe文件,直接覆盖原来那个就可以了。如果你没下过原来的,请先下载完整的,再下载更新的包进行合并。8月14号更新,添加了查看日报和周报明细的功能,按程序汇总的界面增加了按销售地区筛选的功能。
11月18号更新,日报表和周报表的明细列表添加了点击表头排序的功能,添加了收入列(数量*价格),统一以美元计算,打开明细列表时自动按收入列排序,而不是原来的下载数 量排序。优化报表同步过程,添加详细的进度显示,下载完后不再弹出对话框,而是闪烁任务栏图标,在win7下表现更方便一些。
AppStoreReporter1207,点击下载。12月7日更新,修正了上个版本不能同步周报的问题。修正了如果有In App Purchase程序导致程序同步或导入数据挂掉的问题。下载完整版,再用这个覆盖主程序。
用传真机试过N次,又用faxzero试过N次以后,全部都提示失败。但是,世事如此难料,今天凌晨收到了信用卡境外消费99美元的短信提醒,早上起来信箱里就已经收到了激活码,点击链接就激活了自己的开发者账号。也不知道是哪一次传真发成功了。
登录开发者中心,右侧有个Portal的链接,点击进去就是自己账号的管理中心,初次进入有个向导,可以帮你创建一个开发者证书。最好是下载它的完整的向导说明书,是一个PDF,7M多,步骤还是挺详细的。但是这本手册在网上没有见过中文版的说明,所以在这里简单介绍一下。
这个开发者中心的用户权限分三种类型:Agent,Admin,Developer。Agent拥有完整的管理权限,Admin也可以管理用户和证书,Developer只能管理自己的证书和设备。只有Agent有上传软件到App Store的权利。(但是我没有看到添加其它用户的功能,可能需要299美元的账号类型才会有,我自己的账号登录进来就是个Agent了)。
对于个人开发者,你需要完成以下几个过程:
申请一个Development证书 > 设置你的IPhone手机 > 创建一个App ID > 创建并下载安装一个Development Provisioning Profile。经过这几步,你写的程序就可以跑在自己的手机上了(否则只能在虚拟机里面运行)。
然后申请一个Distribution证书 > 创建并安装一个Distribution Provisioning Profile > 编译你的程序 > 就可以发布到App Store了。
Apple这个公司,实在是个很会赚钱的公司。一部硬件性能一般般的IPhone手机,两年多就出了两个样式,卖的还挺火,更神奇的是,电信运营商还得跟他分成,不但卖手机,连话费他都能赚一份。而更加夸张的是,作为一个依赖于开发人员的系统平台公司,Apple对待开发人员却是极其的苛刻。首先你要买个99美元的开发者账号,才有可能把你的程序放到它的App Store里去卖钱。所以不管你的软件有没有可能卖出去,苹果先赚一笔。软件放上去以后,需要经过苹果的审核,涉及系统级的程序,比如短信类的,电话类的,浏览器类的,视频播放器类的,一率不给通过审核。假如运气好,通过了,你每卖一份软件,苹果还抽成30%。
即便如此,由于互联网那些因为在App Store里面放一两个小游戏而一夜暴富的传奇故事还是刺激着越来越多的开发者想尽办法加入这个团队,而苹果,显然没有准备好迎接这么庞大的开发者队伍,所以,服务就出了点问题。
在开发者网站上申请账号,选择99美元的版本,一步一步下去,到最后提示,您所在的地区没有在线App Store业务,不能网上付款购买,需要打印并填写一张申请表格,然后传真到1(408)8627602。很郁闷。然后打印了那个表格,写上自己的信用卡号和签名(怕怕),传真……这个号码居然一直无人接听。两天打了七八次,全部都是无人接听。上网一搜,在Apple的官方开发者支持论坛上半年来不停的有人报怨这个传真的问题,至今无人解决,能不能传真成功全凭个人人品。
后来找到了一个在线的免费发美国传真的服务网站,于是又用数码相机把申请表变成图片,放到word文件里,通过这个网站上传。两天之内又在不同的时间试了四五次,每次这个网站都会自动重试五次,依然没有一次发送成功。话说回来,即便发送成功了,还要等待财务的处理流程,信用卡能否成功支付美元还不知道。支付成功了还得转到账号管理部开通账户,然后自己在线制作证书下载下来编译到程序里,上传程序还要等待审核,能不能审核成功还不知道。审核成功了放出去,有没有人买还不知道……
苹果天天都在宣扬自己的App Store里的4万个游戏和软件,还有那10亿次下载,但是却将如此多的问题视而不见。可能苹果公司并不太关心美国以外的地区,无论是那里的手机客户还是那里的开发人员,总感觉苹果就像一个很容易满足的小老板,饭不在多,吃饱就行,够吃了,就不考虑再赚多赚少的问题了。可能服务小众更容易保持自己的利润率,尽管利润量会小一些。
激情的力量真是不可估量。从5月27号拿到《IPhone开发基础教程》,后面用了两天的假期写了两个程序,先是一个普通的数据库阅读程序(被威锋论坛删了)。为了找到一个合适的程序结构,测试了几种不同的方式,最后选定了Navigation方式。
每个IPhone程序拥有一个Window和多个View,Windows可以理解为就是这个屏幕,Window上必须要放一个View才能显示内容给用户。程序启动的时候调用一个程序级的Delegate,打开这个Window并加载一个View。
一个View由一个ViewController来实现其功能代码,而View的界面如果你愿意的话也可以完全用代码来生成,每个控件都是View,都可以在初始化的时候确定自己的起始位置和大小,用代码来生成和显示也没问题,但是通常更合适的方式是用一个xib文件,该文件可以使用Interface Builder来构造,就像VB一样拖放控件。
所有需要同控件调用的方法,比如需要指定给按钮的方法,或者文本框里的事件需要执行的函数等等,都需要先在ViewController类里面声明为IBAction返回值的方法,然后通过在Interface Builder里面按住控件的事件名拖到Controller所属的First Owner上然后选定那个方法来建立关联。
所有需要用代码来修改其属性或调用其方法的控件,比如要启用禁用的按钮,要取值的文本框,都需要先在ViewController类里面声明IBOutlet类型的变量,然后按住Control键把First owner拖到控件上再选这个变量来给变量和文本框建立关联,然后你在代码中操作的这个变量,就是实际的这个文本框了。
《IPhone开发基础教程》这本书作为入门非常不错,可是它缺少很多高级内容,不能作为参考书,这个时候就需要这一本了《The iPhone Developer’s Cookbook-Building Applications with the iPhone SDK》,里面有许多高级用法,甚至SDK文档里没有提到过的隐藏内容。
开发过程中遇到了相当多的问题,幸亏还有Google。即使如此,仍然走了相当多的弯路。比如为了在Navigation顶部的导航栏右边加两个按钮,花了半天的时间,最后还是放弃了。始终没有办法做到彩信软件SwirlyMMS阅读界面上那个按钮效果,一开始用自定义View,放入两个按钮,再把这个View指定为rightButtonItem的CustomView,按钮是成功的放上去了,但是按钮是平板样式,跟左边的工具栏按钮的样式大相径庭。后来使用一个Toolbar,加上按钮,按钮的样式倒是正常了,但是这个Toolbar怎么也无法放到rightButtonItem那个位置,一放上去,Toolbar就占到最左边,而不是最右边,最后只能把Toolbar放到Title的位置,结果就无法显示Title了,而且Toolbar的顶部边框跟NavigationBar的边框不一样,有一条很明显的线,cookbook的教程里的图片也有这个问题。最后还是放弃了,在最下面又加了一条单独的Toolbar。还有为了播放声音,也搞了几个小时,用SoundServices库代码很简单,结果播放没声音,就是出现一点点的噪音,后来换了AVAudio库,还是只放一点点噪音。还以为是声音文件的问题,结果换了Windows自带的声音进去也不行。最后才发现是因为声音播放的代码是非独占的,刚刚开始播放就走到了下面一行release上,结果就停止了。改成全局变量搞定。
这个release在Object C里面是个很头疼的问题,当我程序出现了一个EXC_BAD_ACCESS的错误的时候,根本无从定位错误的位置,虽然知道是由于过度release造成的,但是要在众多代码中找出哪个变量是不应该release的,着实费了些功夫。
另外,程序比较大(数据库比较大,程序其实是很小的),每次放到真机上测试都要花很多时间,建议开发过程中还是使用一个特殊的数据库,弄小一点,发布的时候再换成正常的。大部分情况下用模拟器测试就够了,但是,模拟器不能发声,因为我的MAC是虚拟机。
编译出来的程序是个后缀名为.app的文件夹,在Mac下会自动识别为程序,双击会提示平台不对,不能运行,但是拿到Windows下就是个普通的文件夹。把这个app目录拖到ITunes上会自动生成一个IPA,但是这个IPA在ITunes里没图标。要做成有图标的,还得手动处理,把这个app目录放到一个Payload目录下,在Payload所在的目录放一个iTunesArtwork的文件,这个文件就是一个jpg图标,文件名改成这个就行,没有后缀。然后把这个文件和Payload目录一起压缩成zip文件,再把zip后缀改成ipa就可以了,双击就会加载到iTunes,点同步就可以安装到手机上。Apple居然不提供一个方便一点的打包工具。
基本上感受就是这些了,连续开发了几天,也在威锋上连续发布了几个大版本,程序还算比较受欢迎,等明天去申请个开发者账号,放到程序商店里看看。
1、如果你有自己的Mac电脑,跳过这一步。如果没有,可以去下载这个:http://www.verycd.com/topics/2746139/,是个vmware镜像,非常完美,安装上vmware,解压就可以运行,速度不错(硬件当然要够,可以上网)。不过似乎AMD的CPU不行,如果你用的是AMD的,就别浪费带宽了。
2、启动进去以后就想办法去下载SDK,官方的下载速度还不错,用迅雷两个小时就搞定了,想办法传到Mac里面去(我是在windows里建了个serv-u的FTP,在Mac里面用ftp命令上传下载东西,很方便,以后要经常用到)。
3、安装SDK,双击下载的dmg包,自动加载成磁盘镜像,双击里面的安装文件自动安装好,然后打开磁盘目录,到/Develop的目录下去运行xcode,能启动就算成功了。
4、你需要一本好书,《IPhone开发基础教程》这本书是一定要买的,讲解非常细致,适合我们这种从来没有接触过Mac开发的人,每一步细节都没有省略,绝对不会出现按照书上的步骤操作完却发现结果跟书上不一致的情况。虽然翻译的有个别不到位,但是整体翻译水平是可以得80分以上的。我也没必要把里面的教程再在这里写一遍,写的也没人家好。这本书上有些高级的内容没必要一次看完,什么时候用到什么时候看就可以了。
5、你还需要知道Object C的语法跟其它语言的不同,如果你一门语言也不会,那还是从头学C语言去吧。如果你已经用过其它编程语言,看看这本就够了。http://www.weiphone.com/viewthread.php?tid=149737
6、万事俱备,可以开始动手了。照书上的课程练习几章,打打代码,写两个程序在模拟器里跑起来。
7、需要构思自己想要开发的程序的架构,分几个界面(View),界面间怎样相互调用,每个界面上放什么,然后找一章类似的教程,照着做,加入自己的内容就行了。
8、编译完成测试通过,想放到IPhone上去运行,还需要个证书,当然现在是不太可能去花99美元买一个了,成熟了再买也不迟。照这个做:http://www.weiphone.com/thread-222380-1-3.html,自己做个证书,添加到Project setting和info.plist里面去,再编译成IPhone平台版本就可以用了。(这哥们的第四篇文章我照做都没有成功,不知道哪一步写的有问题)。
至此,你的第一个程序就可以发布出去见人了。


近期评论