用Java創建原生iOS應用:RoboVM
自從使用Objective C開發原生的iOS應用以來,就有許多使用別的語言來開發iOS應用的替選方案。比如說,下面就列出了一些:
- PhoneGap, 使用HTML/JS來開發
- RubyMotion,使用Ruby
- ionic,使用AngularJS開發
我最近發現的一個的是RoboVM,你可以通過它來用Java開發iOS程序。RoboVM 編譯器可以將 Java 字節碼翻譯成 ARM 或者 x86 平臺上的原生代碼,應用可直接在 CPU 上運行,無需其他解釋器或者虛擬機。
RoboVM 同時包含一個 Java 到 Objective-C 的橋,可像其他 Java 對象一樣來使用 Objective-C 對象。大多數 UIKit 已經支持,而且將會支持更多的框架。
本文將介紹一下如何使用RoboVM和Java來開發一個簡單的應用。
下面是一些前期準備:
- OSX 10.9.3
- JDK 1.7
- Eclipse Kepler 4.3
- Xcode 5.1.1
首先,給eclipse安裝一個RoboVM插件,在幫助——安裝新的軟件底下, http://download.robovm.org/eclipse/。這需要重啟下IDE.
插件安裝完之后,現在可以創建一個新的工程了。選擇"RoboVM iOS Project"選項。
工程名,主類,應用名,應用ID都填成HelloWorld。正如下面截圖所示的那樣。
不知道什么原因,當我使用向導的時候,主類沒有生成成功,只能手動做了。因此創建一個HelloWorld的類。
把下面內容粘貼到HelloWorld類里面。
import org.robovm.apple.foundation.NSAutoreleasePool; import org.robovm.apple.foundation.NSDictionary; import org.robovm.apple.foundation.NSString; import org.robovm.apple.uikit.UIApplication; import org.robovm.apple.uikit.UIApplicationDelegateAdapter; public class HelloWorld extends UIApplicationDelegateAdapter { @Override public boolean didFinishLaunching(UIApplication application, NSDictionary<NSString, ?> launchOptions) { return true; } public static void main(String[] args) { NSAutoreleasePool pool = new NSAutoreleasePool(); UIApplication.main(args, null, HelloWorld.class); pool.close(); } }
這里我們繼承了UIApplicationDelegateAdapter類,它是RoboVM版的UIApplicationDelegate。類里面有個main方法,它是用來啟動應用的。
現在我們要做的就是重寫下didFinishLaunching方法來生成一個UIWindow以及UILabel。將下面的代碼放到方法里就可以了。
@Override public boolean didFinishLaunching(UIApplication application, NSDictionary<NSString, ?> launchOptions) { UIWindow window = new UIWindow(UIScreen.getMainScreen().getBounds()); UILabel label = new UILabel(new CGRect(50, 50, 100, 50)); label.setText("Hello World"); window.addSubview(label); window.setBackgroundColor(UIColor.colorGreen()); window.makeKeyAndVisible(); return true; }
述的大部分代碼都是自解釋型的。CGRect的構造參數就是x,y坐標以及標簽的長和寬。
如果你在工程上點擊右鍵,并選擇作為一個iOS模擬器應用來運行。你會看到彈出一個iOS模擬器,上面是綠屏并顯示有文字,“Hello World"。就如下面的截圖那樣。
如果你到了這步了,這意味著你的環境已經設置好了,可以開始使用Java來開發iOS程序了。
下面是一些參考資料。希望本文能對你使用Java來進行iOS開發有所幫助。
原文地址。