1. 程式人生 > >【技術貼】聊聊ArcGIS Runtime for Xamarin

【技術貼】聊聊ArcGIS Runtime for Xamarin

聊聊ArcGIS Runtime for Xamrin

ArcGIS Runtime forXamarin是 Runtime Quartz系列的新成員,至此Quart系列擁有了7個產品,今天要聊ArcGIS Runtime SDK for Xamarin就必須先提一下 Xamarin,對於Xamarin 他的讀法是 [zæmərɪn],可能很多人對他都很陌生,不知道是做什麼,怎麼會和ArcGISRuntime 扯上關係,在這裡我給大家梳理一下。

什麼是Xamarin

其實Xamarin並不是一個新的技術,Xamarin始創於2011年,旨在用C#開發跨平臺移動應用,使移動開發變得難以置信地迅捷和簡單。Xamarin的產品簡化了針對多種平臺的原生應用開發,包括iOS、Android、WindowsPhone和Mac App。Xamarin由許多著名的開源社群開發者創立和參與,而且也是Mono專案的主導者——C#與·NET框架的開源、跨平臺實現。如今已經成為是世界上知名的跨平臺開發軟體工具,遍佈120個國家,客戶超過15000家知名企業。


之前用Xamarin開發Android ,iOS 等應用確實挺吸引眾多C#開發者,但是由於其高昂的開發者賬號價格,讓很多人望而卻步,不過現在想要用Xamarin的開發者是趕上好時候了,微軟於今年2月份以5億美元收購了Xamarin,並且在今年的微軟Build2016大會上 勁爆性的宣佈Xamarin 全面開源,免費,跨平臺,將Xamarin整合到VS2015 中,同時提供Android,iOS模擬機,以及方便的雲平臺測試除錯環境。這將意味著凡是蘋果,android, linux,Iot ,Hololens裝置上都能執行C#程式碼,這是非常強大可怕的威力。


Xamarin 嫁給了微軟,迅速成為了微軟體系結構主打產品之一,動作之大,行動之迅速。很明顯傳遞出了一個微軟將大力支援的訊號,相信未來一定會更好。

 

跨平臺,Xamarin 是這樣做的

無論是企業還是個人跨平臺方案在實際工作中都是十分迫切的,目前眾多的跨平臺方案中,使用Html,Web是通常的做法,但是這種效能通常比較慢,使用Qt跨平臺需要會開發者會c++,所以Xamarin就脫穎而出,因為Xamarin就是天生的移動跨平臺方案,擁有眾多優勢不言而喻。

Xamrarin 跨平臺方案有倆種,一般的Xamarin解決方案,和Xamarin form,

看下面的圖,簡單的說就是一般的Xamarin解決方案只可以共享資料層和業務的程式碼,UI的需要做專門的原生定製,也就是說資料層,服務層,業務層是一套程式碼,但是UI是三套原生的UI介面。

通過實踐Xamarin UI層不能共享其實對提高的開發效率,程式碼維護的工作量還是沒有達到理想的狀態,鑑於此Xamarin推出Xamarin Forms 解決方案,該方案簡直是從頭到腳的共享,非常贊。

Xamarin帶來的好處再上一張圖,


說了以上這些是不是有朋友想躍躍欲試,那需要有什麼的技能才能開發Xamain呢,還是上一張圖,


就是這麼簡單,Android 的介面Xml 檔案基本不用改一點程式碼,直接拷貝到Xamarin裡,就能用,簡直無縫開發遷移。

ArcGIS Runtime 與 Xamarin

都說娛樂圈比較亂,IT也不含糊,這不ArcGIS Runtime 在微軟2月份收購Xamarin後,也迅速和Xamrain好上了,3月份推出了ArcGIS Runtime SDK for Xamain 技術預覽版,6月份推出Beta1,

至此ArcGIS Runtime 藉助Xamarin跨平臺的能力,完全實現了用C#開發Android和iOS應用,甚至是跨平臺應用。

 

值得一提的Xamarin版本是Runtime Quartz 7個版本系類裡第二個支援3D的版本,雖然他出現的最晚。為什麼他會這麼強大呢,其實結合我今天介紹的簡單一想就知道了,第一個支援3D的版本是ArcGIS Runtime for .Net , 而Xamain幾乎可以使用現.Net平臺上的所有技術,故它是第二個支援也是順理成章的事情。

ArcGIS Runtim for SDKfor Xamarin API 方面其實與.Net 版本並無太大出入,下面倆張圖一張是Xamarin的API,一張是.Net的API。

 


ArcGIS Runtime forXamarin 功能方面,下圖這些傳統的Runtime功能自然不在話下

而且還支援最新的移動地圖包(mmpk),向量切片,流暢的3D:

移動地圖包,注:在ArcGIS Pro 裡將資料的符號配置好了以後,生成移動資料包,移動端一行符號渲染程式碼都不用寫,就可以呈現出ArcGIS Pro 設定好的配色方案,相當於把Pro 看做一個視覺化的配置符號化介面,是不是很爽,強烈推薦。

 

向量切片的支援也毫無壓力。


經過測試Xamarin版Runtime 3D 展現也非常給力,下圖分別是法國弗雷斯特軍港和傾斜攝影一個教堂。

 

為什麼ArcGIS Runtime 可以開發Hololens應用

回答這個問題其實很簡單。Hololens是微軟的增強現實黑科技AR(Augmented Reality) ,而ArcGIS Runtime 首字母縮寫是AR,所以就可以開發,是這樣的嗎?答案當然不是,這或許是一種巧合。正確的原因是Hololens上執行的應用程式是UWP程式,而ArcGIS Runtime 可以開發UWP程式,ArcGIS Runtime的UWP API 是六月份新出的,所以能借助Hololens能開發AR也是水到聚成的事情。(對UWP不瞭解,請百度)

ArcGIS Runtime SDKfor Xamarin 版本釋出日程表,目前是Beta1,2016年第三季度會發第一個商業正式版,在期待幾個月吧。

 

結束語,ArcGIS Runtime forXamarin用一句話概括就是,可以使用C#開發ArcGIS 跨平臺的移動產品,移動端產品其實並不只是Android ,iOS手機應用,還可以包括蘋果手錶,蘋果電視,Android 手錶,電視,Pad,Surface,智慧頭盔,眼鏡,甚至是Iot。未來是移動的時代,物的時代,也是Xamarin的時代。

前段時間建立一個 ArcGIS移動跨平臺 Xamarin QQ群 422645517,歡迎加入學習討論。