React Native開源項目GCore

react-native 是facebook的一個跨平臺方案啸胧∫荼ⅲ可以開發(fā)出同時運行在Android 和iOS平臺的app硝烂,有著learn onece write everywhere 的口號企量。 它是用js語言調(diào)用原生接口俄周,利用React DOM dif算法進行高效渲染【吻辏可以實現(xiàn)接近原生的順滑效果旱易。

初學react-native(以下簡稱RN)是在官方網(wǎng)站上看的文檔禁偎,國內(nèi)有人翻譯成中文文檔,看懂英文的最好到facebook的官網(wǎng)去看阀坏,那里有個神奇的模擬器可以運行看看最終效果如暖,不過要想流暢地瀏覽還是需要把梯子。 文檔一般只是提供一些簡單的接口忌堂,要想快速掌握最好的方式是看別人寫的源碼盒至,既能快速了解框架的知識,還能看到別人優(yōu)秀的架構(gòu)思維士修。
我最開始看的項目是github上的react-native-nba-app枷遂,把所有代碼都看完基本上就知道該怎么做了。 瀏覽完源碼之后還是要進行實踐開發(fā)棋嘲,否則永遠只會停留在理論的層面酒唉。
react-native-GCore 模仿的是一款主機游戲資訊app機核

react-native-GCore的功能及特點:

  • 有首頁,新聞沸移,文章黔州,電臺,視頻五個模塊展示
  • 引入redux進行數(shù)據(jù)管理
  • 下載喜歡的電臺節(jié)目進行本地播放
  • 注冊和登陸阔籽,對主題進行評論
  • WebView與RN之間交互
    最終效果如下圖所示:


    picture one

    picture two

開發(fā)過程

從建立項目到現(xiàn)在差不多用了兩個多月的時間流妻,而且是在公司沒有項目開發(fā)的時候做的。稍微懂點js和css就可以掌握RN的布局技巧笆制,但是react-native還是有不少坑人地方绅这。想要完美運行在Android和iOS上,還是要踩不少坑在辆。在github上就有很多未解的issues证薇。畢竟Android和iOS兩者底層機制不一樣。原生的接口和渲染機制都不相同匆篓, 短期內(nèi)的需求要想自己解決很難浑度,除非對兩個平臺都很熟悉自己封裝原生模塊。還有一個就是利用別人開發(fā)的插件鸦概,這些插件很多也是封裝了原生模塊箩张。
下面列出我在開發(fā)的時候碰到的問題:

  1. 項目中用到了WebView,機核里面需要原生和WebView交互窗市,在iOS下很簡單先慷,直接在iOS webView:shouldStartLoadWithRequest: navigationType:
    對應RN中要實現(xiàn)onShouldStartLoadWithRequest
    ,但是android下就沒這么簡單了,我想到的是當運行的平臺是Android時給每個a標簽添加點擊事件咨察,通過點擊事件把私有鏈接返回給RN论熙。 涉及到在WebView和RN之間通信,在github上有個react-native-webview-bridge它是個WebView的extension摄狱,通過它提供的接口可以方便在兩者間進行通信脓诡。前幾篇有說到這個知識點无午,需要看的童鞋點這里
  2. android 無法獲取ListView上每個元素的相對坐標。
    在播放音頻的時候需要在播放到某個時間軸的時候讓ListView
    滾動到對應的cell祝谚,這時就要需要我們知道具體cell相對于ListView的坐標宪迟。文檔上并提到這個接口,搜了stackoverflow發(fā)現(xiàn)UIManager有個measure方法踊跟。具體使用如下:
import {UIManager,findNodeHandle} from 'react-native'

在cell里面實現(xiàn)

var hand = findNodeHandle(this) 
UIManager.measure(hand,(x,y,w,h,px,py)=>{
         console.log('x: '+x +'  y:' + y )
})

這個方法在iOS可以正常使用踩验,但是在Android上 打印出來的x鸥诽,y都是undefined, github上#12966有人提示說加上 style={{opacity:1}}collapsable={false}商玫,經(jīng)實驗無效。

  1. Android 默認有overflow:'hidden'牡借。 超出父控件的部分會被隱藏掉拳昌,而且是無法修改的。當父控件設置了borderRadius,子控件并不會被父控件的設置了borderRadius而被切掉钠龙,官方這里有說明這個問題是由于Android 渲染的特殊性導致炬藤。
    4.下載文件使用react-native-fs,在iOS平臺下載一切順利,當在Android平臺下載時會阻塞UI碴里。
  2. 原版機核app首頁有滾動手勢傳遞沈矿,但是在RN上實現(xiàn)非常不流暢,因而取消了該設計咬腋,所以出現(xiàn)了最后開發(fā)完成的版本和原版有些許不一致羹膳。

項目仍有很多細節(jié)未完善,做開發(fā)需要的是耐心和踏實的腳步根竿,還要不斷學習給自己充能量陵像。項目暫時告了一段落 ,如果各位有一些更好的建議或者意見寇壳,希望大家提出來一起學習探討醒颖。喜歡的童鞋可以在github上點個star。
GCore項目地址
原文地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末壳炎,一起剝皮案震驚了整個濱河市泞歉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匿辩,老刑警劉巖疏日,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異撒汉,居然都是意外死亡沟优,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門睬辐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挠阁,“玉大人宾肺,你說我怎么就攤上這事∏炙祝” “怎么了锨用?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長隘谣。 經(jīng)常有香客問我增拥,道長,這世上最難降的妖魔是什么寻歧? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任掌栅,我火速辦了婚禮,結(jié)果婚禮上码泛,老公的妹妹穿的比我還像新娘猾封。我一直安慰自己,他們只是感情好噪珊,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布晌缘。 她就那樣靜靜地躺著,像睡著了一般痢站。 火紅的嫁衣襯著肌膚如雪磷箕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天阵难,我揣著相機與錄音岳枷,去河邊找鬼。 笑死多望,一個胖子當著我的面吹牛嫩舟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怀偷,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼家厌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了椎工?” 一聲冷哼從身側(cè)響起饭于,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎维蒙,沒想到半個月后掰吕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡颅痊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年殖熟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斑响。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡菱属,死狀恐怖钳榨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纽门,我是刑警寧澤薛耻,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站赏陵,受9級特大地震影響饼齿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蝙搔,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一缕溉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧杂瘸,春花似錦倒淫、人聲如沸伙菊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镜硕。三九已至运翼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兴枯,已是汗流浹背血淌。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留财剖,地道東北人悠夯。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像躺坟,于是被迫代替她去往敵國和親沦补。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容