移動(dòng)端跨平臺(tái)之三國演義

前言

移動(dòng)端跨平臺(tái)是眼下比較火的一個(gè)話題。各種相關(guān)技術(shù)方案也是層出不窮,從PWA, Phonegap, React Native, Weex,等等到新出現(xiàn)的Flutter,讓人看得眼花繚亂。網(wǎng)上也有很多對(duì)這些跨平臺(tái)方案的技術(shù)方面的全方位比較。但是由于這些解決方案還在不斷快速發(fā)展。開發(fā)者難以據(jù)此做出選擇投身于哪個(gè)平臺(tái)。 而本文則希望從非技術(shù)角度來探討移動(dòng)端跨平臺(tái)技術(shù)發(fā)展方向。讓開發(fā)者能夠有多一個(gè)維度的考量。扯上三國演義是因?yàn)槲矣X得情況有點(diǎn)類似,也是為了方便大家理解。好了,閑話少說 讓我們進(jìn)入正題。

“話說,東漢末年。。?!?/p>

過去和現(xiàn)在

從2007年第1代iPhone發(fā)布到現(xiàn)在,智能手機(jī)已經(jīng)走過了11個(gè)年頭了。智能手機(jī)市場也由Android和iOS兩大系統(tǒng)主導(dǎo)。同時(shí)隨著智能手機(jī)崛起的是App開發(fā)產(chǎn)業(yè)。各個(gè)移動(dòng)互聯(lián)網(wǎng)產(chǎn)品基本上會(huì)標(biāo)配3個(gè)前端開發(fā)團(tuán)隊(duì):Android,iOS和H5。同樣的需求會(huì)在Android和iOS各開發(fā)一遍,有時(shí)候甚至需要H5也實(shí)現(xiàn)同樣的功能。而App發(fā)布則需要提交各大市場,然后才能觸達(dá)最終用戶。開發(fā)時(shí)的重復(fù)投入和發(fā)布時(shí)的時(shí)效性差是移動(dòng)端產(chǎn)品遇到的兩大問題。

本來這兩大問題是可以通過純Web技術(shù)棧解決的。Web標(biāo)準(zhǔn)是大家都要遵守的,無論是Andriod手機(jī)還是iPhone,理論上講h5頁面在它們的內(nèi)置瀏覽器上跑起來基本上不會(huì)有太大的差別。但是純Web頁面也有自己的問題,功能受限,很多智能手機(jī)的系統(tǒng)功能內(nèi)置瀏覽器并不提供;性能受限,雖然智能手機(jī)性能在不斷提升,但是短期之內(nèi),h5還是無法做到足以和原生匹敵的表現(xiàn)。PWA和Hybrid,希望能通過擴(kuò)展Web技術(shù)棧來達(dá)到和原生類似的體驗(yàn)。React Native/Weex則另辟蹊徑,上層使用Web技術(shù),底層利用原生控件來做渲染。Google的Flutter更徹底,另起爐灶,連原生控件都不要了,都由自己來畫。

為了實(shí)現(xiàn)跨平臺(tái)這一終極目標(biāo),大家都在各自的技術(shù)路線上狂飆猛進(jìn)。程序員們看得眼花繚亂,紛紛表示“學(xué)不動(dòng)了”。確實(shí),這些技術(shù)方案都有著各自的優(yōu)點(diǎn)和缺點(diǎn);都是看起來能解決所有問題,但是實(shí)際上卻帶來更多的問題。有人說,“沒有銀彈,我們需要取長補(bǔ)短”,然后你會(huì)看到集Native/Hybrid/React Native/Flutter等等于一身的“要你命3000”App。。。


要你命3000

