久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

 解先生9808 2016-02-27

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

一,、APP開發(fā)之殤

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

每一個原生應用開發(fā)的項目都是一個巨大的坑,。要么等著競爭者通過移動互聯(lián)技術把你打敗,,要么跳進坑自己招人來開發(fā)移動應用。寫App真是一個苦B的差事,。做一個App通常要配置三套人馬,,一撥人去做android,一撥人去做ios,;如果還有網(wǎng)站的話,,還需要另外配置網(wǎng)頁開發(fā)人員,開發(fā)成本也隨之加倍,。最可怕的是,,需要面對大量的黑屏、閃退,、屏幕適配等底層技術陷阱。再加上技術人員流失更換頻率較高,,業(yè)務系統(tǒng)維護周期較長,,操作系統(tǒng)平臺升級后的兼容性問題(例如IOS7 UI布局結(jié)構的強制調(diào)整問題,、IOS8的64位內(nèi)核強制升級問題)。到處都是技術陷阱,,這豈是每個小項目的成本能夠承受的,。

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

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

二,、H5的解決之道

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

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

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

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

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

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

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

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

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

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

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

2、存在源碼泄露,、黑客代碼注入等風險

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

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

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

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

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

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

我之前就遇到這個問題,,寫一款APP,,要用到第三方的SDK,而當前的開發(fā)工具沒有提供此類控件,,導致項目無法進行,。之后每天都去開發(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)相應的功能。

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

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

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

1,、界面布局困難

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

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

2,、安裝包太大

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

3、開發(fā)工具

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

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

4,、不符合國情

像國內(nèi)開發(fā)一款App,嵌入一些第三方開發(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),而運行中的應用也是純原生的UI呈現(xiàn),。你開十幾個頁面根本感覺不到卡頓,。

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

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

同時,,DeviceOne實現(xiàn)了界面和業(yè)務邏輯的分離。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)的復用,以及過渡,。

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

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

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

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

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

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多