精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PhoneGap開發(fā)實踐:豆瓣音樂人App

移動開發(fā)
使用感覺上來說, PhoneGap在iOS上的效果要略好于Android上的效果,幾乎跟原生界面沒太大區(qū)別。雖然跟原生app相比,渲染速度等細節(jié)上仍然略微吃虧,但總的看來是完全可以接受的水平。總結(jié)一下的話,我們對基于PhoneGap得到的成果是滿意的,開發(fā)性價比很高。

豆瓣音樂人app在2011年開發(fā)時,便采用了基于原生與webapp混合架構(gòu)的PhoneGap框架,直到今天。這也是目前豆瓣唯一一款使用 PhoneGap的app。最近我們剛發(fā)布了音樂人app的ios新版,仍然保持這一架構(gòu),在原生方面的功能上做了一些增強。PhoneGap為音樂人 app的順利發(fā)布帶來很大幫助,當(dāng)然同時也造成了一些局限。

當(dāng)時如何做出使用PhoneGap的決定

我們之所以在技術(shù)選型時作出這一選擇,主要有以下幾個方面的原因:

  1. 開發(fā)效率的考慮

    盡管豆瓣音樂人的用戶對app有很強的需求,但音樂人app的定位和發(fā)展方向,當(dāng)時處于不斷探索和快速迭代的階段,這樣的情況意味著,音樂產(chǎn)品線希望使用盡 可能簡單的方式、占用較少的人力資源進行開發(fā),盡快在多個平臺發(fā)布,并且對于迭代的需求能夠快速響應(yīng)。在各種因素的權(quán)衡中,優(yōu)先考慮滿足上述需求。

    對 于原生app好還是webapp好這個問題,似乎一直有很大爭議,實際上我不認(rèn)為這是一個純粹的技術(shù)問題。webapp在開發(fā)效率上的優(yōu)勢,原生app在 性能和開發(fā)自由度上的優(yōu)勢,都是不言自明的,一個app是否采用混合架構(gòu),在我看來,最重要的因素還是產(chǎn)品定位和發(fā)展策略,如果希望盡快發(fā)布、跨平臺、能 快速響應(yīng)可以預(yù)見的迭代,那么混合架構(gòu)就很值得考慮。如果有足夠的開發(fā)人員覆蓋各平臺、產(chǎn)品設(shè)計成熟度高、產(chǎn)品周期上可接受相對較長的開發(fā)時間,那么原生 顯然是更好的選擇。

  2. 跨平臺的考慮

    豆瓣音樂人會是一個以展示內(nèi)容和收聽流媒體音樂為主的app,那些只有原生代碼才可以實現(xiàn)的功能,我們需要得比較少。這意味著,如果我們采用混合架構(gòu),需要實現(xiàn)的原生特性與需要解決的跨平臺問題會較少,混合架構(gòu)的優(yōu)勢會被放大。

    即 使考慮了第一個因素后認(rèn)為值得使用混合架構(gòu),如果app本身的特性不適合webapp的方式,那也會顯得沒有這個必要。Webapp之所以開發(fā)效率高,一 方面在于html+css+js能做的事情,比用原生代碼做同樣的事情要簡單得多,另一方面在于方便跨平臺。如果app里面要實現(xiàn)的功能,很多都沒法用 html做,必須用原生代碼,那這兩方面的優(yōu)勢都消失殆盡。

    實際上,就在我們第一個版本發(fā)布前不久,設(shè)計方面進行了一次review,然后對app的整體外觀風(fēng)格和某些功能與交互做了大幅修改。但其實只用了幾天,設(shè)計的修改就被完全實現(xiàn)了,這樣的速度對web前端開發(fā)來說當(dāng)然不是什么難事,但對原生app來說卻是難以想象的。

App架構(gòu)與開發(fā)工作流

