2010 Aug 21

A Truth about Mobile App Dev

最近要做一个产品的DEMO,身为前端开发的我干起了Android开发。之前在iphone上写过一些WebApp,所以任务下来的时候没有任何迟疑,心想做手机的应用应该都差不多吧⋯⋯

开发Android要有耐心⋯⋯

我从下载Android的Eclipse插件的那一刻我就后悔了⋯⋯由于考虑到可能要改变设备,我就义无反顾的选择了PhoneGap。看到版本是0.9,我心就凉了一截,但是实在无奈,因为这个产品的Prototype很有可能马上转向iPhone上,到时候重写代码那就悲剧了。

ADT, aka. Android Development Tool

这个完全继承了Eclipse插件的特点:莫名其妙的这么多安装选项、复杂的安装顺序——Dependency和Version的问题安装程序你不能自己判断么?好吧,这个不怪Google了。

经过了漫长的Download,终于进入了Eclipse ADT环境。话说有个AVD管理程序,可以添加虚拟设备。好吧,就是模拟器吧⋯⋯神啊,Android原来有这么多个版本,还有这么多选项。

启动试试,我在工作站上竟然等了快1分钟,这个模拟器连真机的启动速度都模拟了,NB!

对比一下iPhone官方的模拟器的选项和那瞬间启动速度⋯⋯

之后写了个HelloWorld,进行了一下调试,找了台Xperia 10i来做了下真机调试。由于以前写Java的时候用Eclipse,所以调试和发布阶段我都还算熟悉⋯⋯

Windows is a hell for developers!

假定你熟悉Eclipse,如果你第一次接触Android,完成“之后写了个HelloWorld,进行了一下调试,找了台Xperia 10i来做了下真机调试。”这句话的内容也是个巨大的困难。在Mac下完成你可能需要1个小时,而在Windows上你很可能需要一天——我如同找虐一般在Windows和Mac两个环境下完成了PhoneGap的HelloWorld,得出了这个结论。

PhoneGap需要Ruby、ApacheAnt、JDK、Android SDK。除了最后一个,前三个Mac自带⋯⋯汗,就算没有也可以用无敌的port命令在线安装。

Github?!好吧,Windows的Github也有,就是蹩脚一些,没办法,要不然你没办法clone别人的代码啊。

而Windows就悲剧了。Ruby的安装就会难死一排人,假设你幸运的发现有个Ruby Installer可以减轻你的痛苦。接下来的PATH配置依旧会让你疯狂。

我发誓我诸如ANT_HOME, JAVA_HOME, ANDROID_HOME全部配置正确,PATH变量下面也是对的。但是运行那个初始化工程的ruby脚本就是报错。在经过排列组合PATH的内容后,问题莫名奇妙的解决了⋯⋯

而iPhone的开发呢?安装一个XCode就完事了,整个生命周期都是在Xcode里面跑的⋯⋯潇洒的iPhone开发者们,我羡慕你们啊~

Google想干嘛?

我这次是用PhoneGap开发的Android程序,没有碰任何java代码。其实Apple Dashcode本身就支持这样的开发,只是Mobile Safari缺乏对手机硬件层的访问。PhoneGap在iPhone上就是套了这样一个支持硬件访问的外壳。

而Android上,如此复杂的开发模式如果不用PhoneGap,对开发者的要求就非常高。

个人认为手机平台是一个将设计师和程序员的界限模糊的地方。而Google Android平台有浓重的程序开发成分,根本就是将那些想尝试开发手机应用的设计师完全挡在门外。

转眼看iPhone,程序员可以用Cocoa(Cocoa和java在移动平台GUI开发就根本没有可比性,java被秒杀)写强大的iPhone应用;不喜欢用Cocoa的开发者可以选择用Dashcode或其他编辑器写HTML5的WebApp,一样可以部署在iPhone上面。套一层PhoneGap就可以达到和Cocoa程序类似的级别。

最大的有点是,XCode和Dashcode都比Eclipse好用N倍——没有令人迷惑的安装、插件以及快速的模拟器,有的只有给程序员的高效、易用的界面。

从开发者的软件来看,Google就传达了一个差劲的用户体验标准。用这么稀烂的工具还指望能做出比iPhone上的应用更好的程序么?

另一方面,在Windows上做Mobile开发(可能对所有开发都是这样?)就是一个灾难,果断放弃Windows,选择Mac或者Linux吧!

2 Comments

  1. wewe
    Posted November 1, 2010 at 3:32 pm | Permalink

    在windows平台装了Ruby,执行脚本命令ruby driodgap会报错
    fileutils.rb in “copy” unkonwn file type[www],有碰到过吗?

  2. Posted November 4, 2010 at 2:31 pm | Permalink

    www是一个已存在的文件夹~
    然后里面要有index.html
    这个位置给的是相对路径~
    如果按照官方helloworld做的话,就是引用了phonegap自带的那个测试程序的www目录~即在那个编译命令里面,直接写“www”

Post a Comment

Your email is never shared. Required fields are marked *

*
*