老難題新思路:移動(dòng)開(kāi)發(fā)策略——原生與混合孰優(yōu)孰劣?
譯文【51CTO.com快譯】
原生還是混合哪種方案更好,這是個(gè)困擾著移動(dòng)開(kāi)發(fā)者的老難題?通過(guò)今天的文章,相信大家能夠找到適合自己的答案。
因此:哪種方式更理想?原生應(yīng)用還是混合應(yīng)用?如果大家打算構(gòu)建一款混合應(yīng)用,哪款框架又最為合適?
Weeeell, it’s not as simple as that.這仍然是那種“各擅勝場(chǎng)”型的問(wèn)題。而且很明顯,Xamarin或者Cordova等框架雖然強(qiáng)大,但也絕非能夠全方位超越原生應(yīng)用。
在尋求答案的過(guò)程中,我們不妨從以下幾個(gè)角度入手:
- 您需要的是否屬于受眾廣泛的移動(dòng)友好型網(wǎng)站?如果答案是肯定的,那么Cordova顯然更為理想。實(shí)際上,如果大家善加調(diào)整,完成可以利用Cordova打造一款面向iOS且同時(shí)提供Web型Android版本的應(yīng)用。另外,如果大家需要為某一重大事件(例如會(huì)議)開(kāi)發(fā)對(duì)應(yīng)方案,那么移動(dòng)網(wǎng)站的效果絕對(duì)更好——畢竟其無(wú)需下載即可使用。
- 您是否打算構(gòu)建一款供企業(yè)內(nèi)部用戶(hù)使用,且能夠控制具體運(yùn)行設(shè)備的應(yīng)用?如果是,那么應(yīng)當(dāng)考慮面向單一原生平臺(tái)(即iOS——如果不會(huì)給您的企業(yè)造成額外支出——或者Android——如果您認(rèn)為設(shè)備碎片化并不是問(wèn)題)。CSS+JavaScript擁有非常明確的邊界設(shè)定,因此在編程模型之上添加抽象層的同時(shí)也會(huì)帶來(lái)新的混淆層。因此,如果能夠選定一種移動(dòng)平臺(tái),那么原生應(yīng)用才是***選項(xiàng)。
- 另外,如果大家希望打造一款絕對(duì)***的應(yīng)用,那么至少要構(gòu)建兩款原生應(yīng)用。任何非使用原生SDK開(kāi)發(fā)的應(yīng)用都無(wú)法與目標(biāo)設(shè)備全面契合。這意味著大家需要準(zhǔn)備兩套代碼庫(kù)、兩套bug副本甚至是兩支彼此獨(dú)立的團(tuán)隊(duì)(甚至額外建立一支后端團(tuán)隊(duì))。但要獲得卓越的效果,成本是必需的!
- 如果大家僅僅打算在設(shè)備上實(shí)現(xiàn)一定程度的交互效果,又不希望打造兩套獨(dú)立的代碼庫(kù),那么Xamarin或者NativeScript都能很好地解決問(wèn)題。
- ***,大家還需要考慮團(tuán)隊(duì)的現(xiàn)有技能儲(chǔ)備。如果大家希望實(shí)現(xiàn)原生外觀,且擁有豐富的JavaScript開(kāi)發(fā)人員,那么NativeScript與ReactNative更為合適。而如果C#開(kāi)發(fā)團(tuán)隊(duì)規(guī)模龐大,那么Xamarin則為***選項(xiàng)。
原文鏈接:https://dzone.com/articles/what-mobile-strategy-is-best-native-or-hybrid
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】