但我覺的這種情況不應(yīng)該持續(xù)太長時(shí)間,最終將會(huì)有一種技術(shù)方案勝出,畢竟一般人駕馭不了這樣的大殺器。至于勝出的是誰,僅從技術(shù)角度講,大家都是見仁見智。而在技術(shù)之外,起決定性作用的,我認(rèn)為有三股重要的力量。那就是魏蜀吳。。啊不對(duì),是Google,Apple和各大“純”互聯(lián)網(wǎng)廠商。

“天下大勢,分久必合,合久必分。” by羅貫中

技術(shù)之外的力量

先來了解一下三方的情況。


三分天下
  • Apple: 目前地球上市值最高的公司,財(cái)大氣粗,擁有iOS生態(tài)系統(tǒng),但是自身并沒有提出自己的跨平臺(tái)技術(shù)方案。是等著被跨的平臺(tái)。
  • 以Facebook為代表的各大“純”互聯(lián)網(wǎng)廠商:這里所謂“純”是指這些廠家沒有自己的移動(dòng)OS生態(tài)。但卻掌握著移動(dòng)端上巨大的流量,在Web技術(shù)方面有著深厚的積累。所以在跨平臺(tái)方面,這些廠家都是從Web技術(shù)演進(jìn)向Native演進(jìn),提出了React Native,Weex,小程序等解決方案。
  • Google: 既有深厚的Web技術(shù)積累,又主導(dǎo)著Android生態(tài)系統(tǒng)??梢哉f是得天獨(dú)厚了。Web端提出了PWA,反手又從自己的技術(shù)儲(chǔ)備里搗鼓出來個(gè)Flutter。

移動(dòng)端跨平臺(tái)的戰(zhàn)場就是上面這三股力量的角力。有同學(xué)可能要問了,移動(dòng)端跨平臺(tái)不過是為了解決前面說的那些Native開發(fā)的問題而提出的技術(shù)方案,為什么搞的像要打仗一樣?我要說的是這里面有更深層次的原因。不知道大家有沒有聽過一個(gè)縮寫叫OTT(Over The Top)?OTT的具體定義簡單一句話我解釋不清楚,但是我舉個(gè)OTT的例子大家就能明白其重大意義。移動(dòng),聯(lián)通,電信等這些運(yùn)營商,作為移動(dòng)通訊的基礎(chǔ)服務(wù)提供商在功能手機(jī)時(shí)代是非常賺錢的。當(dāng)年1毛多錢1條的短信其實(shí)成本幾乎為0。而到了智能手機(jī)時(shí)代,微信取代了短信和語音。運(yùn)營商淪為流量管道。眼看著錢在自己的手中流動(dòng)卻分不到一杯羹,反而以前賺錢的業(yè)務(wù)也都被吞噬了,最可怕的是它們只能接受這樣的結(jié)果卻無法反抗。這就是OTT的威力!移動(dòng)端跨平臺(tái)就是這樣的OTT,在Android和iOS的生態(tài)之上建立自己的跨平臺(tái)生態(tài),其顛覆性可以參考上面運(yùn)營商的例子。這里我要提一下,其實(shí)微信已經(jīng)建立了這樣的一個(gè)小型OTT生態(tài),那就是小程序。這也是我一直想不明白的一點(diǎn),Apple怎么會(huì)同意微信搞小程序?是看不懂?看不上?還是兩家達(dá)成了什么協(xié)議?有知道的同學(xué)可以說一說。

了解了移動(dòng)端跨平臺(tái)重要意義,那我們就可以推演一下將來可能出現(xiàn)的情形。首先的一種可能性是三家達(dá)成共識(shí),支持其中的一種技術(shù)方案。這也是最好的一種情形,如果可能發(fā)生的話,那這個(gè)方案很大概率是基于Web技術(shù)棧的,畢竟Web已經(jīng)是大家都遵守的標(biāo)準(zhǔn),只是需要Google和Apple各自擴(kuò)展自己的OS,提供更高性能的瀏覽器和開放更多的Native API并制定為標(biāo)準(zhǔn),PWA貌似走的就是這條路,但其進(jìn)展實(shí)在是過于緩慢,而且要制定成為標(biāo)準(zhǔn)還要三方一致才行,這種概率在我看來是極小的,畢竟協(xié)調(diào)三方的利益是很困難的。

