React Native從入門到深入二、配置環境

Facebook開源React Native也勢要統一移動端編程語言,而其提前發布React Native for Android更是引得國內外開發者一眾熱捧。MDCC 2015平臺與技術Android專場與會講師——阿里巴巴工程師 廖祜秋以《React Native for Android》為主題,將在大會上深度分享React Native 下的 Android 開發,先行撰文對React Native進行實戰

環境配置

需要安裝的有:

Homebrew

Homebrew 是 Mac 中的一個包管理器。沒有安裝的話,點擊 安裝,我的版本如下:

mac-2:~ srain$ brew -v

Homebrew 0.9.5 (git revision ac9a7; last commit 2015-09-21)

版本過低將會導致無法安裝后續幾個組件。可用 brew update 升級。

Node.js 和 npm

Node.js 需要 4.0 及其以上版本。安裝好之后,npm 也有了。

通過 nvm 安裝 Node.js

nvm 是 Node.js 的版本管理器,可以輕松安裝各個版本的 Node.js 版本。

安裝 nvm 可以通過 Homebrew 安裝:

brew install nvm


然后安裝 Node.js:

nvm install node && nvm alias default node

也可以直接下載安裝 Node.js: https://nodejs.org/en/download/

安裝好之后,如下:

mac-2:react-native srain$ node -v

v4.0.0

mac-2:react-native srain$ npm -v

2.14.2

安裝 watchman 和 flow

這兩個包分別是監控文件變化和類型檢查的。安裝如下:

brew install watchman

brew install flow

安裝 React-Native

通過 npm安裝即可:

npm install -g react-native-cli

App開發環境的設置

iOS

XCode 6.3 及其以上即可。

Android

這個比較麻煩。

設置環境變量:ANDROID_HOME

export ANDROID_HOME=/usr/local/opt/android-sdk

SDK Manager 安裝以下包:

Android SDK Build-tools version 23.0.1

Android 6.0 (API 23)

Android Support Repository

初始化一個項目

文檔提到:

react-native init AwesomeProject

初始化一個項目,其中 AwesomeProject 是項目名字,這個隨意。等待一段時間之后(具體視網絡情況而定),項目初始化完成。

進入到項目目錄:

cd AwesomeProject

mac-2:AwesomeProject srain$ ls -l

total 24

drwxr-xr-x? 14 srain? staff? 476 Sep 21 09:52 android

-rw-r--r--? 1 srain? staff? 1023 Sep 21 11:47 index.android.js

-rw-r--r--? 1 srain? staff? 1065 Sep 20 11:58 index.ios.js

drwxr-xr-x? 6 srain? staff? 204 Sep 20 11:58 ios

drwxr-xr-x? 5 srain? staff? 170 Sep 21 10:31 node_modules

-rw-r--r--? 1 srain? staff? 209 Sep 20 11:58 package.json

其中 android 和 ios 中分別為兩個平臺的項目文件。index.android.js 和 index.ios.js 為兩個頁面對應的 js 文件。

運行項目

不管是 iOS 還是 Android,在開發調試階段,都需要在 Mac 上啟動一個 HTTP 服務,稱為“Debug Server”,默認運行在 8081 端口,APP 通 Debug Server 加載 js。

iOS 和 Android 的模擬器,連接 Mac 本機的服務都很方便。但是通過 USB 或者 WiFi 連接調試,就稍微麻煩一些了。

iOS

還是非常簡單,XCode 打開項目,點擊運行就好。修改 index.ios.js, 在模擬器中 ? + R 重新載入 js 即可看到相應的變化。

iOS 真機調試也簡單,修改HTTP地址即可。

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];

Android

按照官方文檔,需要一個模擬器(Genymotion模擬器也可以)。但是不像 iOS,Android 開發平時更多是直接用真機進行開發和調試,如何運行部署到真機,下面會提到。

運行命令:

react-native run-android

然后就會部署到模擬器,修改 index.android.js ,調出模擬器菜單鍵,選擇重新載入 js 即可看到變化。

Android 真機調試

示例 App 直接部署到真機,紅色界面報錯,無法連接到 Debug Server。如果是 5.0 或者以上機型,可通過 adb 反向代理端口,將 Mac 端口反向代理到測試機上。

adb reverse tcp:8081 tcp:8081

如果 5.0 以下機器,應用安裝到測試機上之后,搖動設備,在彈出菜單中選擇 Dev Setting > Debug Server host for device,然后填入 Mac 的 IP 地址(ifconfig 命令可查看本機 IP)

關于修改 DevHelper 來進行和 iOS 一樣的開發調試,后續關于熱部署時,我會介紹到。

在 Android Studio 中調試開發

我們可能希望在 Android Studio 打開項目,然后編譯部署到真機。

這個時候,在命令行啟動 Debug Server 即可:

react-native start

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,786評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,656評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,697評論 0 379
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,098評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,855評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,254評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,322評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,473評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,014評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,833評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,016評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,568評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,273評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,680評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,946評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,730評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,006評論 2 374

推薦閱讀更多精彩內容