一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

原薦頂去它的h5,我還是用js寫原生跨平臺app吧

 解先生9808 2016-02-27

智能手機(jī)功能越來越強(qiáng)大,已經(jīng)在逐漸替代電腦的作用。百度、騰訊、阿里的移動端日活數(shù)也在逐步的趕上甚至超越電腦端用戶。叫喊著“mobile first”的公司越來越多,App開發(fā)者應(yīng)運而生,且隊伍日趨龐大,有的人以此為契機(jī)走上創(chuàng)業(yè)之路。

一、APP開發(fā)之殤

移動開發(fā)并未如想像般風(fēng)光。

每一個原生應(yīng)用開發(fā)的項目都是一個巨大的坑。要么等著競爭者通過移動互聯(lián)技術(shù)把你打敗,要么跳進(jìn)坑自己招人來開發(fā)移動應(yīng)用。寫App真是一個苦B的差事。做一個App通常要配置三套人馬,一撥人去做android,一撥人去做ios;如果還有網(wǎng)站的話,還需要另外配置網(wǎng)頁開發(fā)人員,開發(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ù)陷阱,這豈是每個小項目的成本能夠承受的。

許多公司都是新成立的創(chuàng)業(yè)公司,能出得起錢配足三套人馬的鳳毛麟角。通常都是一個人干三個人的活。如果一個研發(fā)牛人又能搞android又能搞ios,馬上就能成為香餑餑,到手工資大把大把地。

人員問題往往還不需要研發(fā)操心,但是開發(fā)過程中更會遇到開發(fā)維護(hù)成本高、難度大、操作系統(tǒng)版本眾多適配難等等實際問題。那更叫人頭疼!

二、H5的解決之道

原 薦 頂 去它的h5,我還是用js寫原生跨平臺app吧

HTML5標(biāo)準(zhǔn)終于通過了!很多人看到其在移動端“陽光燦爛”的明天。一套html5的代碼可以適應(yīng)android、ios、微信、web等多端平臺。許多人叫囂,未來移動跨平臺開發(fā)是H5的天下!很多“磚家”也說,HTML5將顛覆原生App世界。

基于此,催生了一批跨平臺H5跨平臺開發(fā)平臺/工具:PhoneGap 、Appcan、HBuilder 、APICloud……

然而,事情真的像想象中美好嗎?

之前哥相信了“磚家”的這些話,上了H5的賊船,結(jié)果苦B、趟坑的日子就來了……

基于血淚的經(jīng)驗,H5應(yīng)用目前還是存在如下問題:

1、H5存在天生的“性功能”障礙

“性功能”的說法是HBuilder的老總提出的。即:性能不如原生,工具不如原生、功能不如原生。HBuilder及一眾跨平臺開發(fā)商都宣稱自己解決了這些問題。

H5發(fā)展如此多年,在老舊機(jī)器上,甚至在高端android4.2以下版本的機(jī)器上,卡頓非常明顯。雖然近一年來,千元機(jī)硬件性能大幅度飆升,千元機(jī)也能買到8核了。但你寫一個H5的app試試,未經(jīng)過專業(yè)人員性能優(yōu)化,開多了頁面依然卡頓。

H5的應(yīng)用有許多優(yōu)化點,如果沒有經(jīng)歷若干次趟坑經(jīng)驗,很難搞出性能很好的應(yīng)用來。

別聽很多跨平臺開發(fā)工具商吹的天花亂墜,稍微復(fù)雜一些的APP卡頓就是卡頓,短期內(nèi)還是無法解決。

2、存在源碼泄露、黑客代碼注入等風(fēng)險

H5寫的app,你只需要將安裝包后綴改為 zip,解壓縮后就能直接看到源代碼,根本沒有秘密可言。想想看,你花了好幾個月披星戴月趕工出來的app,源碼隨意就能被人拿走,稍微修改后就能重新打包成新的app,你是什么感受?

更可怕的是,你應(yīng)用的支付寶密鑰、微信的加密key全部都直接暴露給破解者了……

