移動應用跨平台之旅


由於移動互聯網的出現,因此經常聽到有人說要做手機端應用。

本人做軟件開發已經有一段時間了,開始上班的時候智能手機剛剛出現,不過我並沒有一開始就做手機端的開發,直到2年前有了具體的思路,才開始做手機端應用。

因此開始了解一些手機端開發的技術方案。

很顯然目前智能手機主要有2個平台ios和android,當然還有windows phone,不過目前主要還是ios和android。

因此首先第一種方式,就是針對不同的平台做2個不同的版本。當然這就是說要同時學習ios和android開發,所謂原生開發。

學習新的技術是需要時間成本的,因此我想是否可以跨平台呢,答案是肯定的。

跨平台也有很多不同的方式,最簡單的是使用html5,界面用html實現,然后需要用的系統功能由框架提供,由於界面是使用html因此一些web界面框架也可以用上,之前用過的extjs就有移動版senchaTouch。

html也算是神通廣大,在pc上有很多軟件都是基於瀏覽器,所謂b/s模式,當然也是跨平台的,任何操作系統只要有瀏覽器就能用,而且不用安裝,因此現在很多應用如果可以一般都是采用這樣方式。

將html用到手機上怎么樣呢,手機上也有瀏覽器,並且手機都支持升級版的html5。雖然在瀏覽器上不能使用系統功能,但使用像phoneGap、AppCan這樣的框架封裝一下,也就沒有什么了,所謂Hybrid App。

於是我就用AppCan+senchaTouch做了一個demo,從demo的效果上來看,感覺並不是很好,主要是手機性能太差,雖然技術參數很高,我覺得根本就是一種誤導,后來發現即便是原生應用依然有性能的問題。所以最終還是沒有使用html來程序。

然后我又嘗試使用另外的跨平台方式,使用C#來做手機應用,C#需要有.net虛擬機,雖然微軟沒有提供可以在手機上運行的虛擬機,但是mono可以提供跨平台的運行環境,這種工具稱之為xamarin,以native的方式來開發ios和android的應用。

實際上這種方式也沒太大的好處,是使用C#對平台的函數進行封裝,ios和android實現界面的方式是不一樣的,要分開做,然后可以共享一部分代碼。雖然有xamarin.Forms讓界面也實現跨平台,不過目前並不成熟。

由於之前學過C#,使用xamarin可以不需要適應新的編程語言,另外官方的文檔也算完備,於是就開始使用xamarin從android開始做手機應用。

經過封裝以后,用C#來開發android程序,基本上沒什么太大的問題,不過一個應用做了不到一半的時候又做不下去了,雖然官方提供了文檔,但還是有各種問題需要到網上找解決方法。所能找到的都是android原生開發的,代碼都是java的,於是就要對代碼進行轉換覺得很麻煩。這個時候對android的開發已經了解的差不多了,只是編程語言不同,C#和java也是很像的,另外考慮集成第三sdk,於是干脆就換成原生的開發了。

於是本人的跨平台之路就此結束了,這個故事告訴我們,如果要做移動應用的話還是先選擇一個平台吧。要2個平台都考慮,就需要了解不同平台的特性,以此為基礎可以再考慮跨平台。

原文:微信公眾號 zhaojieTec 更多內容請關注微信公眾號:zhaojieTec

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM