android – 关于跨平台项目中的网络语言互操作性的问题

前端之家收集整理的这篇文章主要介绍了android – 关于跨平台项目中的网络语言互操作性的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我计划在iOS,Android和AngularJS网站上创建一个应用程序.

但是,由于不必在每个应用程序上重写业务代码,我希望尽可能多地重用代码.

为了能够在任何平台上执行项目的核心,我必须使用Web语言.

通过不同的文章,我计划一个通用的架构来分离项目的业务逻辑 – 核心 – 与将为每个系统重新实现的UI(UIKit for iOS,AngularJS和Polymer for webapp等)

该体系结构的目标是尊重重要的软件工程原理,如information hiding by decomposing requirements in modules,DRYSOLID

>每个功能都将在模块中分解.
>核心:业务逻辑代码 – 可在每个平台上重复使用 – 将以库的形式表示.
>视图:将在每个不同平台上开发视图类,以使用每个平台上提出的不同UI元素.例如:用于iOS的Objective-C / Swift中的ViewController的子类或用于操作web-app的HTML的简单类.这堂课没有逻辑.它只负责:

>处理用户与业务逻辑的交互.
>显示业务逻辑中的内容

> IView:抽象操纵视图的类的接口.
> Presenter:Interactor和View之间的链接以驱动UI.
> Interactor:模块的逻辑,例如算法.
>数据存储:通过与数据库或API或Web服务通信来管理数据的持久性和提取.
>模型:数据以结构表示.

这里是iOS(几乎与Android相同):

如本文所示,“核心”代码将通过虚拟机执行:http://www.skyscanner.net/blogs/developing-mobile-cross-platform-library-part-3-javascript

这里是AngularJS:

现在您已经了解了有关架构的所有信息,以下是我的问题.

我没有足够的经验和对网络语言的反馈,无法做出明智的选择.经过一些研究,我发现有各种选择:

>飞镖:

>问题1:是否存在允许Objective-C / Swift与Java通过VM实现互操作的机制?我知道两个平台都有VM来执行Javascript代码,而Google提供dart2js来编译Dart到Javascript代码.但它不是简单的Javascript:请参阅示例here.所以我不知道是否还有适当的互操作性.

> Javascript ES6:如果事件尚未在浏览器中完全实现,则可以开始使用带有Traceur编译器的ES6.

>问题2:Traceur和iOS / Android中的VM编译的Javascript是否具有互操作性?
>问题3:通过Traceur使用ES6开发大型项目并拥有生产代码是否“安全”?

谢谢你的阅读.

最佳答案
我知道这不是您列出的选项之一,但不会自动排除C.这就是DropBox使用的例子,他们甚至为此开放了他们的工具:

C到Java / Objective-C API生成器:

https://github.com/dropbox/djinni

适用于Android / iOS的示例“原生”应用:

https://github.com/libmx3/mx3

关于这个主题的有趣文章有更多链接

http://oleb.net/blog/2014/05/how-dropbox-uses-cplusplus-cross-platform-development/

更新答案:

如果你真的不想使用C并且你可以从非本机获得膨胀,那么你可以尝试以下方法

https://github.com/MobileChromeApps/mobile-chrome-apps

该项目是Google的Cordova分支,增加了许多新功能和优点.

Chrome API上有一个Dart包装器:

https://github.com/dart-gde/chrome.dart

基本上,您可以使用纯HTML5技术在Dart中编写应用程序,然后对于某些事项,您可以使用Chrome API(设备状态等).然后你可以部署:

> Web:在没有Chrome API功能的情况下编译为JavaScript.
> Chrome操作系统:使用Chrome API功能编译为JavaScript.
> Android:编译为JavaScript,然后使用MobileChromeApps创建Android应用程序.
> iOS:编译为JavaScript,然后使用MobileChromeApps创建iOS应用程序.

原文链接:https://www.f2er.com/android/431211.html

猜你在找的Android相关文章