盧建暉:移動(dòng)跨平臺(tái)開(kāi)發(fā)要領(lǐng)
原創(chuàng)在2014年微軟MVP ComCamp上,來(lái)自華南師范大學(xué)的微軟MVP同時(shí)也是程序設(shè)計(jì)總監(jiān)的盧建暉給大家做了《移動(dòng)互聯(lián)時(shí)代的開(kāi)發(fā)超人》的主題演講,在演講中,他講到移動(dòng)跨平臺(tái)開(kāi)發(fā)的要領(lǐng),這里我給大家總結(jié)一下。
目前,移動(dòng)跨平臺(tái)開(kāi)發(fā)的焦點(diǎn)聚集在HTML5上,但是使用HTML5會(huì)面臨性能和兼容的種種問(wèn)題,因此跨平臺(tái)開(kāi)發(fā)原生應(yīng)用成為目前***的解決方案。
盧建暉老師首先給大家介紹了Xamarin,這是使用C#進(jìn)行移動(dòng)跨平臺(tái)開(kāi)發(fā)的工具,能夠開(kāi)發(fā)原生應(yīng)用,支持Android、iOS、Windows Phone。雖然使用Xamarin能做出各個(gè)平臺(tái)的原生App,但實(shí)際上開(kāi)發(fā)難度仍然不小,并且仍然需要學(xué)習(xí)各個(gè)平臺(tái)的開(kāi)發(fā)。那么,Xamarin憑什么號(hào)稱(chēng)為移動(dòng)跨平臺(tái)開(kāi)發(fā)的利器呢?
盧建暉講到,看一個(gè)跨平臺(tái)開(kāi)發(fā)工具是否合格,主要有以下四個(gè)方面:
- 好的架構(gòu)
- 共享邏輯代碼
- 組件是否豐富
- 好的管理平臺(tái)(代碼版本管理、測(cè)試等)
其中,架構(gòu)表現(xiàn)在是否采用了符合跨平臺(tái)開(kāi)發(fā)的設(shè)計(jì)模式。目前移動(dòng)平臺(tái)的軟件開(kāi)發(fā)架構(gòu)主要有三種模式:MVC、MVP和MVVM,其中iOS是典型的MVC模式,Android有MVC但也可以看做是MVP,WP平臺(tái)則是MVVM模式,在這三種模式中,什么模式更符合跨平臺(tái)開(kāi)發(fā)的需要呢?盧建暉認(rèn)為是MVVM模式,使用數(shù)據(jù)綁定能夠讓代碼更加清晰,并且邏輯代碼能夠很好的公用,一旦開(kāi)發(fā)出之后就可以專(zhuān)注于各個(gè)平臺(tái)的UI設(shè)計(jì)了。
對(duì)于跨平臺(tái)開(kāi)發(fā),支持的平臺(tái)越多,意味著能夠共享的代碼越少,特別是要開(kāi)發(fā)出原生應(yīng)用,一些代碼庫(kù)的共享就成為很大的問(wèn)題。Xamarin中采用Project Linker和Portable Class Library來(lái)共享庫(kù),因此能夠做到一個(gè)代碼庫(kù)支持?jǐn)?shù)個(gè)平臺(tái)。
在組件上,Xamarin也提供了豐富的組件,并且支持插件化的組件,來(lái)簡(jiǎn)化開(kāi)發(fā)的工作量。
***,Xamarin使用Visual Studio來(lái)進(jìn)行項(xiàng)目的管理,能夠方便的進(jìn)行版本管理和調(diào)試。
因此,Xamarin作為移動(dòng)跨平臺(tái)的解決方案是合格的,它繼承了之前的Mono/C#跨平臺(tái)項(xiàng)目,因此發(fā)展已經(jīng)很成熟。
開(kāi)發(fā)者們?cè)谶M(jìn)行移動(dòng)跨平臺(tái)開(kāi)發(fā)時(shí),也可以想一想這些要領(lǐng),看自己的開(kāi)發(fā)項(xiàng)目是否符合這些要求呢?