【问题标题】:Java single code base for desktop and mobile适用于桌面和移动设备的 Java 单一代码库
【发布时间】:2016-12-19 05:56:31
【问题描述】:

是否有一种或几种基于 java 的技术可以帮助我编写一次应用程序代码库(包括 Logic-Views-Controllers),然后编译并运行它 所有平台,包括主要的桌面和移动操作系统以及 在浏览器中。它也必须在离线模式下工作和保存,以便在连接到互联网后立即与远程服务器同步。对我来说,如果我使用某种 html/css/js 技术来处理此类应用程序的视图,似乎必须有一种方法,因为我不需要花哨的操作系统相关视图技术,以及用于逻辑和控制器的 java。到目前为止,我发现 Oracle ADF Mobile 似乎是商业的、eclipse RAP、eclipse scout ...。但我也在寻找涵盖桌面的东西。另外,如果我可以让应用程序只在网络浏览器中运行,以防它在离线模式下运行和保存,对我来说就足够了。

【问题讨论】:

    标签: java desktop-application mobile-application offline-mode eclipse-scout


    【解决方案1】:

    您可以使用 Eclipse Scout 进行以下设置/限制:

    • 自 2016 年 6 月以来,Scout 仅支持 Web UI(直到 2015 年,Scout 还支持 Swing/SWT,但现在已经不支持了)
    • 您需要在本地 Tomcat 中运行 Scout 前端模型部分 或类似的
    • 您需要添加同步代码以连接 Scout 前端 带有 Scout 后端的模型(一旦客户端安装上线,它将同步数据)

    要求结合 Java 的移动解决方案很可能会让您陷入混乱,尤其是使用 discontinuation of RoboVM

    提示:Scout 团队已开始研究 Scout UI 的 JS 离线功能。然而,这距离生产质量还有好几个月的时间(许多部件/概念仍然缺失,并非所有部件都是开源的,没有文档等)

    另外:Eclipse RAP 也有同样的限制(需要前端服务器,只能基于 Web,提示:设计说唱应用程序很难)。

    【讨论】:

    • 我只是想知道为什么我们没有机会在 JSF/Facelets 之类的 JavaFX 等技术中使用我们在 Web 中使用的相同 html/css/js。我也想知道如果你不能在 ios 上运行 java,为什么它被称为可移植的。这么多奇迹......
    • 能否请你投票赞成这个问题,因为他们禁止我提问谢谢。
    【解决方案2】:

    寻找灵丹妙药...请注意,“不关心某事”(操作系统)会让您非常关心执行“肮脏工作”的框架。

    抛开意见不谈,在 2016 年你会用 JavaScript 更快地实现你的目标,它已成为唯一支持的东西。
    如果您对 JS 没问题,并且使用异构/不太成熟的工具生活在最前沿(参见 NPM gate),这可能是一笔不错的交易。

    浏览器(小程序)中的 Java 是 dying soon,因为它的 well documented security issues。有人可能会说它已经死了很长时间。

    如果您只想用 Java 编写代码,GWT 仍然有效。它将您的 Java 代码编译成高效的 JavaScript。
    然而,自从谷歌通过将项目交给指导委员会来减少参与后,开发速度急剧放缓,我什至不确定它们是否与 JDK 8 保持同步。
    Google 仍然在收件箱等项目中使用 GWT,这是物有所值的。

    【讨论】:

    • 问题在于 javascript,即使在模块化节点 js 的引擎盖下,它的可维护性和可读性也较差。它变化如此频繁,团队中的其他开发人员可能会造成如此大的损害。我不能依赖javascript。但是你见过vaadin吗?你怎么看呢 ?它的 touchkit 是免费的吗?
    • 我已经与 GWT 合作多年,但实际上从未比 Vaadin 的“Hello worlds”更进一步。他们做了很多广告并且多年来一直提供商业支持,并且他们的文档非常完整。我谦虚地建议您在技术上发表自己的意见,因为我只能说该公司是可靠的。仅供参考,尽管他们正在慢慢“远离” GWT,但我在 2016 年 1 月左右在柏林看到的 Vaadin 人试图改变“Vaadin 只是 GWT”的看法。
    • Vaadin 提供 offline mode 。但我实际上不明白它是否免费。我不知道 Oracle ADF 移动版是否也可以免费使用。
    • 能否请你投票赞成这个问题,因为他们禁止我提问谢谢。
    【解决方案3】:

    我会选择 GWT。

    Google 也将其用于收件箱 web 应用程序和收件箱 android 应用程序等项目。使用 GWT 可以在两个应用程序之间共享大量代码。

    也可以编译成windows桌面应用程序。

    【讨论】:

    • GWT 似乎还可以。但是我可以轻松处理离线代码吗?
    • GWT 只是编译为 JS,因此在处理失去连接或使用 local storage 的方式上没有区别。
    • @MichaelTecourt 我可以将 GWT 与 JSF/Facelets 一起使用吗?
    • 如果你喜欢 JSF 是的,就像我说的,你可以在任何使用 JavaScript 的地方使用 GWT。
    • @MichaelTecourt 请你投票赞成这个问题,因为他们禁止我提问谢谢。
    猜你喜欢
    • 2016-02-19
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    相关资源
    最近更新 更多