有什么不错的环境可以开发一款跨平台又靠谱的app? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sdjl
V2EX    iPhone

有什么不错的环境可以开发一款跨平台又靠谱的app?

  •  
  •   sdjl 2012-04-04 18:14:59 +08:00 20085 次点击
    这是一个创建于 5017 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请问, 如果要做一款质量不错的app(体验, 性能, 稳定), 需要在ios和android上都可以很好的运行, 有什么不错的解决方案?

    再问, sencha monotouch titanium 这些东西靠谱么? 他们的优缺点各是什么?

    主要是从节约开发时间的角度来考虑, 但是又必须保证开发出来的app质量高, 这个app会在短时间内有上万用户使用的(如果你有兴趣, 也可以给我们发邮件, 外包合作的方式).
    47 条回复    1970-01-01 08:00:00 +08:00
    gonghao
        1
    gonghao  
       2012-04-04 18:16:45 +08:00
    难道不是 PhoneGap,虽然没用过,但是最近比较火的就是这货哦~
    http://phonegap.com/
    sdjl
        2
    sdjl  
    OP
       2012-04-04 18:17:44 +08:00
    听说了 但是听说这个东西是封web的, 体验上不够快, 是么
    @gonghao
    ohdarling
        3
    ohdarling  
       2012-04-04 18:23:59 +08:00
    可以考虑 Titanium。

    MonoTouch 需要 $399 的授权,Titanium 是免费的。PhoneGap 本身需要结合 Sencha Touch、jQTouch 或者 jQuery Mobile 使用,PhoneGap 只封装了 API,没有界面。

    Titanium 会映射成本地代码控件,性能更好一些。

    如果没有熟悉 Titanium 的人,并且已经有 iOS 和 Android 开发的话,还是推荐直接开发原生的。
    smallcolor
        4
    smallcolor  
       2012-04-04 18:24:14 +08:00 via iPhone
    一款app既要在iOS又要在Android上同时运行,那只能是web app咯;但是又要求时间短质量高,根据以往的经验,那就必须是开发两套,各自系统的原生app.
    gonghao
        5
    gonghao  
       2012-04-04 18:25:02 +08:00
    但是目前来看,最快的跨平台解决方案就是 Web,不过 PhoneGap 的体验肯定是要由于普通 Web 的~关键还是看需求和成本了~
    sdjl
        6
    sdjl  
    OP
       2012-04-04 18:30:32 +08:00
    @ohdarling Titanium 会映射成本地代码控件,性能更好一些 可以理解为性能上能够和原生开发聘美吗? 听说titanium是用js来写? 是只用js就可以么?

    既没有熟悉Titanium的人, 也没有app的开发经验... 只有web的~~
    sdjl
        7
    sdjl  
    OP
       2012-04-04 18:31:17 +08:00
    对了 我的邮箱是 sjllyh#gmail.com
    sdjl
        8
    sdjl  
    OP
       2012-04-04 18:31:59 +08:00
    @smallcolor 质量高是优先考虑的
    eickegao
        9
    eickegao  
       2012-04-04 18:53:30 +08:00
    monotouch可以。其他的用web技术实现的跨平台都有这样或者那样的问题。

    比如如果你要做比较复杂的需要同步通讯等功能的APP,用web技术就比较难实现。

    用monotouch的好处就是基本上面native app可以实现的功能,它都可以实现。
    leiv
        10
    leiv  
       2012-04-04 19:04:27 +08:00
    Adobe air可以,不用Flex框架单纯的用AS写效率很不错的。开发工具也很完善。我之前用它写了一个ios的应用,性能完全可以接受的。
    Semon
        11
    Semon  
       2012-04-04 19:07:57 +08:00
    Titanium Mobile +1
    代码效率比PhoneGap高很多,强烈推荐
    sdjl
        12
    sdjl  
    OP
       2012-04-04 19:09:48 +08:00
    @leiv 谢谢, flash的暂时不考虑, 主要是我们对flash的方面的东西不了解
    sdjl
        13
    sdjl  
    OP
       2012-04-04 19:10:27 +08:00
    @Semon 谢谢, 那么比起原生的写法, 有哪些缺点呢?
    sdjl
        14
    sdjl  
    OP
       2012-04-04 19:13:04 +08:00
    @eickegao 是的, 其实我的一个主要问题就是这些frame是不是都或多或少有些这样那样的问题.

    monotouch 是用c#写的么?
    eickegao
        15
    eickegao  
       2012-04-04 19:17:56 +08:00
    monotouch是C#的。monodroid也是。其实就是C#
    调用原生API。
    eickegao
        16
    eickegao  
       2012-04-04 19:20:11 +08:00
    另外还有一种跨平台方式。就是把逻辑层放在C++里面实现。

    ios是OBJ-c加上C++
    android是JAVA加上JNI和C++

    这样也可以同样跨平台
    eickegao
        17
    eickegao  
       2012-04-04 19:24:54 +08:00
    进一步扩展刚才的话题,我实现过一个项目。C++层使用POCO等基本类库,比如HTTP啥的,

    取得的结果以CALLBACK方式返回OBJ-C

    在ANDROID里面以CALLBACK方式返回JNI层。然后JAVA再调用JNI。

    这样做的好处是所有程序都是原生程序。但是同用一个逻辑层代码,你所需要单独实现的代码就是UI界面,但是比较MONOTOUCH和这种方式,我个人更推荐MONOTOUCH。

    因为我用MONOTOUCH也实现过类似的功能,节省的代码和时间是相当可观的。
    ohdarling
        18
    ohdarling  
       2012-04-04 20:28:32 +08:00
    @sdjl 性能上比 PhoneGap 这样的 WebApp 好,但是比 Native App 差。如果只有 Web 开发的话,可以优化一下 Web App,不是密集计算类型的 App 的话,Web App 的表现也可以接受。
    ohdarling
        19
    ohdarling  
       2012-04-04 20:31:51 +08:00
    @sdjl Titanium Mobile 是用 JS 来写的,没有 HTML,控件样式可以用一部分 CSS。
    sdjl
        20
    sdjl  
    OP
       2012-04-04 20:53:56 +08:00
    @eickegao 谢谢回复, 我倒是用过一段时间c#, 不过已经不想用windows来开发了, 现在主要用python 如果是我自己开发的话可能比较先考虑脚本语言, 不过如果是交给别人开发的话可以考虑这个方案 主要是找到合适的人了
    sdjl
        21
    sdjl  
    OP
       2012-04-04 20:54:54 +08:00
    @ohdarling 主要是web app每次都要请求html, 这样感觉会比较慢, 这方面有没有好的解决办法??
    sdjl
        22
    sdjl  
    OP
       2012-04-04 20:57:20 +08:00
    @Semon 你邮箱多少啊? 问点问题
    Semon
        23
    Semon  
       2012-04-04 21:43:00 +08:00
    @sdjl Ti是拿JS写,然后通过引擎port到原生代码,所以基本上还是属于半原生的,所以效率上很好
    我的邮箱semonxue#gmail.com
    ohdarling
        24
    ohdarling  
       2012-04-04 23:58:42 +08:00
    @sdjl Web App 也可以封装成本地的,PhoneGap 就是做这个用途的,这样基本的展示样式都放本地,然后数据用 Ajax 去取。
    sdjl
        25
    sdjl  
    OP
       2012-04-05 10:43:51 +08:00
    @ohdarling 哦, 我以为就是封了后还是要不断请求html.... 原来不是啊
    ohdarling
        26
    ohdarling  
       2012-04-05 11:30:19 +08:00
    @sdjl 不是滴,不断请求的话不就是 Web App 了~
    HowardMei
        27
    HowardMei  
       2012-04-05 11:34:50 +08:00
    @sdjl python开发Mobile App?有成功的例子吗?
    Zjinys
        28
    Zjinys  
       2012-04-05 12:13:45 +08:00
    Titanium 上手很快,但个人认为适合做企业的应用开发,如果你要做一些特别的界面效果还是用OC吧。
    而且Titanium虽说是跨平台的但是你不会真愿意用它来做跨平台开发的:
    1. 代码里面需要有很多针对平台的判断
    2. 不同平台下相同的代码的表现相差太大
    3. Android下的效果很不好(可能是因为我的首选平台是iPhone)。
    sdjl
        29
    sdjl  
    OP
       2012-04-05 12:45:10 +08:00
    @HowardMei 我没有开发过mobile app, 只做过web的开发呢~~~
    sdjl
        30
    sdjl  
    OP
       2012-04-05 12:47:02 +08:00
    @Zjinys 恩 , 别人大概也是这样给我说的, 估计还是用原生的开发, 在不同的系统上都开发一套了

    谢谢各位的耐心解释, 等设计出来了我再上来吼吼
    HowardMei
        31
    HowardMei  
       2012-04-05 14:13:51 +08:00
    不知道用这个来生成多平台原生代码怎么样: http://www.haxenme.org
    http://www.haxenme.org/documentation/features/ 很拉风呢,没有它不支持的
    http://www.haxenme.org/showcase/
    unstop
        32
    unstop  
       2012-04-05 14:43:39 +08:00
    Titanium 不错,我前天尝试用它做了一个小东西,不过问题是生成的安装包文件巨大(5M+),让我不得不放弃了这个方案。
    sangwei
        33
    sangwei  
       2012-04-05 15:03:28 +08:00
    没人提到corona,完全不算一种选择吗?
    sdjl
        34
    sdjl  
    OP
       2012-04-05 20:39:00 +08:00
    @HowardMei 不知道啊 关键是要看案例~
    sdjl
        35
    sdjl  
    OP
       2012-04-05 20:39:41 +08:00
    @unstop 是么 , 如果同样的程序用原生写法, 那大概有多少k?
    sdjl
        36
    sdjl  
    OP
       2012-04-05 20:40:01 +08:00
    @sangwei 不知道啊, 这一块我就是盲...
    spark
        37
    spark  
       2012-04-05 20:58:13 +08:00 via iPhone
    看头像应该是翻东西吧
    unstop
        38
    unstop  
       2012-04-05 21:08:05 +08:00
    @sdjl 安卓应用的话,我这个小玩意儿原生的 APK 才不到100K,差不多就是几个资源加起来的大小。论坛上说这个框架打包出来就有4-5M的大小,对于开发小东西实在是不可承受之重。
    ant_sz
        39
    ant_sz  
       2012-04-05 22:02:27 +08:00
    有没有一个使用C/C++编写,使用 OpenGL 描述界面的hyber层框架呢
    sdjl
        40
    sdjl  
    OP
       2012-04-05 22:04:36 +08:00
    @spark 是的, 早期我做过翻动西 :)
    sdjl
        41
    sdjl  
    OP
       2012-04-05 22:06:11 +08:00
    @unstop 谢谢提醒, 问了许多人, 估计还是得用原生写法, 写两套~
    sdjl
        42
    sdjl  
    OP
       2012-04-05 22:06:51 +08:00
    @ant_sz 不太能理解~~
    squallsdjl
        43
    squallsdjl  
       2012-04-05 22:09:17 +08:00
    @spark @sdjl 哦也,头像是我画的~
    sdjl
        44
    sdjl  
    OP
       2012-04-05 22:10:22 +08:00
    @squallsdjl 人家一看名字就知道我们是一伙的了~~
    spark
        45
    spark  
       2012-04-06 09:16:22 +08:00
    @squallsdjl @sdjl 真是一对好基友!
    gaolinjie
        46
    gaolinjie  
       2012-04-06 10:56:36 +08:00
    可以考虑一下QT, 现在已经支持IOS和Android了,但不是官方的
    sdjl
        47
    sdjl  
    OP
       2012-04-07 10:14:54 +08:00
    @gaolinjie 恩, 估计要不了多久, 用python就可以写出效果不错的app了吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3308 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 11:02 PVG 19:02 LAX 03:02 JFK 06:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86