用Java創建原生iOS應用:RoboVM

jopen 10年前發布 | 40K 次閱讀 RoboVM iOS開發 移動開發

logo-blue.png
自從使用Objective C開發原生的iOS應用以來,就有許多使用別的語言來開發iOS應用的替選方案。比如說,下面就列出了一些:

我最近發現的一個的是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.

用Java創建原生iOS應用:RoboVM

插件安裝完之后,現在可以創建一個新的工程了。選擇"RoboVM iOS Project"選項。

用Java創建原生iOS應用:RoboVM

工程名,主類,應用名,應用ID都填成HelloWorld。正如下面截圖所示的那樣。

用Java創建原生iOS應用:RoboVM

不知道什么原因,當我使用向導的時候,主類沒有生成成功,只能手動做了。因此創建一個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應用:RoboVM

如果你到了這步了,這意味著你的環境已經設置好了,可以開始使用Java來開發iOS程序了。

下面是一些參考資料。希望本文能對你使用Java來進行iOS開發有所幫助。

原文地址

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!