在移动应用开发领域,开发者经常面临一个挑战:如何为iOS和Android这两个主流平台开发具有原生体验的应用。通常,这意味着需要为每个平台单独开发应用,这不仅增加了开发成本,也延长了开发周期。然而,随着技术的进步,现在有了一种新的方法,可以让开发者使用Java语言同时为iOS和Android开发原生应用。这就是Intel推出的Multi-OS Engine(MOE)。
在移动应用市场,用户对应用的体验有着极高的要求。应用商店充斥着大量相似的应用,要想脱颖而出,就需要提供与众不同的用户体验。尽管开发原生应用需要更多的时间和资源,但原生的界面和感觉正是用户所期待的。因此,在这方面的投入是无法节省的。原生应用在以下方面具有显著优势:
GitHub根据其存储库中代码的体积对语言进行排名,这清楚地解释了Facebook选择JavaScript开发React Native,以及Intel选择Java开发Multi-OS Engine作为跨平台语言的原因。Java之所以如此流行,一个主要原因是Java开发者可以利用大量的现有代码,如库、示例和开源应用程序。
Multi-OS Engine作为一个独立的插件,可以集成到Android Studio中。应用项目可以像Android项目一样简单启动,Multi-OS Engine会配置项目以构建并运行为iOS应用,甚至可以在iOS模拟器中调用。这意味着不必了解Objective-C就能构建iOS的原生应用。此外,Android开发不会发生变化,还可以重用所有平台无关的代码。虽然MOE不能提供100%的代码重用,但通过适当的应用架构,这个值可以达到60%。
以下步骤仅解释了使用Multi-OS Engine创建iOS应用的过程,假设已经了解在Android Studio中构建Android应用的过程。
如果是一个经验丰富的Java开发者,Objective-C可能会让感到困惑。以下是Objective-C和Java实现相同功能的代码片段对比:
Objective-C
- (
void
prepareForSegue:(UIStoryboardSegue *)segue sender:(
id
)sender {
if
([segue.identifier isEqualToString:
@"
showDetail"
]) {
NSIndexPath *selectedIndexPath = [
self
.tableView indexPathForSelectedRow];
//
Set data
...
}
}
Java
@Override
public
void prepareForSegueSender(UIStoryboardSegue segue, NSObject sender) {
if
(segue.getIdentifier().toString().equals(
"
showDetail"
)) {
NSIndexPath selectedIndexPath = getTableView().indexPathForSelectedRow();
//
Set data
...
}
}