【问题标题】:Cross platform non-browser development for tablet PCs?平板电脑的跨平台非浏览器开发?
【发布时间】:2011-07-27 09:17:43
【问题描述】:

我必须为 Ipad 开发一个应用程序。它必须是非基于浏览器的。这是一个要求,我无法更改。

我认为该应用很可能在其他类型的平板电脑上也很有用,并且很有可能推出第二款至少需要 iPad 和 Android 的应用; Windows 和 Linux 也很有用。

如果有任何区别,这些是平板电脑的“桌面”应用程序,预计不会有任何手机开发。

是否存在跨平台桌面应用程序开发的“大统一理论”?有没有好的IDE,最好是FOSS?我宁愿编写 C++ 或 Java 代码,不太热衷于 Ruby 或 Python(由于缺乏经验),但如果没有其他选择,我会接受。

我需要一个 GUI 构建器,比如 Borland Delphi 或 MSVC 或 Eclipse Android 插件,并且我需要一种在不同平台上执行不同代码的方法(#ifdef Android ... 等)

任何想法,或者我应该继续为 Ipad 编写当前项目,并坚持使用基于浏览器的 HTML5 + CSS3 和 Jquery/Ajax 用于跨平台应用程序(问题是有些需要执行本机系统调用,就像加密/解密文件一样,如果有这样的互联网访问,至少一个应用程序必须在“本地模式”下工作,所以我想如果我基于浏览器(按顺序)我必须捆绑一个 Web 服务器(Apache)提供网页),这对于“桌面应用程序”来说是不必要的。

有推荐的 IDE 和网站吗?图书?谢谢

【问题讨论】:

    标签: android ipad ide cross-platform tablet


    【解决方案1】:

    你应该看看 jQuery Mobile。我用它在 Android 和 Playbook 之间进行交叉开发。我知道它也适用于 iOS。

    也许对你来说缺点是你必须用 JavaScript 编程。

    【讨论】:

      【解决方案2】:

      “大一统论”是核心业务逻辑应该驻留在云端;这允许您的 iOS 和 Android 实现只是这个共享逻辑之上的一个瘦 GUI。不幸的是,实际上并没有一种方法可以重用 GUI,即使你这样做了,它也会违背用户在一个或两个平台上的直觉,因为你不会使用这些特定平台的范例。

      Google App Engine 提供了一种在 Google 的云计算基础架构之上以合理的成本在 Java 中实现核心业务逻辑的方法(开发是免费的,成本与使用量成正比,并且可以设置愿意的上限支付)。有一个用于开发 App Engine 应用程序的 Eclipse 插件。在为 Android 开发时,您同样希望使用 Eclipse(有一个专门用于 Android 开发的插件),尽管 Android SDK 可以仅从命令行使用(这对于设置连续构建和测试系统很有用)。

      对于 iOS,您需要使用标准 Xcode 和 iOS SDK。 Xcode 是一个 IDE,但可以使用xcodebuild 命令直接从命令行构建 Xcode 项目(也适用于持续构建)。 iOS 应用程序的标准语言是 Objective-C。

      【讨论】:

      • 我会在这方面给你 +1,但不同意(以非协商的方式)。有些事情我没有说,因为我认为它们无关紧要。一个是互联网访问将通过非常昂贵的卫星链接,所以我想 D/L 数据并在本地处理它 - 云已经出来,但你不知道。不过,我不同意你关于 GUI 的说法;看看使用本机小部件的 Java、Qt 等......无论如何,非常感谢您花时间回复。
      • 即使存在跨平台 GUI 工具包,您的应用也需要在 Android 和 iOS 上以完全不同的方式呈现自己,以便这些平台的用户将其视为“原生”。两组用户都期望某些 UI 约定和平台集成在通用 UI 工具包中不易抽象。
      • 我会给你 +1 的时间来写。你能向我解释一下你的意思吗 - 小部件以外的东西? Java、Qt 等呢?如果前面有问题,我很想理解它,但仍然不理解,尽管你已经失去了一个迈克尔;我怀疑我错过了什么
      • @Mawg,即使使用 Java(在桌面上),也需要两种不同的虚拟机实现来抽象出平台差异(即使这样,如果没有 Java 应用程序,也不一定会感觉完全原生一些特定于平台的调整)。但是,iOS 不支持任何类型的 VM。您只能在 Objective-C 中对其进行编程。 Android 确实支持 C++ 开发(虽然 Java 是编写 Android 应用程序的标准方式,除非你正在实现游戏),但 API 与 iOS 完全不同,所以你可以直接重用的唯一代码是 C 或 C++ 模型代码。
      • ...视图仍然需要为两者完全重写。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 2016-06-17
      • 1970-01-01
      • 2016-06-18
      • 2012-05-17
      相关资源
      最近更新 更多