Github上一周年的WinObjc項目最近發布了預覽版本,終於等到了這一天。WinObjc項目就是Build 2015大會上微軟宣布的Project IslandWood項目,致力於將iOS應用快速移植成UWP應用。廢話不多說,讓我們來看看WinObjc項目到底如何使用。
開始之前
開始轉制iOS項目前我們要先部署好WinObjc工具,工具鏈如下:
- 一台安裝了Visual Studio的Windows 10 PC,2015社區版可以直接下載:免費下載
- 安裝轉制iOS應用的WinObjc Bridge工具,直接下載:Github
- 准備一些可以使用的iOS項目,github上有不少開源項目
注意:確定你已經安裝了Windows 10 SDK, 不然無法生成使用UWP項目。
此外,還可以直接使用微軟已經配置好的評估版Windows 10開發環境虛機。虛機里已經配置好了最新的滿足需求的開發環境,方便你快速在Mac或PC上使用評估最新工具。針對不同虛機的下載地址如下:
- VMware https://aka.ms/windev_vm_vmware
- Hyper-V https://aka.ms/windev_VM_hyperv
- VirtualBox https://aka.ms/windev_VM_virtualbox
- Parallels https://aka.ms/windev_VM_parallels
使用方法
在將下載后的Winobjc.zip文件解壓到本地文件中后,我們就有了可以直接使用的iOS Bridge工具了。這里我使用的是iOS著名HUD框架MBProgressHUD的示例項目做測試,下載地址如下:https://github.com/jdg/MBProgressHUD
其中我們主要使用vsimporter工具,使用步驟如下:
- 打開命令行,並定位到iOS項目所在的目錄中。 cd C:\Users\changwei\Desktop\iOS\MBProgressHUD-master\Demo
- 從命令行中運行vsimporter工具。 C:\Users\changwei\Desktop\winobjc\bin\vsimporter.exe
- vsiimporter自動排除了目前還不支持的測試項目和tvOS項目,生成了一個UWP項目,結果如下:
4.可以看到已經生成了sln解決方案文件,直接打開即可
5.Winobjc文件夾bin目錄下有個Objective-C語言高亮插件objc-syntax-highlighting.vsix,大家別忘了安裝哦。當前解決方案sln文件雙擊打開后就是一個標准的UWP項目,直接Ctrl+F5運行此項目。
第一次編譯生成要較長時間,然而最蛋疼的是編譯失敗了,拜拜(果然還是大坑)。
之后又嘗試了很多iOS項目包括Apple開發者中心下載的一些示例項目。大部分都會編譯錯誤,少部分能運行的很多UI界面和功能都不對,目前除了官方自帶的Winojc示例項目外還沒有能正常運行的。
我們來看看官方能運行的示例項目實際運行效果是什么樣子的,如下:
列表視圖 UITableView
集合視圖 UICollectionView
圖片視圖 UIImageView
我試着寫入了一段Objective-C代碼到項目中,會在當前窗口添加一個橘黃色的視圖,如下:
UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(0,0,200,200)]; testView.backgroundColor = [UIColor orangeColor]; [self.view addSubview:testView];
編譯運行后,確實執行也沒有問題,功能也是正常運行的,如下:
總結
Winobjc項目看着很美,但目前還是一張不堪使用的大餅。搞了一年,總歸比開始進步多了,重寫支持了大多數的iOS基礎庫,UIKit之類的基本framework完成度都挺高的,AutoLayout、Storyboard和XIB也都支持了,但是未來還有很長的路要走。目前大家還是可以嘗嘗鮮的,其實在我看來與其照搬重寫iOS framework,倒不如開發一套支持Objective-C的Windows開發框架,想比也比現在好多了,不至於被iOS牽着鼻子,問題不斷。