从头开始为各个移动平台编写单独的应用程序比较昂贵。如果您想要为多个平台创建应用,或者扩展现有应用到所面向的市场上,最有效的方法就是跨平台重复利用您已有的代码。如果再此基础上保留原生用户界面的效果,那就更完美了。
当然,跨平台使用代码肯定是理想的解决方案,但问题是如何实现?当今,什么最吸引致力于构建本机应用程序的 Android 和 iOS 开发者呢?
针对该需求,已经产生了包括 Xamarin 和 Cordova 在内的多种方案。我想特别提出另一种工具—JUniversal,该工具允许您使用 Java 编写可共享的跨平台代码。
概述
JUniversal 的构想来自诺基亚的几个开发者,他们在 Java 和构建跨平台应用方面具备相当专业的技能。JUniversal 使翻译源代码的工作变得简洁优雅,且可在多种平台中使用。该工具允许您使用 Java 自由编写共享代码,并将其翻译成 C#(现已可用)或 C++/Objective C++(即将可用)。您还可以将JUniversal 与 Google 的 j2objc 翻译器结合,使 Java 翻译成 Objective-C,供开发 iOS 使用。
除了源翻译功能,JUniversal 还提供一组称为 JSimple 的库,该库为多数移动应用程序提供支持跨平台的(非 UI)API 版本。这些应用程序组件如下:
- OAuth (based on Scribe)
- JSON
- Unit testing (JUnit)
- File & network I/O platform wrappers
- Collections—HashMap, ArrayList, etc. (based on JDK/Harmony)
- Logging (based of SLF4J/Logback)
- About 20K lines currently
为什么需要源码翻译?
JUniversal 的主要设计目的是为了保留评论和设置格式,生成的翻译源可读性较高,就像手工编写的。因此,调试程序、探查器和异常堆栈跟踪等工具都与手工编写的源代码工具功能一样,翻译的源代码可与本机代码无缝结合。语言兼容性较好。
在跨平台技术这一层面上,JUniversal 因使用原生平台编程语言(通过语言翻译)、本机编译器、本机调试程序和本机 UI 设计工具,因而被评为最轻量和最接近原生环境的工具。至于用户界面,目的则是通过手工编写原生代码而提供最佳用户体验。
JUniversal 是免费的
下面是 JUniversal 架构的简易图:
在微软开放技术,我们非常欢迎这类的开发爱好者利用业余时间完成的项目,也希望 JUniversal 团队能将这一项目坚持下去。绝对是精品!