【问题标题】:GWT & MVP in order to deliver BOTH Native (Android+ObjC) & HTML5 Mobile Apps?GWT 和 MVP 以提供原生 (Android+ObjC) 和 HTML5 移动应用程序?
【发布时间】:2012-12-05 09:20:07
【问题描述】:

因此,GWT 最佳实践鼓励人们使用某种形式的 MVP,理论上这应该允许人们在共享演示者业务逻辑的同时编写不同的本机视图。

这似乎是 GWT 衍生出的 Google 项目 http://code.google.com/p/j2objc/ 的核心,该项目将您的代码的非 UI 部分转换为 Objective-C,允许您在 Objective-C 中本地编写其余部分。

所以我的问题是:如果这个难题的这个真正困难的部分得到解决,那么在这个 MVP 管道中包含一个 HTML5 移动库(如 MGWT 或 Touch4j [Sencha])有多难世界上最好的?

在涉足 http://code.google.com/p/playn/ 之后,这显然是拥有跨平台构建系统(原生 android & html5 & java &...)的蓝图,但该项目适用于单屏绘图和用于游戏动态的事件循环,并且不允许键盘输入和其他典型的移动设备。

如果解决了这么多问题,就不可能再多努力了,这似乎是一种耻辱。这个问题的答案将是实施解决方案的最佳计划,包括选择哪种 MVP 结构以简化各种小部件库(GWTP 与 MVP 2.1)的适应,以及最好的方法是否从PlayN 代码库,并开始破解它.. 有什么陷阱?或者,如果选择了另一条路径,为什么选择那条?为什么它会是最好的??

非常感谢。 :-)

【问题讨论】:

  • +1 提问。您能否在标题和问题中突出显示您的目标 C 要求。它可能会得到更广泛的关注。也可以用这些技术标记它。 stackoverflow中有一个playn标签。
  • 我已经开始编写解决方案了。观看这个空间:-)

标签: objective-c gwt mobile mvp playn


【解决方案1】:

尚不清楚您的问题是 - 多平台应用程序开发或 mvp 的评估选项。

您可以评估与 Sencha 和 GWT 一起使用的其他技术

1) 毫克重量 2) 钛 3)电话间隙

您也可以参考-Creating a mobile app using Google App Engine and GWT?

注意:你提到的PlayN更多是游戏平台,不适合商业应用。

【讨论】:

  • 我熟悉您发布的所有技术,除了 AppCelerator (Titanium) 更适用于纯 javascript 并且不清楚它是否易于与 GWT 一起使用。我想要一个单一业务代码库的策略,一方面输出 Sencha/PhoneGap/MGWT(正如你提到的)......但另一方面也是输出 Objective-C 和 Native Android 的途径。请重新阅读问题。查看 j2objc,了解 MVP 如何成为其多平台交付战略的核心。
  • 关于利用 PlayN。我意识到 playN 中的 eventloop 不可用......但是,maven 项目结构是一个很好的起点,因为默认情况下它编译 HTML5 版本、Android 版本、Flash 版本和 vanila Java 版本(甚至测试目标-C 版本)。这种构建结构正是我希望用于一般移动应用程序开发的......并且抛弃了游戏/画布/声音部分。
  • 从本质上讲,您可能会将其分叉出来 :) 。如果谷歌搜索成功,那么开创性的就不会产生任何这样的解决方案。
  • 谢谢!我很高兴你现在明白了 :-) 我真的很喜欢这个想法,而且它看起来并不那么复杂,尽管存在一些问题。 MVP 是关键,因为 playN 默认是一个 java 库,在所有目标平台上的使用方式完全相同。想出一个通用的 wxWindows 小部件样式包装库太难了,而且可能是有限的,所以一个基于代码的业务逻辑策略和重写“愚蠢”视图似乎是可以实现的。选择 MVP 细节是关键,因为它必须适用于所有目标平台(即地点/活动等)。
【解决方案2】:

MVP 绝对是可行的……有时您可能会觉得它的工作量很大,但最终还是有回报的。查看使用 MVP 编写的 Touch4j Kitchen Sink。如果你愿意,你可以用 Cordova 把它带到设备上。代码在 GitHub 上:

https://github.com/emitrom/touch4jks

该 repo 正在积极开发中(我们正在将自己更新到 Touch4j 4.0),因此它不会用完大门,但至少您可以看到并遵循该模型 :-)

Titanium4j 之于 Appcelerator 的 Titanium 就像 Touch4j 之于 Sencha Touch。您可能也想检查一下。 Titanium4j 和 Touch4j 依赖于 GWT。

干杯。

【讨论】:

  • 我将使用 GWTP 的 MVP 模型,因为它支持代码拆分开箱即用,具有更简单的位置管理,支持分层呈现器并大量使用依赖注入。 Touch4j 看起来与 MGWT 非常相似。无论如何,谢谢您的意见。
猜你喜欢
  • 2014-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多