PhoneGap 只是個原生外殼,app的內(nèi)核是一個完整的webapp,需要調(diào)用的原生功能將以原生插件的形式實現(xiàn),以暴露js接口的方式調(diào)用。在webapp框架的選 擇上,我調(diào)研了當(dāng)時的一些專用于webapp的js框架,幾乎都不大成熟,沒什么合適的,當(dāng)然現(xiàn)在的情況已經(jīng)大不一樣了。由于音樂人app的規(guī)模不算大, 而且在移動設(shè)備的webview中性能非常重要,我決定把一些小工具組合成一套微型框架來使用,盡可能優(yōu)化執(zhí)行效率。框架大致由以下小零件組成:

  • jQuery;
  • iScroll4(模擬app風(fēng)格的滾動);
  • js模板機制;
  • url分發(fā)與訪問歷史管理;
  • 頁面關(guān)系與頁面切換機制;
  • 基于Jsonp的帶用戶認(rèn)證的api接口封裝。

這 樣就簡潔地實現(xiàn)了最小化的js框架。之所以使用jsonp的方式通信,是因為我非常希望能使用chrome進行調(diào)試,這樣開發(fā)時就很方便,只需要雙擊本地 的html文件,chrome就會成為一個完美的移動設(shè)備模擬器,我可以使用自己喜歡的任意前端開發(fā)調(diào)試工作流,這比任何移動設(shè)備模擬器都要方便得多。

有了框架,接下來只需要一個頁面一個頁面實現(xiàn)就好了,我把webapp部分作為git submodule,ios和android的倉庫都包含它,打包時使用各自的編譯發(fā)布流程即可。

PhoneGap開發(fā)中遇到的問題

大致說一下遇到的印象深刻的問題。其實PhoneGap現(xiàn)在的版本已經(jīng)有很大改進,而且主流手機的性能已經(jīng)比以前好太多,現(xiàn)在新開發(fā)PhoneGap的話,應(yīng)該會輕松很多。

css3性能問題

我 們開始的設(shè)計中,有一些半透明和投影等效果,但我發(fā)現(xiàn)用css3實現(xiàn)后,會導(dǎo)致性能不好,這跟原生開發(fā)時可能遇到的半透明性能問題是一樣的。Webkit 并不如我們想象的那樣有保障。后來,我們?yōu)榇诵薷牧嗽O(shè)計,盡可能使用不透明的元素,去掉投影等效果,并減少dom復(fù)雜度,性能得到了明顯提升。

像素密度問題

對 于不同像素密度的屏幕,需要準(zhǔn)備不同的圖片,然后在css里面使用媒體選擇器,根據(jù) –webkit-device-pixel-ratio,分別插入密度為0.75(老android手機),1(非retina iPhone),1.5(一些android手機),2(retina)的不同css,以使用不同的背景圖片。只需要修改一個css文 件,MakeFile腳本會自動生成其他的幾個css文件。當(dāng)然,我還需要保證這四套圖片是存在并且正確命名的。

Mp3播放問題

iOS 的webview支持mp3播放是沒有問題的,但當(dāng)時會有一個限制,就是如果用戶沒有主動操作,webview就不能自動開始播放,為它做一個 workaround也就能夠解決了。比較麻煩的是android的某些較老的版本,雖然支持audio標(biāo)簽,但是不支持mp3格式的音頻,事實上它不支 持任何格式的音頻。所以對于這種情況,只能使用PhoneGap自帶的音頻播放功能。對用戶而言,效果是一樣的,但這增加了webapp的依賴,使 webapp部分變得復(fù)雜了。

不同系統(tǒng)的行為差異

雖然大體上來說,iOS和android使用的webview,其行為都是差不多的,而且由于都是webkit,樣式會非常接近,幾乎是自動完美跨平臺。但是實際開發(fā)中發(fā)現(xiàn),還是會有一些區(qū)別,例如:

  • app ready時觸發(fā)的事件不一樣,當(dāng)然這和PhoneGap封裝有關(guān);
  • android有時候會有軟鍵盤問題,有個插件可以解決;
  • 處理打開外部url時行為不一致;
  • 支持的動畫方式有區(qū)別,對不同平臺需要盡可能使用高效、硬加速的動畫方式。
  • 需要為android的幾個實體按鍵寫專門的處理函數(shù)。

