代码之家  ›  专栏  ›  技术社区  ›  Ankur Gupta

C++/QT与Adobe Air [关闭]

  •  14
  • Ankur Gupta  · 技术社区  · 16 年前

    我必须为我们的产品选择一个平台。我必须在qt框架和Adobe的Air之间做出决定。我精通qt,因为我在过去两年里一直在工作。我查阅了Adobe的网站,但所有有关flex、flash、HTML/actionscript编码能力的信息都令人费解。我无法理解下面关于Adobe生态系统的内容。

    我对Adobe Air有以下问题:

    1. 我用什么语言来编码我的应用程序?(不只是定义UI的外观)
      像QT一样,我使用C++。是ActionScript吗?

    2. 我们能说Air只用于为应用程序制作用户界面吗?

    3. 公共设施类的医生和空气在哪里?
      例如 http://qt-project.org/doc/ QT

    4. Qt附带了一组可以使用的预制小部件。Adobe是否附带了这样的小部件集,如果有的话,我可以在URL中看到它?

    5. 我理解flex-sdk是开源的。我可以制作商业应用程序并发货吗?flex sdk是否提供所有东西(编译器、实用程序类/小部件)

    6. 许可证方面的机票费用是多少?

    7. 空气中有什么东西相当于qt的qgraphicsView吗?

    7 回复  |  直到 10 年前
        1
  •  11
  •   taudep    16 年前

    如果您需要访问许多本机库,那么就需要保持在Qt环境中。请记住,Air是单线程的,运行在Flash播放器上(最初是为基于帧的动画设计的)。 但是,根据您正在构建的应用程序的样式,Air可能非常适合您。

    注意,air可能会让人困惑,因为创建air应用程序有几种不同的开发路径:1)使用HTML/javascript和air sdk,2)使用flash/actionscript,3)使用flex sdk和/或flex builder。最后一个是从传统桌面开发背景来看最有能力的。

    用于连接到Web服务的Web2.0小型应用程序是空中应用程序的理想选择。像IM客户Digsby这样的东西会很好。到目前为止,我最喜欢的Air应用程序是Basamiq原型。其他有用的应用程序是tweetdeck。这些都是很好的例子类型的事情,很适合解决与空气。

    您应该访问Adobe Showcase并查看一些应用程序: http://www.adobe.com/products/air/showcase/

    另外,如果你想从C++游戏中脱身,我相信QT现在有一些Java绑定……我还记得一些Python绑定,但是我自己从来没有看过。

    就qgraphicsView而言,人们在flex中做过类似的事情。我现在试着用谷歌搜索,但一开始找不到,但人们拍了一张大图片,然后只在窗口中显示当前区域。另外,在下一个版本的flex中,它们可以准确地构建一个官方的视区组件:
    http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Viewport

        2
  •  5
  •   RogerV    16 年前

    花一些时间与这个空气应用程序,然后问问自己,Adobe Flex和Air是否值得投资你的时间掌握(准备好问自己为什么一些比较不存在的喜欢的C++/QT):

    Tour de Flex

    Tour de Flex是一个桌面应用程序 用于探索灵活功能和 资源,包括核心灵活性 组件、Adobe Air和数据 集成,以及各种 第三方组件、效果, 皮肤等等。

    您的一些问题:

    • flex可以用mxml和 动作脚本3。空气附加 支持HTML/DOM/javascript 作为WebKit HTML呈现引擎的编程内置于 空气运行时间。
    • MXML是一个XML声明性DSL, 编译为ActionScript3 命令式代码。很好, 但是,对于声明性编码 用户界面的图形形式(即 MVC模式的视图)。
    • 动作脚本3有一个治疗方法,就是 基于javascript,但它 更能体现这一点 类似于Java或C语言。它有包装 命名空间、类和接口 具有继承,类成员 访问保护关键字, 构造函数、静态成员和 一些非常好的Java添加: 属性、事件、数据绑定, 和关闭。

    flex风格的编程也是一个单线程模型,它依赖于异步I/O交互。这是一个比多线程JAVA Swing或C.Y..NET WiFrm应用程序更简单的程序,但是允许实现相同的程序行为的净结果。我在这里详细阐述:

    Flex Async I/O vs Java and C# Explicit Threading

        3
  •  4
  •   Pieter    16 年前

    flex是开源的,你可以免费下载sdk,没有相关的许可费用。(见他们的 FAQ )

    他们确实提供了一个“flex builder”,我认为这是一个定制的Eclipse,而且成本很高,但是如果没有它,你可以完美地工作。

    文档可在 adobe's livedoc 页。(哪个) to some ,这本身就是不喜欢Adobe的充分理由;)

    我很想知道,如果你精通qt,为什么还要考虑别的事情呢?你希望空气比QT给你带来哪些好处?

    我对qt和flex都有一些经验,但还不足以衡量两者的重量。我知道Qt/C++比Flex/ActionScript更成熟,更成熟。

    如果你已经知道qt,我认为花在学习一个新框架(和编程语言)上的时间不会让你有足够的时间诚实地说…

        4
  •  3
  •   user15899    16 年前

    我已经使用了qt和flex(虽然没有太多的空气本身),并且发现flex在启动、运行和修改应用程序方面更快,而qt提供了更多的控制——特别是在安装程序中。Air应用程序安装程序相当笨拙,或者至少在我尝试它的时候是这样,尽管从那时起它可能已经改进了。

    air的最大优点是它的大部分代码可以在网页内的flash中运行。出于安全原因,您无法从Web访问本地文件系统等,但几乎所有其他内容都是可移植的。

        5
  •  2
  •   dnc    14 年前

    我做了相反的动作。我开始研究Adobe的东西,搬到了Qt。这样做的主要原因是由于Adobe框架的限制。当你使用Adobe的东西时,你被限制在他们所生产的工具上,如果你不能用Adobe的东西做你想做的事情,就很难引入外部框架或库。通常,这样做的解决方案是使用套接字,它在客户机-服务器体系结构上转换一个假定的“独立”应用程序。此外,如果您使用许多外部的东西,那么管理这么多不同的客户可能会很困难。 使用QT,您可以在C++中添加代码,并添加您想要的任何外部框架或库。尽管,有时它不容易编码,是可行的,没有“奇怪”的系统架构。

        6
  •  1
  •   Parker Coates    16 年前

    如果您正在寻找一些使用qt和svg的“有趣”uis的示例,请查看kdeames[1][2]和kdeedu[3][4]项目。有很多好的代码可以使用qgraphicsview和svg创建可伸缩的接口。当然要注意的是,这是GPL,所以如果你的应用程序不是GPL,那么要小心你“借”的东西。

    〔1〕 http://games.kde.org/

    〔2〕 http://websvn.kde.org/trunk/KDE/kdegames/

    〔3〕 http://edu.kde.org/

    〔4〕 http://websvn.kde.org/trunk/KDE/kdeedu/

        7
  •  0
  •   Community CDub    8 年前

    我会第二次 Pieter 他的评论——如果你已经知道Qt,那么搬到一个全新的环境需要更长的时间。

    Qt具有跨平台和非常成熟的优势:有Windows、Linux和Mac OS X的库。我对Air并不十分熟悉,只知道它来自Adobe,但产品站点似乎表明它适用于丰富的互联网应用程序。( http://www.adobe.com/products/air/ )如果这是真的,那么如果您正在开发桌面应用程序,qt将是更好的选择。

    推荐文章