有的跨平臺開發(fā)商聲稱提供混淆加密的功能,但實際上根本沒什么卵用。無論你怎么加密,瀏覽器顯示頁面之前就必須解密出來才能正常顯示。而在android4.4以后版本上,連上電腦,用Chrome瀏覽器直接就能提取出app打開的瀏覽器中原始頁面的任意內(nèi)容,甚至可以設(shè)斷點調(diào)試,用瀏覽器控制臺隨意注入代碼。

3、控件稀缺,集成三方SDK困難

H5的app,如果有美術(shù)基礎(chǔ),用HTML描述界面很是便捷。但是如果你想調(diào)用系統(tǒng)的一些功能,則就需要看你的跨平臺的工具是否支持了。一旦尚未提供,那就苦B了。

雖然好多開發(fā)商都聲稱,自己的工具很容易自已封裝控件擴(kuò)展。但費話,如果我會原生開發(fā),還用你這工具干毛啊,哥直接寫原生的啦。

我之前就遇到這個問題,寫一款A(yù)PP,要用到第三方的SDK,而當(dāng)前的開發(fā)工具沒有提供此類控件,導(dǎo)致項目無法進(jìn)行。之后每天都去開發(fā)商BBS、QQ群里求爺爺告奶奶的等待人家開恩,幫你提供。連續(xù)一個月,人家根本不鳥你,項目最后無奈告終。

既然H5的跨平臺開發(fā)還不靠譜,那怎么辦呢?

三、原生跨平臺解決方案

(一)、React Native的解決方案

React Native的出現(xiàn),讓人感覺到驚喜。既擁有Native的用戶體驗、又保留React的開發(fā)效率。這個理念似乎迎合了業(yè)界普片存在的痛點,開源不到1周github star破萬,目前是27000+。

React Native的原理是在JavaScript中用React抽象視圖操作為系統(tǒng)原生的UI組件,代替DOM元素來渲染。它不同于webkit或任何我們已知的瀏覽器,采用自行封裝的渲染引擎,渲染生成不同平臺下的原生UI,同時JS和Native之間通過Bridge通信實現(xiàn)相應(yīng)的功能。

這種技術(shù)將獨立的界面描述文件與原生UI統(tǒng)一起來,個人認(rèn)為它是已知中間件產(chǎn)品中最先進(jìn)、最能代表未來發(fā)展趨勢的方向。

React Native看上去很美,然而現(xiàn)實卻很“骨感”。

目前,React Native使用中還存在一些問題:

1、界面布局困難

React native與HTML5無關(guān)。雖然它使用的語言還是javascript,它使用自定義的react方式去聲明界面,沒有HTML和css! 對于廣大開發(fā)者,你的HTML和css白學(xué)了,重新學(xué)facebook的語法。

同時,react布局方式與之前傳統(tǒng)觀念差別很大,且沒有可視化工具,如果想布局出一套復(fù)雜的的界面是非常費勁的。

2、安裝包太大

React native是自己的渲染引擎,不是webkit或任何我們熟悉的瀏覽器。相當(dāng)于是facebook的定制瀏覽器。引擎包的體積不小,hello world就是7M。如果實現(xiàn)一個中等功能的APP,十幾兆的包是跑不了啦。

3、開發(fā)工具

React native沒有配套的ide,開發(fā)調(diào)試非常麻煩。沒有原生開發(fā)基礎(chǔ)的話甚至可能搭不起來開發(fā)環(huán)境。

打包也不方便,沒有mac電腦無法調(diào)試或打包ios應(yīng)用。

4、不符合國情

像國內(nèi)開發(fā)一款A(yù)pp,嵌入一些第三方開發(fā)包那是再正常不過的事情。比如登錄要嵌入微信、微博、QQ等第三方庫,聊天嵌入環(huán)信,統(tǒng)計嵌入友盟,支付嵌入支付寶……

這些第三方庫如何集成到React Native的項目里呢?如果你祈禱哪天facebook幫你集成好發(fā)布一些控件包的話,那你就等著去吧。

(二)、DeviceOne的解決方案

DeviceOne是一個新興的移動跨開發(fā)平臺。2015年5月份正式對外發(fā)布(他們網(wǎng)站SEO做的很爛,宣傳也少,故目前還較少人知道)。