仍然需要編寫原生代碼

有的需求在webapp內(nèi)無法做到,這是經(jīng)常遇到的事。例如:

  • 推送消息;
  • 狀態(tài)欄提醒;
  • 打開內(nèi)置瀏覽器訪問一些url;
  • 綁定社交平臺賬號;
  • 緩存下載的圖片和音樂等文件。

很 多都可以找到插件來解決,現(xiàn)在市面上的插件比當(dāng)時開發(fā)音樂人app最初版本時,已經(jīng)豐富得多了,但仍然可能無法滿足需求,這時就需要自己寫插件來完成,每 出現(xiàn)一個這樣的需求,就意味著要為每個系統(tǒng)做一次原生解決方案。我們正準(zhǔn)備把音樂人app中使用的“推薦到社交平臺”的插件進行開源,提供給其他有類似需 求的開發(fā)者使用。

可以移植到更多平臺,但也需要一些工作

我 簡單試過WebOS,樣式上會非常一致,但存在一些其他問題,為穩(wěn)定起見,我們沒有發(fā)布WebOS的打包。另外,移動版IE10已經(jīng)是對標(biāo)準(zhǔn)非常友好的瀏 覽器,但樣式上跟webkit仍然有差異,不能把webkit的webapp直接拿來就用,需要做適配。感覺上又回到了桌面web開發(fā)的世界。

有趣的是,使用MacGap把app核心部分打包成Mac的桌面應(yīng)用,倒是完全無痛,幾乎直接就可以用。

總結(jié)

使用感覺上來說, iOS上的效果要略好于Android上的效果,幾乎跟原生界面沒太大區(qū)別。雖然跟原生app相比,渲染速度等細節(jié)上仍然略微吃虧,但總的看來是完全可以接受的水平。

總結(jié)一下的話,我們對基于PhoneGap得到的成果是滿意的,開發(fā)性價比很高。用戶對音樂人app的評價也比較好。將來在產(chǎn)品穩(wěn)定后,我們是否會使用純原生app替代PhoneGap,現(xiàn)在還不知道,這將取決于產(chǎn)品未來的決策。希望得到什么,也就同時決定了會放棄什么,一切都是權(quán)衡的結(jié)果,框架沒有銀彈。

責(zé)任編輯:徐川 來源: 碼農(nóng)們的博客
相關(guān)推薦

2016-11-28 10:23:49

DELL

2024-05-11 10:38:57

2020-05-22 17:37:56

網(wǎng)絡(luò)安全

2024-04-03 12:42:18

2011-07-05 17:29:53

PhoneGapevents

2011-07-19 13:26:50

iPhone PhoneGap 框架

2014-07-04 09:43:22

2011-12-23 10:02:37

PhoneGapAndroid插件

2010-10-09 15:01:27

PhoneGapiPhoneAndroid

2011-12-23 09:53:24

PhoneGap

2023-10-09 07:29:35

算法音樂驅(qū)動數(shù)字人

2011-07-01 15:02:53

PhoneGap移動開發(fā)框架

2011-10-31 13:13:48

PhoneGapAppMobi

2011-12-30 15:17:23

Adobe視頻PhoneGap

2011-12-30 15:11:36

Adobe視頻PhoneGap

2023-06-12 07:44:21

大數(shù)據(jù)數(shù)據(jù)治理

2012-03-08 09:09:11

PhoneGapjQuery Mobi本地化Web App
點贊
收藏

51CTO技術(shù)棧公眾號