剩下的選擇就是三方博弈了。比較理性的做法是聯(lián)合一家然后一起對(duì)付剩下的那一家。形成2v1的局面。也就是可能會(huì)出現(xiàn)以下三種組合中的一個(gè):Google+Facebook vs Apple, Facebook+Apple vs Google和Apple+Google vs Facebook。我們來逐一分析下這三種情況出現(xiàn)的可能性:

Google+Facebook vs Apple

這個(gè)組合有個(gè)前提條件,那就是Google和Facebook首先得在內(nèi)部達(dá)成共識(shí):跨平臺(tái)的方案是選Flutter還是選React Native。這個(gè)共識(shí)在我看來是難以達(dá)成的,更何況Apple還控制著iOS。所以這個(gè)組合可以排除了。

Facebook+Apple vs Google

Facebook主推React Native, Apple在iOS上給與系統(tǒng)級(jí)的支持。漏洞是Google掌握的Android生態(tài)。除非出現(xiàn)1+1>>2的情況,這個(gè)組合基本上也可以排除掉了。

Apple+Google vs Facebook

這個(gè)組合在我看來是最有可能出現(xiàn)的,Apple有iOS,Google有Android。跨平臺(tái)方案有Flutter,只要兩家移動(dòng)OS生態(tài)強(qiáng)強(qiáng)聯(lián)合,主推Flutter,使之成為移動(dòng)端跨平臺(tái)的事實(shí)標(biāo)準(zhǔn),那么在將來即使出現(xiàn)OTT局面也會(huì)掌握在自己手里。避免重蹈運(yùn)營商的覆轍。而對(duì)于一眾“純”互聯(lián)網(wǎng)大廠來說,接受這樣的標(biāo)準(zhǔn)也不會(huì)有太大的困難。

綜合起來,在移動(dòng)端跨平臺(tái)的技術(shù)的演進(jìn)方向上,似乎OS廠商聯(lián)合主推自己的跨平臺(tái)方案看起來更合理一些。但是合理的不一定會(huì)成為現(xiàn)實(shí),有太多的變數(shù)。而開發(fā)者最希望的就是現(xiàn)在這種混亂的情況能盡快清晰起來。你搞你的React Native,我搞我的Flutter,Apple則仍然繼續(xù)自己Native開發(fā)+App Store審核的模式,“你們只管折騰,開發(fā)出來的跨平臺(tái)app能取代原生算我輸。” 觀望吧,怕自己會(huì)落后。趕緊跟上吧,可是跟哪個(gè)?AirBnb的教訓(xùn)還近在眼前。真的是腦殼疼。。??傊鳛橐苿?dòng)開發(fā)者,只能從技術(shù)角度和非技術(shù)角度做出自己的判斷了。我呢,只有一個(gè)建議,在做判斷的過程中,盡量不要把個(gè)人對(duì)某個(gè)公司,某種技術(shù),某種語言的好惡帶進(jìn)來。這很可能會(huì)誤導(dǎo)你做出錯(cuò)誤的決定。

"良禽擇木而棲,賢臣擇主而事。見機(jī)不早,悔之晚矣。" by李肅

后記

本文從非技術(shù)的角度對(duì)移動(dòng)端跨平臺(tái)技術(shù)的可能演進(jìn)方向做了一點(diǎn)粗陋的分析,希望能對(duì)大家做技術(shù)選型,自身技術(shù)棧擴(kuò)展方面提供一點(diǎn)參考。同時(shí)這也只是我個(gè)人的一些想法,大家如果有不同的見解,請(qǐng)大聲說出來,我們一起探討。

“謀事在人,成事在天?!? by諸葛亮

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容