V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sdjl
V2EX  ›  iPhone

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

  •  
  •   sdjl · 2012-04-04 18:14:59 +08:00 · 16573 次点击
    这是一个创建于 4622 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请问, 如果要做一款质量不错的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
    对了 我的邮箱是 sdjllyh#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   ·   实用小工具   ·   2667 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 05:13 · PVG 13:13 · LAX 21:13 · JFK 00:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.