DeviceOne采用類似于React Native的解決方案。它已經(jīng)提供了大量豐富的UI組件和API組件,這些組件全部都是貨真價實的純原生實現(xiàn),而運行中的應(yīng)用也是純原生的UI呈現(xiàn)。你開十幾個頁面根本感覺不到卡頓。

平臺下所有UI組件功能組件都已經(jīng)被抽象成可被自由擴(kuò)展的跨平臺組件,就連Webkit本身在模型中也僅僅退化成一個普通的UI組件而已,App開發(fā)者可以自由選擇js腳本、lua腳本來編寫業(yè)務(wù)邏輯。只需要下javascript人員即可完成純原生的app開發(fā),做出的產(chǎn)品那個流暢啊……

研發(fā)人員可以選擇要打包的控件列表,打出的包非常小,通常在3-5M以內(nèi)。而且由于是原生app,代碼全部做的加密處理,黑客無法簡單的解壓縮就能盜用代碼了。

同時,DeviceOne實現(xiàn)了界面和業(yè)務(wù)邏輯的分離。UI可以通過IDE直接拖拽生成,那叫一個爽字!

原 薦 頂 去它的h5,我還是用js寫原生跨平臺app吧

所見即所得的界面

DeviceOne已經(jīng)提供了80多個控件,不僅僅可以DIY出很炫的界面,而且還很接地氣的加入了許許多多第三方SDK,很方便使用。同時如果官方的控件沒有滿足需要的話,可以自己封裝原生控件到IDE中來。這樣一來,基本上所有原生可以做的事,它都可以實現(xiàn)了。像 H5 難以完成的媒體、影音的效果,用DO實現(xiàn)輕而易舉。

另外,DeviceOne并不排斥H5。你完全可以把之前實現(xiàn)的 html 代碼用 WebView 控件加載起來,實現(xiàn)了歷史資產(chǎn)的復(fù)用,以及過渡。

官方提供了三個演示app源碼:

原 薦 頂 去它的h5,我還是用js寫原生跨平臺app吧

更多演示源碼可以在論壇里找到。

我下載看了這些代碼后,大約在兩天時間內(nèi)就完成了上手。在實際使用其進(jìn)行了一個APP開發(fā)后,開發(fā)過程中沒有什么太多的坑,過程還是很美好的。

只需用JS就可以寫原生APP,哇賽,簡直是太爽了。

等有空時,我會寫一系列文章介紹它,以及用它開發(fā)一款A(yù)PP的整個過程,幫助同我一樣有跨平臺APP開發(fā)的人更方便的去開發(fā)。

讓我們一起用JS寫原生APP吧!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产激情国产精品久久源| 男人操女人下面国产剧情| 国产二级一级内射视频播放| 情一色一区二区三区四| 老熟妇乱视频一区二区| 久久国产精品亚州精品毛片| 日本加勒比在线观看不卡| 欧美国产在线观看精品| 国产精品亚洲综合天堂夜夜| 国产av天堂一区二区三区粉嫩| 国产在线一区中文字幕| 99国产高清不卡视频| 国产一区二区三区av在线| 日本人妻精品中文字幕不卡乱码 | 男女激情视频在线免费观看| 黄片三级免费在线观看| 精品精品国产欧美在线| 好吊妞在线免费观看视频| 日本人妻精品中文字幕不卡乱码| 日韩高清中文字幕亚洲| 国产精品不卡高清在线观看| 一区二区三区免费公开| 精品午夜福利无人区乱码| 欧美又黑又粗大又硬又爽| 国产91人妻精品一区二区三区 | 青青久久亚洲婷婷中文网| 激情偷拍一区二区三区视频 | 欧美性高清一区二区三区视频 | 成年男女午夜久久久精品| 国产黑人一区二区三区| 日本熟妇五十一区二区三区 | 婷婷九月在线中文字幕| 国产又粗又猛又长又黄视频| 中文字幕日韩欧美理伦片| 亚洲成人精品免费在线观看| 国产人妻熟女高跟丝袜| 91亚洲国产—区=区a| 亚洲中文在线男人的天堂| 久久精品视频就在久久| 日韩精品少妇人妻一区二区| 小草少妇视频免费看视频|