国产无码精品一区二区| 国产曰肥老太婆无遮挡| www.亚洲激情| 日韩久久电影| 欧美精品vⅰdeose4hd| 一本一道久久a久久精品综合| 中文字幕人妻一区二区在线视频 | 欧美做受69| 欧美视频在线看| 四虎影院一区二区三区 | 亚洲美女动态图120秒| 污色网站在线观看| 高清在线视频不卡| 中文字幕一区二区三| 国产精品一区二区三区在线 | 蜜桃av免费在线观看| 亚州一区二区| 在线观看视频91| 成年在线观看视频| 国产视频二区在线观看| 国产成人av在线影院| 国产精品劲爆视频| 日韩免费黄色片| 天天色综合色| 亚洲欧美另类中文字幕| 亚洲精品成人无码毛片| 51一区二区三区| 天天综合日日夜夜精品| 二级片在线观看| 爱久久·www| 99re热这里只有精品免费视频| 成人性生交大片免费观看嘿嘿视频| 国产免费av一区| 亚洲国产国产亚洲一二三| 久久综合久久八八| 青青青视频在线播放| 一区二区三区日本久久久 | 国产精品久久久久一区二区国产| 成人美女在线观看| 99视频在线免费观看| 又色又爽又黄无遮挡的免费视频| 不卡av免费观看| 国产精品久久久久精k8| 日韩高清国产精品| 欧美美女搞黄| 99精品视频在线观看| 不卡一卡2卡3卡4卡精品在| 91肉色超薄丝袜脚交一区二区| 日日夜夜免费精品| 日韩av快播网址| aaaaaa毛片| 美女精品网站| 国产精品成人v| 婷婷激情五月综合| 丝袜亚洲另类欧美| 国产精品igao视频| 一级久久久久久| 日韩电影一区二区三区| 国产精品av网站| 国产精品第六页| 免费一级欧美片在线观看| 清纯唯美日韩制服另类| 国产精品久久久久久人| 日韩成人av影视| 国产精品丝袜久久久久久高清 | 日韩精品乱码av一区二区| 青草成人免费视频| 国产精品乱码一区二区视频| 伊人精品一区| √…a在线天堂一区| 欧美国产乱视频| 久久丫精品久久丫| 国产一区91| 久久久久久久久网站| www.xxxx日本| 日韩视频精品在线观看| 5252色成人免费视频| 久久久国产免费| 久草精品在线观看| 国产精品久久久久久久小唯西川 | 日本网站在线播放| 久久大逼视频| 91在线网站视频| 不卡视频免费在线观看| 91丨九色丨蝌蚪富婆spa| 亚洲成色最大综合在线| 怡红院在线播放| 欧美日韩免费网站| 日韩av卡一卡二| 97成人在线| 亚洲一区二区黄| 激情综合五月网| 日韩午夜在线电影| 国产精品自产拍高潮在线观看| 午夜精品久久久久久久91蜜桃| 99精品视频在线免费观看| 一本色道久久99精品综合| 日韩影视在线| 欧美视频一区二区在线观看| 成人三级做爰av| 美女亚洲一区| 久久国产视频网站| 人人草在线观看| 精品在线播放免费| 久久香蕉综合色| 免费在线看黄| 色婷婷精品大视频在线蜜桃视频 | 国产69精品久久久久9999人| 欧美成人一区二区三区片免费| 3d动漫精品啪啪一区二区下载| 国产精品88久久久久久| 日本精品久久电影| 国产高清不卡视频| 中文字幕欧美日韩一区| 欧美精品自拍视频| 欧美不卡在线观看| 中文字幕不卡在线视频极品| 国产精品免费av一区二区| 久久国产麻豆精品| 免费看污久久久| 91吃瓜在线观看| 欧美一区二区观看视频| 婷婷综合在线视频| 母乳一区在线观看| 国产视色精品亚洲一区二区| 国产黄色在线免费观看| 欧亚一区二区三区| 右手影院亚洲欧美| 亚洲每日在线| 国产69精品久久久久9999apgf| 日本电影全部在线观看网站视频 | 欧美精品在线视频观看| 免费精品一区二区| 国产亚洲欧美日韩日本| 国产a级一级片| 久久精品色综合| 欧美激情精品久久久久久久变态| 国产又黄又猛又爽| 国产精品国产成人国产三级| 亚洲精品怡红院| 国产欧美日韩| 国产国产精品人在线视| 久色视频在线| 日韩欧美国产中文字幕| 亚洲欧美日本一区| 亚洲久久成人| 久久99精品久久久久久久青青日本| 国产亚av手机在线观看| 欧美成人精品福利| 久久免费精彩视频| 成人天堂资源www在线| 久久99久久99精品| 日韩精品一区国产| 欧美激情精品久久久久久大尺度| 国产ts变态重口人妖hd| 亚洲精选视频免费看| 欧美日韩一区二区三区69堂| 色综合蜜月久久综合网| 国产精品吴梦梦| 免费网站看v片在线a| 91精品国产麻豆国产自产在线 | 婷婷成人激情| 欧美老女人第四色| 538任你躁在线精品视频网站| 黄色小说综合网站| 日本aa在线观看| av日韩精品| 欧美性在线观看| 国产视频在线看| 欧美日韩国产经典色站一区二区三区 | 国产成人精品久久久| 青青久草在线| 亚洲成人1区2区| 亚洲欧洲久久久| 麻豆成人久久精品二区三区红| 亚洲自拍偷拍一区二区三区| 一区二区三区自拍视频| 26uuu另类亚洲欧美日本一| 三级国产在线观看| 欧美日韩三级一区二区| 成人观看免费视频| 91丨porny丨蝌蚪视频| 九九热精品在线播放| 午夜精品999| 欧美精品在线一区| 伊人久久大香伊蕉在人线观看热v| 欧美国产中文字幕| 欧美男男同志| 欧美一区二区三区四区视频| 精品成人久久久| 中文字幕在线免费不卡| 成人手机在线免费视频| 日韩高清在线电影| 2018中文字幕第一页| 国产一区二区三区天码| 97久久夜色精品国产九色| 美女一区网站| 欧美国产日韩一区二区| 成人免费在线电影| 精品国产免费人成电影在线观看四季| 亚洲不卡在线视频| 亚洲一区视频在线观看视频| 精品人妻一区二区三区蜜桃视频| 国产精品99久久久久久有的能看| 激情六月丁香婷婷| 欧美精品不卡| 亚洲精品欧美精品| 卡通动漫精品一区二区三区| 国产免费一区二区三区香蕉精| aaa在线播放视频| 久久久999成人| 免费在线超碰| 精品av久久707| 91资源在线视频| 91久久免费观看| 国产大片中文字幕在线观看| 国产精品久久久久四虎| 欧美黑人欧美精品刺激| 国产高清不卡二三区| 亚洲一级免费观看| 毛片一区二区| 逼特逼视频在线| 国产综合激情| 永久免费网站视频在线观看| 成人嫩草影院| 欧洲一区二区在线| 欧美成人午夜77777| 豆国产97在线| 国色天香久久精品国产一区| 国产精品女人网站| 国产精品扒开腿做爽爽爽视频软件| 国模吧一区二区| 欧美另类tv| 九九热r在线视频精品| 亚洲麻豆精品| 伊人久久五月天| 国产永久免费高清在线观看视频| 日韩二区三区在线| 婷婷丁香花五月天| 精品国产91久久久久久久妲己| 999av视频| 欧美一区二区三区视频免费播放| 91精品中文字幕| 欧美日韩一区二区三区四区 | 美美哒免费高清在线观看视频一区二区| 99精品在线免费视频| av不卡免费看| 免费一级特黄特色毛片久久看| 国精品一区二区| www插插插无码免费视频网站| 亚洲精品网址| 99热都是精品| 欧美99久久| 成年人看的毛片| 影音先锋久久久| 欧美性大战久久久久xxx| 亚洲在线视频| 九色porny91| 精品影视av免费| 五月天六月丁香| 成人午夜电影网站| 中文字幕 亚洲一区| 久久久久久日产精品| 国产伦理片在线观看| 国产精品日韩精品欧美在线| av片在线免费看| 亚洲丝袜自拍清纯另类| 久久久久性色av无码一区二区| 亚洲成人手机在线| 久久久精品视频网站| 欧美中文字幕一区二区三区| 国产精品美女一区| 精品国产一区二区三区四区四| 天天干天天爽天天操| 亚洲欧美日韩国产成人| 91caoporm在线视频| 久久午夜a级毛片| 99热99re6国产在线播放| 欧美综合激情网| 伊人久久大香| 精品久久久久久乱码天堂| 欧美日韩国产一区二区三区不卡| 中文字幕一区二区三区5566| 激情成人综合| 久久久久久久片| 免费在线观看日韩欧美| 白丝校花扒腿让我c| 久久婷婷色综合| 免费看一级大片| 欧美日韩中文字幕在线| 在线免费a视频| 亚洲精品一线二线三线无人区| 青青免费在线视频| 久久久国产影院| 乡村艳史在线观看| 亚洲伊人第一页| 国产剧情一区| 成人短视频在线观看免费| 久久精品午夜| 久久人妻少妇嫩草av蜜桃| 国产欧美一区二区精品婷婷| 麻豆91精品91久久久| 欧美色电影在线| 天天干免费视频| 久久五月天色综合| 456成人影院在线观看| 国产精品美女xx| 9999国产精品| 一本久道中文无码字幕av| 国产成a人亚洲精| 国产破处视频在线观看| 精品久久久中文| 国产成人三级在线播放 | 久久av在线| 国产麻豆剧传媒精品国产| 国产精品国产精品国产专区不片| 800av免费在线观看| 日韩欧美国产综合一区| 欧美成人hd| 国产精品日韩精品| 秋霞影视一区二区三区| 999久久欧美人妻一区二区| 精品一区二区三区在线播放视频| 蜜桃精品成人影片| 亚洲一区视频在线观看视频| 国产毛片一区二区三区va在线 | 99久热re在线精品视频| 色综合久久网| 一区二区成人网| 久久久九九九九| 日韩手机在线视频| 日韩成人免费视频| a级片在线免费观看| caoporn国产精品免费公开| 999久久久91| 一本岛在线视频| 中文字幕精品一区| 欧美三级网站在线观看| 国产亚洲欧美一区| 日韩三区免费| 日韩精品av一区二区三区| 久久综合图片| 欧美做受高潮6| 欧洲中文字幕精品| 成人免费在线观看| 国产日韩欧美综合| 欧美freesextv| 手机在线视频一区| 亚洲激情自拍偷拍| 亚洲乱熟女一区二区| 欧美国产第二页| 久久香蕉网站| 欧美a在线视频| 国产欧美精品一区二区三区四区| 国产成人a v| www.国产一区| 久久久精品区| 免费人成自慰网站| 成人av网址在线| 中文字幕亚洲乱码熟女1区2区| 亚洲美女性生活视频| 播放一区二区| 黄色一级视频播放| 成人激情黄色小说| 四虎成人在线观看| 色噜噜狠狠狠综合曰曰曰| 国产欧美日韩电影| 亚洲国产精品无码观看久久| 97久久人人超碰| 中文字幕永久在线| 成人97在线观看视频| 久久夜色电影| 中文字幕第21页| 亚洲精品视频在线| 日批视频免费播放| 国产精品爱久久久久久久| 五月天久久网站| 亚洲av午夜精品一区二区三区| 欧美视频裸体精品| 98在线视频| 国产精品亚洲一区| 久久精品中文| 裸体武打性艳史| 日韩精品极品毛片系列视频| 丁香久久综合| 久久精品xxx| 日本一区二区免费在线| 99久久久久久久| 97色在线视频| 日本午夜一区| 永久免费未满蜜桃| 欧美日韩在线精品一区二区三区激情| bestiality新另类大全| 久久婷婷人人澡人人喊人人爽| 麻豆精品国产91久久久久久| 久久网免费视频| 中文字幕日韩欧美在线| 成人爽a毛片| 孩娇小videos精品| 性久久久久久久久|