Deviceone:站在移動互聯(lián)時代的十字路口上
最近總能看到類似“App已死,服務(wù)永生”、“App必死,web永生” 、“App已死,微信建站已生”這樣的文章。不曉得這些網(wǎng)絡(luò)寫手到底是想代表某些公司的立場、還是想要表達(dá)怎么樣的一個情結(jié),文章中語氣都是如此之肯定,好像大家真的有什么仇什么怨一樣。
回顧軟件發(fā)展的歷史,C++開始流行時,就有人因其優(yōu)秀的面向?qū)ο竽芰ΧA(yù)言C語言已死;Java語言開始流行時,也有人因其出色的跨平臺能力和完備的內(nèi)存管理機(jī)制而預(yù)言C++已死;在web盛行的年代,更是而有人因看好這種輕量級的B/S交互模式而預(yù)言原生應(yīng)用已死。可實(shí)際上呢:這么多年過去了,根據(jù)TIOBE發(fā)布的編程語言排名結(jié)果(2015年2月版本),c和c++這兩類古老語言都位于前3;原生應(yīng)用也在智能手機(jī)時代重新回歸主流地位。科技的發(fā)展就好像大自然的進(jìn)化一樣,是一個極其復(fù)雜的過程。我們非要試圖從某一個簡單側(cè)面去解釋或者預(yù)言這個過程演變,其結(jié)果往往都是比較片面的。從大型機(jī)時代的T/S架構(gòu),到PC機(jī)時代的C/S架構(gòu),互聯(lián)網(wǎng)時代的B/S架構(gòu),以及移動互聯(lián)和大數(shù)據(jù)時代提出的IaaS、PaaS、SaaS以及BaaS架構(gòu);所有的軟件架構(gòu)都是為特定的技術(shù)時代和應(yīng)用環(huán)境而服務(wù)的。就好像“java好還是.net好”這樣的討論,這些年來就從來沒停過,都快讓人聽得耳朵起繭子了??勺罱K又如何,java和.net兩者各自都發(fā)展的好好的,科技的發(fā)展會以某些人的主觀傾向?yàn)檗D(zhuǎn)移嗎? 技術(shù)本身就無所謂好壞,最多只能說哪項(xiàng)技術(shù)更適合你而已。所以我們在討論哪一項(xiàng)技術(shù)好哪一項(xiàng)技術(shù)不好這類命題的時候,應(yīng)該首先明確一個大前提:我們到底要做什么?
服務(wù)還是App?
我們所說的服務(wù),通常情況下應(yīng)該理解為移動互聯(lián)時代里的BAAS模式的服務(wù),也就是為移動互聯(lián)網(wǎng)應(yīng)用開發(fā)而提供的云服務(wù)。其主要內(nèi)容包括:數(shù)據(jù)存儲、數(shù)據(jù)推送、版本管理、數(shù)據(jù)統(tǒng)計(jì)等幾大類服務(wù)。由此可見服務(wù)和App之間本來就是兩個不同層面的東西,根本就不應(yīng)該相互比較,更不應(yīng)該說誰能替代誰。個別人偷換概念,甚至在文章中用微信服務(wù)號當(dāng)做服務(wù)來說事,這種說法雖然有失水準(zhǔn),但卻是別有用心的,根本不值得我們過多的討論。
Web還是App?
去年的10月份,W3C的HTML工作組正式發(fā)布了HTML5的正式推薦標(biāo)準(zhǔn)(W3C Recommendation)。這一消息讓很多人為之滿心鼓舞,還有些人因此而斷定web的回歸以及App的滅亡。但我們當(dāng)仔細(xì)瀏覽W3C官方規(guī)劃的HTML5發(fā)展計(jì)劃,可能會發(fā)現(xiàn)現(xiàn)實(shí)并沒有我們想的那么樂觀:
http://dev.w3.org/html5/decision-policy/html5-2014-plan.html
W3C官方公告稱:“模塊化一直在標(biāo)準(zhǔn)制定過程中扮演著重要角色。為了實(shí)現(xiàn)功能的獨(dú)立、快速進(jìn)化,工作組會使用所謂的‘擴(kuò)展規(guī)范’(extension specifications)。有一些最終會作為獨(dú)立文檔公布,并成為HTML規(guī)范家族的一部分,其它則會整合到HTML5規(guī)范里,成為基礎(chǔ)。”
目前來看HTML5.1才會是真正的HTML5,HTML5只是個妥協(xié)方案。就好像微軟的windows8到windows8.1的升級一樣,windows8的按時推出完全是一種市場策略,而windows8.1雖然只是一個小版本變化,卻在系統(tǒng)體系結(jié)構(gòu)層面做了巨大的調(diào)整。 HTML5.1預(yù)計(jì)2016年第四季度公布后,工作組會重復(fù)上述步驟再搞一個新的HTML5.2,繼續(xù)完善、豐富功能。具體時間沒說,但估計(jì)得到2018年了。而從HTML5每個方案的公布到獲得幾大廠商瀏覽器的穩(wěn)定支持,一般還要再等待至少1年多的時間。就算我們等到了HTML5.1或HTML5.2的到來,它就一定能夠全面的解決我們移動端應(yīng)用開發(fā)的問題嗎?
HTML5標(biāo)準(zhǔn)在正式通過的前些年,早就已經(jīng)是實(shí)時上的標(biāo)準(zhǔn)了。無論Webkit內(nèi)核、還是Firefox內(nèi)核、IE內(nèi)核(9.0以后版本)都先后對其實(shí)現(xiàn)了全面的兼容。以PhoneGap產(chǎn)品為首基于HTML5技術(shù)的移動中間件早在2008年就出現(xiàn)了,事實(shí)上我們自己的中間件產(chǎn)品在3.0之前也是以HTML5技術(shù)為核心的。但這幾年發(fā)展過來,這一類中間件技術(shù)并沒有實(shí)現(xiàn)對原生App開發(fā)的大規(guī)模替代,反倒是有些被開發(fā)者們越來越淡忘了。這也難怪,我們真的很難從AppStore里能找到一款完全基于HTML5技術(shù)開發(fā)且讓人覺得還算優(yōu)秀的應(yīng)用。雖然HTML5技術(shù)結(jié)合原生App開發(fā)的模式已經(jīng)比較成熟,但如果想讓HTML5技術(shù)完全替代原生App開發(fā),這么多年來,其可行性目前應(yīng)該仍然停留在實(shí)踐的路上…
HTML5的草案最早是在2007年就被W3C接納了,同年9月IPhone1代手機(jī)才對外發(fā)布。確切的說HTML5的最初設(shè)計(jì)根本就沒有考慮現(xiàn)有智能手機(jī)的體系結(jié)構(gòu),不是為智能手機(jī)時代而生。我認(rèn)為未來主流移動應(yīng)用開發(fā)技術(shù)的改進(jìn)首先會體現(xiàn)在以下3個方面:即UI視圖的標(biāo)簽化,邏輯語言的腳本化以及底層技術(shù)的開放能力。初一看,HTML/HTML5技術(shù)已經(jīng)天然的滿足了前兩條,其實(shí)則不然。瀏覽器DOM的實(shí)現(xiàn)過程和原生UI的實(shí)現(xiàn)過程存在著本質(zhì)上的差別,這就決定了從web頁面到原生頁面之間根本就無法做到平滑過渡。對于底層技術(shù)的開放能力,不應(yīng)該僅僅停留在簡單API擴(kuò)展能力上,更應(yīng)該支持UI標(biāo)簽的擴(kuò)展?;蛟S我們可以憧憬和期待未來HTML6標(biāo)準(zhǔn)的到來,或許在移動端HTML標(biāo)準(zhǔn)根本就不是必須的,我們完全可以找到更好的替代方案。
Facebook在移動端的技術(shù)發(fā)展路線就是對以上技術(shù)發(fā)展趨勢一個很好的驗(yàn)證。Facebook之前曾經(jīng)推出了react框架,它采用的全新思路雖然基于瀏覽器DOM的前端UI框架,同時也完全接管了UI開發(fā)中最為復(fù)雜的局部更新部分,擅長在在復(fù)雜場景下保證高性能。盡管react框架在web體系下已經(jīng)非常優(yōu)秀,然而web終究是web,無論怎么改進(jìn)還是達(dá)不到原生應(yīng)用的效果,F(xiàn)acebook最終也因此放棄了HTML5方案,在移動端轉(zhuǎn)入純原生開發(fā)的模式。近期Facebook官方宣稱他們將要推出react-native計(jì)劃,React Native完全不用DOM,開發(fā)者可以使用<View>取代<div>,使用<Image>替代<img>等,可以擴(kuò)展自定義標(biāo)簽并實(shí)現(xiàn)原生對接,可以通過JavaScript來寫高質(zhì)量的應(yīng)用。在我看來,雖然react-native還尚未正式推出,但它的技術(shù)結(jié)構(gòu)已經(jīng)是已知中間件產(chǎn)品中***進(jìn)、最能代表未來發(fā)展趨勢的。它所推崇的UI視圖的標(biāo)簽化,邏輯語言的腳本化以及底層技術(shù)的開放能力和ZBuilder4.0產(chǎn)品有著異曲同工之默契。
為什么一定要把Web模式和原生App模式分開來對立呢?這兩者本來就有著各自不同的優(yōu)勢。Web已經(jīng)成為App的一部分,和App組件融一起各自完成其擅長的工作。 所以,Web和App都是我們需要的,要取長補(bǔ)短結(jié)合在一起做。
微信還是App?
談到微信應(yīng)用,自然是發(fā)自內(nèi)心的佩服。國產(chǎn)的App產(chǎn)品能夠做到如此之優(yōu)秀的程度,確實(shí)讓人折服。微信應(yīng)用發(fā)展到今天,僅注冊用戶就已經(jīng)發(fā)展到了6億多,其市場發(fā)展的定位也遠(yuǎn)不止其早期起家時的語音通訊和即時通信那么簡單了。朋友圈的分享模塊,讓微信占領(lǐng)移動社交網(wǎng)絡(luò)的高地;公眾號及開放平臺,讓微信成為智能手機(jī)端的信息門戶;掃一掃功能,讓微信成為移動端訪問網(wǎng)頁或者下載應(yīng)用的標(biāo)準(zhǔn)入口;現(xiàn)在又微信開放了設(shè)備接入能力,不僅僅是在為O2O市場的發(fā)展做準(zhǔn)備,更是已經(jīng)開始染指個人健康設(shè)備的領(lǐng)域了。再加上微信錢包、微信支付、微信商城、微信游戲等重磅型的巨無霸功能,真是微信觸手無處不及呀。細(xì)分析微信的這些功能,其實(shí)早已涉及到了雅虎、谷歌、Facebook、阿里巴巴和蘋果等多家互聯(lián)網(wǎng)大佬們的核心服務(wù)范圍。前段時間微信又發(fā)布新功能,在廣州、深圳、佛山展開試點(diǎn),啟動城市服務(wù)這個全新的領(lǐng)域。騰訊的整體布局之大,看來真是想讓微信做移動互聯(lián)網(wǎng)的“唯一應(yīng)用入口”,其野心已經(jīng)很明顯了。
我們大可不必被微信的洶涌攻勢所嚇倒,冷靜的思考,微信的快速膨脹快速擴(kuò)展戰(zhàn)略,其實(shí)本身也沒那么可怕。每個垂直細(xì)分的行業(yè)都有自己的價值衡量標(biāo)準(zhǔn),短期的流量如沒有長期優(yōu)質(zhì)的服務(wù)為基礎(chǔ)也是徒勞,只有堅(jiān)持做品質(zhì)做價值才是正道。就好像當(dāng)年的QQ一樣,即時通信帶來的大量流量,確實(shí)能夠帶動起巨大眼球經(jīng)濟(jì),比如其帶動了騰訊游戲的快速發(fā)展。但是騰訊也曾投巨資嘗試過做搜索引擎、做新聞資訊、做網(wǎng)上購物,最終還不是也都敗下陣來。
凡事物極必反,今天微信確實(shí)太強(qiáng)太大了,強(qiáng)大得讓人擔(dān)心是否它是否早已經(jīng)觸及了“去中心化”的自然發(fā)展規(guī)律。人們真正離不開的是“點(diǎn)對點(diǎn)”的溝通(即時通訊),而不是點(diǎn)對多的溝通(社交網(wǎng)絡(luò))。微信的***弱點(diǎn)應(yīng)該就在于人們對“私密小圈子”的渴望,這恰恰也是微信早期獲得成功的原因。目前為止微信的用戶一直在增加,我們每一個人在微信上都能看到自己的七大姑八大姨、單位的同事、領(lǐng)導(dǎo)、各種類型的客戶、還有一大批賣東西的人(說的好聽一點(diǎn)叫搞微信營銷的人)都在里面了,導(dǎo)致原有的私密空間變得越來越不私密,這樣下去微信恐怕也將面對類似“大批用戶逃離Facebook”一樣的局面。國內(nèi)也發(fā)生過類似的情況,當(dāng)初大家一窩蜂的涌入開心網(wǎng),之前沒玩過這類東西嘛,熱情過后又一窩蜂全部逃離出去!
放在微信里打開的即使是普通web頁面,初一看也會讓人覺得閃閃發(fā)光。然而移動端終究和PC端不同,長期來看各種細(xì)分功能的用戶體驗(yàn)效果還是至關(guān)重要的。微信也有其自身的技術(shù)短板,例如:微信的web擴(kuò)展應(yīng)用必須有網(wǎng)絡(luò)的環(huán)境下才能打開;微信自己的“返回”鍵和web應(yīng)用內(nèi)的“返回”鍵還會互相干擾等。但是沒辦法,微信支持的擴(kuò)展能力也只限Web。微信***版本的安裝包已經(jīng)有55M多了,再無限制的增加功能只會讓微信越來越冗腫而加速毀滅。如果你想指望著在微信中擴(kuò)展實(shí)時導(dǎo)航、虛擬現(xiàn)實(shí)、文檔類解析、面部識別、3D控制、離線地圖等這些功能,對不起,這些功能在微信里都是做不到的。
今天的微信已經(jīng)成為移動應(yīng)用的發(fā)布的重要渠道之一,大有“蘋果、安卓、微信一個都不能少”的勢頭。無論智慧城市應(yīng)用還是行業(yè)解決方案應(yīng)用,我們既要保持保持蘋果、安卓、微信(未來還會包括windowsPhone)等幾個平臺的同步發(fā)展,又要控制風(fēng)險,不要把資源全部投入到其中的某一個渠道中,特別是不能把寶全都輕易的壓在微信平臺上,要充分考慮未來的風(fēng)險。就好比在“呼機(jī)、手機(jī)、商務(wù)通一個都不能少”那個狂熱的年代,那些壓巨資于呼機(jī)或商務(wù)通的代理商們,***的結(jié)局也差不多都和呼機(jī)或商務(wù)通一樣,全部消失了。
微信想要做移動終端唯一入口,著實(shí)還是有很大困難的。微信只是一個普通應(yīng)用而已,它再強(qiáng)大也必須運(yùn)行在在蘋果和安卓的系統(tǒng)上運(yùn)行。特別是蘋果公司,每年都在不斷調(diào)整對上線App的政策要求,而微信仍在不斷開放和擴(kuò)展開放第三方應(yīng)用,誰敢保障蘋果公司哪天不會和微信翻臉。在安卓系統(tǒng)體系內(nèi),阿里、百度、小米、魅族這些公司都基于安卓內(nèi)核在做自己云操作系統(tǒng),并且這些系統(tǒng)在國內(nèi)的市場占有率相當(dāng)之高。IT生態(tài)圈的平衡發(fā)展,上下游之間即相互依賴又相互制約,長期來看主導(dǎo)權(quán)不可能只由微信一家說的算。正如馬化騰自己所說"打敗微信的肯定不會是微信,而是另外更好玩的",科技的發(fā)展每時每刻都在不斷向前推進(jìn),這也許并非危言聳聽。
所以,我們要原生App也要微信,但不能只要微信。
原生開發(fā)之困惑
我們說App死不了,并不表示說App的很好嗎?其實(shí)開發(fā)App是一個極其痛苦的過程。總有人找出一些理由說App已死,甚至還有些人對原生App開發(fā)模式明確給以仇視的態(tài)度,這些也都有其現(xiàn)實(shí)原因的,我完全能夠理解。智能手機(jī)的時代確實(shí)發(fā)展的太迅猛,過程中除了對傳統(tǒng)行業(yè)造成了強(qiáng)烈的沖擊外,同時也造成了IT行業(yè)內(nèi)部一些資源的明顯失衡??陀^的說,對于絕大多數(shù)的移動應(yīng)用項(xiàng)目而言,原生開發(fā)過程絕對是一個昂貴的陷阱。目前原生開發(fā)者(特別是IOS的開發(fā)者)工資水平確實(shí)太高:剛畢業(yè)的學(xué)生,培訓(xùn)的2~3個月,就能要到10K的月薪。有個2~3年開發(fā)經(jīng)歷且有些經(jīng)驗(yàn)的,就敢叫到20K的月薪。App應(yīng)用需求爆發(fā)性增長導(dǎo)致了市場供求關(guān)系的現(xiàn)狀,這讓IOS原生開發(fā)人員越來越緊俏,競爭已經(jīng)不僅僅是非理性,甚至已經(jīng)開始有些瘋狂了。在拉勾網(wǎng)上,招聘3~5年以上原生開發(fā)的工程師,月薪能夠給到50K的居然也大有人在。最讓人接受不了的是這么高的工資,居然一直都是供不應(yīng)求。這讓市場上的大多數(shù)公司如何忍受,讓那些經(jīng)驗(yàn)豐富的老程序員們情何以堪呀?
這讓我想起了2000年互聯(lián)網(wǎng)剛興起那個時候的情形,在網(wǎng)泡沫破滅之前,剛畢業(yè)普通做網(wǎng)頁的學(xué)生就能拿到10K工資,和現(xiàn)在的狀況何其相似。
每一個原生應(yīng)用開發(fā)的項(xiàng)目都是一個巨大的坑。要么等著競爭者通過移動互聯(lián)技術(shù)把你打敗,要么跳進(jìn)坑,自己招人來開發(fā)移動應(yīng)用。特別是對于面向互聯(lián)網(wǎng)的2C應(yīng)用或者企業(yè)內(nèi)BYOD的應(yīng)用,更是需要至少招聘IOS、Android兩個以上的原生開發(fā)團(tuán)隊(duì),開發(fā)成本也隨之加倍。最可怕的是,需要面對大量的黑屏、閃退、屏幕適配等底層技術(shù)陷阱。再加上技術(shù)人員流失更換頻率較高,業(yè)務(wù)系統(tǒng)維護(hù)周期較長,操作系統(tǒng)平臺升級后的兼容性問題(例如IOS7 UI布局結(jié)構(gòu)的強(qiáng)制調(diào)整問題、IOS8的64位內(nèi)核強(qiáng)制升級問題)。到處都是技術(shù)陷阱,這豈是每個小項(xiàng)目的成本能夠承受的呀。
于是乎,很多開發(fā)者就會很自然的想到了Web技術(shù),想到了微信平臺。對于一些用戶范圍小、要求性低的App可能是無所謂的。但對一些重要的移動應(yīng)用來說,降低品質(zhì)降低用戶體驗(yàn)效果,往往會直接導(dǎo)致該應(yīng)用的失敗。
原生APP不一定非要由純原生的開發(fā)人員才能完成。這些年我們一直在探尋移動端跨平臺的中間件技術(shù),希望能夠以此來大幅度降低移動應(yīng)用開發(fā)成本。
出路在哪里?
開發(fā)高品質(zhì)的App本就不該是一件困難的事情,我們一直都期望著能夠通過移動中間件技術(shù)平臺,讓普通的菜鳥也可以輕松的站到巨人肩膀上。你的應(yīng)用程序邏輯使用統(tǒng)一的腳本語言編寫并運(yùn)行,而你的應(yīng)用程序用戶界面則完全是原生的,想一想都會覺得很酷!科技的發(fā)展需要更專業(yè)的分工與合作:有人做手機(jī)就會有人做CPU模塊、做攝像頭模塊;同樣有人做App應(yīng)用,也就應(yīng)該有人做底層的UI組件、做API組件。一個優(yōu)秀的移動中間件產(chǎn)品就是應(yīng)該能“讓昂貴項(xiàng)的原生開發(fā)人員能夠更專注于底層技術(shù)創(chuàng)新和組件封裝,讓應(yīng)用開發(fā)人員可以更加專注于具體項(xiàng)目的業(yè)務(wù)需求,實(shí)現(xiàn)原生開發(fā)和應(yīng)用開發(fā)的***分離!”
目前已有的移動中間件開發(fā)技術(shù)主要包括:IOS、Android或WindowsPhone的純原生開發(fā);以Html5技術(shù)為核心的中間件開發(fā)(例如PhoneGap, HBuilder, AppCan, ApiCloud)、以O(shè)penGL技術(shù)為核心的中間件開發(fā)(例如:CrossApp)、以代碼轉(zhuǎn)換和原生反射技術(shù)為核心的中間件開發(fā)(例如:Titanium,Xamarin,React Native),以及以虛擬UI、抽象SDK、動態(tài)組件為核心的中間件開發(fā)(例如DeviceOne)。
采用純原生代碼開發(fā)App,雖然在能力上是***大最靈活的,但卻往往都要面臨以下這些問題:多個平臺作戰(zhàn)、開發(fā)工期長、開發(fā)成本高;原生代碼太靈活技術(shù)陷阱太多,再加上開發(fā)人員水平參差不齊,很難控制應(yīng)用質(zhì)量;項(xiàng)目中要考慮的設(shè)備機(jī)型太多,屏幕適配工作量巨大;App升級工作煩瑣、哪怕是很小的缺陷修復(fù)都必須經(jīng)過AppStore的審批,還可能經(jīng)常被拒…
當(dāng)我們考慮跨平臺需求時,很自然就能想到Html5技術(shù)。如果僅僅是做一個演示demo或體驗(yàn)要求不高的app還勉強(qiáng),然而當(dāng)我們真的去嘗試用Html5做真實(shí)App項(xiàng)目時,我們才會發(fā)現(xiàn)它所欠缺可不僅僅是運(yùn)行效率的問題,在很各個方面與原生交互體驗(yàn)的差距實(shí)在是太大了。 到目前為之我們都很難從蘋果商店里找到一個Html5框架做的且體驗(yàn)還算不錯的應(yīng)用,我們還在移動端項(xiàng)目中痛苦的嘗試Html5技術(shù)的時候,怎能忽略這個事實(shí)呢?
以O(shè)penGL技術(shù)為核心和以代碼轉(zhuǎn)換和原生反射技術(shù)為核心的中間件產(chǎn)品,實(shí)際上并不具備完整的跨平臺能力。就像facebook官方說的那樣,他們所要達(dá)到的目標(biāo)只是”learn once, write anywhere”而已,還不是”write once, run anywhere”。用Javascript語法僅僅是簡單的調(diào)用IOS現(xiàn)有類庫,其開發(fā)難度是可想而知的。
虛擬UI、抽象SDK、動態(tài)組件為核心的中間件,是目前***的中間技術(shù)。目前來看,這類產(chǎn)品在技術(shù)上優(yōu)勢還是比較明顯的。但由于此類產(chǎn)品推出時間太短,市場檢驗(yàn)的時間還夠,所以我們還只能對此采取觀望和嘗試的態(tài)度,后續(xù)其能否真的成為***個值得我們依托的移動中間件平臺,這還要拭目以待。
多樣性的趨勢是移動互聯(lián)時代發(fā)展的特點(diǎn),無論在智能設(shè)備端、物聯(lián)網(wǎng)傳感器端、還是各種終端上的應(yīng)用,都會變得豐富多彩。然而,發(fā)展多樣性并不表示不能解決碎片化的問題,相信未來每個人最常用的App應(yīng)該也不會太多。包括聽音樂、看視頻、玩游戲這些娛樂類的應(yīng)用,還有即時通信應(yīng)用、城市服務(wù)應(yīng)用、辦公管理應(yīng)用、健康管理應(yīng)用、個人信息管理類應(yīng)用等。每個垂直細(xì)分方向上的應(yīng)用,最終可能只有1~2家能夠存活。能否降低開發(fā)成本是事關(guān)發(fā)展事關(guān)生死的問題,但高品質(zhì)應(yīng)用對于優(yōu)秀的移動應(yīng)用產(chǎn)品來說也是至關(guān)重要的。我們期待著能夠真正解決問題的移動中間件產(chǎn)品能夠早一天到來。















 
 
 





 
 
 
 