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刪除,否則無法安裝)
開發
先開啟Genymotion
輸入以下:
連接手機
如果沒有 adb 可以去下載 android sdk
然後連接手機後選取傳輸檔案,然後開放 USB 偵錯
選擇手機是的 system > 多點幾下 build version 欄位 > 打開user debugging
之後輸入 react-native run-android 即可
可輸入 adb devices 確認只有一個裝置
Last updated
Was this helpful?