React Native

React Native

npm建議版本 4.6.1 or 5.3.0 (其他容易會有安裝package失敗問題)

1.windows環境建置

需求安裝:

1.JDK

2.Android Studio

3.Genymotion

4.Node.js

1.npm install -g react-native-cli 安裝

2.react-native init AwesomeProject react native創建資料夾

3.安裝JDK與android studio後,創建一個新專案

4.進到專案資料夾把local.properties 複製到AwesomeProject 的android資料夾內 產生環境變數

5.開啟android studio 點選上方圖案(SDK manger),之後再點Launch Standalone SDK manger 勾選build tool後安裝

記得把android SDK 加入系統環境變數(ANDROID_HOME)

6.在cmd輸入react-native run-android(記得開好genymotion),正常跑完會出現紅色底字,這時因為我們還沒啟動react-native的server

7.於cmd輸入 react-native start ,之後於genymotino點選Reload JS即可

(如果使用Android studio的原生模擬器,在windows上要按ctrl+m)

8.正常啟動後,可點選index.android.js修改,之後點genymotion的右側menu,設定hot reload 儲存後即立刻更改畫面

可能的問題

解決方案

2.React native專案檔案介紹

1.index.android.js

我們一般會在該檔案,寫為如下

特別要注意的地方為

AppRegistry.registerComponent('AwesomeProject', () => App);

registerComponent第一個參數要跟資料夾名稱相同,第二個參數要跟你的component enrty相同

2.app目錄

我們假設你已經學過React跟redux的基礎,以下我們稱react-native簡稱為native

在native中,和一般node專案一樣使用npm安裝套件,接著再跟目錄創建app資料夾,將專案相關文件都寫於裡面

3.buckconfig(給IOS用)

http://nuclide.io/docs/platforms/react-native/#buck-integration

4.flowconfig

http://flowtype.org/ Flow is not supported on Windows, so this integration is not yet available on that platform.

3.Implement with Redux

範例連結: https://github.com/alinz/example-react-native-redux

下載後

1.將app資料夾放入你的project

2.npm install redux react-redux redux-thunk --save

3..將index.android.js改為如下即可運行

目前專案結構長為這樣

4.Layout

1.flex介紹

1.父元素要有flex屬性,子元素flex才有作用

2.flex數字越高,占的空間越大 (主要為同一層元素之flex數字間的比例關係)

1.基本範例

2.改變layout 方向(flexDirection)

於父元素加入該屬性,其子元素會改變layout排列方向

3.其他layout方法與CSS 的flexbox屬性用法相同

內建基本元件

須先於上方import進入js檔案

1.View

2.Text

3.Image

4.Touchable事件

1.TouchableOpacity

2.TouchableHighlight

PS:記得要有onPress屬性,才會有效果

5.DrawerLayoutAndroid

類似於隱藏選單,從邊緣拉入後顯示

於最外層view外面加入DrawerLayoutAndroid Tag,且從renderNavigationView屬性寫出Drawer的外觀

6.ListView

許多列組成的畫面

EX:

產生APK

1.使用JAVA工具產生keystore

再來輸入

之後依序填入資訊,記得:其中分別有兩次的密碼要你輸入,必須輸入不同的,最後會在bin資料夾下看到產生的keystore

2.之後把剛才產生的keystore檔案放在react專案下的android\app路徑資料夾內

3.修改android資料夾下的gradle.properties檔案

將星號改為你剛才輸入的store與key的密碼

4.在android/app/build.gradle 檔案中新增

1.先加入整個signingConfig如下

2.之後在buildTypes的release系新增一條規則如下

加完後類似如下

5.最後

先cd android

之後輸入gradlew assembleRelease

即可

官網雖有更新,不過這個 build 流程 2020/10 確認還可用

有關於 assembleRelease 與 bundleRelease 差別可參考以下:

https://blog.swmansion.com/make-your-react-native-app-3x-smaller-44c993eda2c9

6.確認與安裝

在C:\Users\yicheng\reactNative2\android\app\build\outputs\apk

即可發現產生了app-release.apk 檔案

(如產生的檔案為unsign,須確認上述的config內容是否正確)

之後可直接把該apk放入手機安裝及可

或是輸入gradlew installRelease會直接安裝在模擬器(記得先把之前dev時安裝在上面的app刪除,否則無法安裝)

開發

  1. 先開啟Genymotion

  2. 輸入以下:

連接手機

如果沒有 adb 可以去下載 android sdk

然後連接手機後選取傳輸檔案,然後開放 USB 偵錯

選擇手機是的 system > 多點幾下 build version 欄位 > 打開user debugging

之後輸入 react-native run-android 即可

可輸入 adb devices 確認只有一個裝置

Last updated

Was this helpful?