Codename One是一个流行的应用开发环境,允许使用Java开发各种平台的应用,现在, 它又增加了对面向通用Windows平台的Java应用的支持 。这样,Java开发人员就可以针对任何安装了Windows 10的设备进行开发——不管是手机、平板,还是台式机——Codename One支持的目标平台的数量增加到了8个。
在移动开发领域,多个竞争平台的存在导致了市场碎片化,开发人员常常需要在两个对立的选项之间作出选择:为每个目标平台(iOS、Android、Windows Phone等)开发原生应用程序,以更高的开发维护成本为代价提供最佳的用户体验;或者,开发一个面向所有平台的解决方案,通常是以Web的形式,这可以更好地利用时间和资源,但放弃了不同平台所特有的优势。类似Codename One或Appcelerator这样的工具介于两者之间,它们设法提供统一的开发体验,同时又利用了部分平台特有的功能。
截至目前,Codename One用户使用Java开发了应用程序,不需要对源代码做任何修改,就可以创建用于各种平台的安装包,包括iOS、Android、Blackberry、Windows Phone、JavaScript、J2ME和桌面。之所以能够做到这一点,其中一个原因是使用了可以面向所有不同平台的构建服务器,并结合了类似ParparVM这样的桥接技术。另一方面,借助Windows 10及其通用Windows平台,微软向设备融合迈进了一步:UWP应用程序可以安装和运行在任何运行Windows 10的设备上,可以是手机、平板或PC。结合这两个事实,允许Codename One以UWP作为目标平台将使开发人员的应用程序可以安装在3亿台新设备上。
Codename One使用了 IKVM.NET ,后者是Mono和.NET Framework的Java实现,可以以UWP为目标平台。IKVM包含JVM和Java类库的.NET实现,以及用于Java和.NET互操作的工具。当以UWP为目标平台时,Codename One会编译Java应用程序,并把它和IKVM及特定于Windows 10的配置设置打包在一起;这可能不如直接使用.NET开发应用程序好,但好处是可以重用相同的源代码。
这种方法是否会成为主流还有待观察。虽然将相同的代码用于许多平台的观点听起来非常有吸引力,但从 Codename One的先前版本所引发的反响 来看,社区用户似乎有一个共同的看法,就是对App有着非常高的期望,而开发人员往往认为,唯一能够满足这种预期的方式是开发原生应用。不出意外,简化将现有Java应用移植到UWP的过程几乎肯定会增加Windows 10平台应用的数量。
查看英文原文: Codename One Adds Support for Java Apps to Target the Universal Windows Platform