高雄前端社群#21 - React Party

React Native 開發分享 - 子駿

Hybrid app ?

  • Easy to Start!
  • 現實總是沒有這麼好
  • 效能低
  • 用電量高
  • life cycle
  • 開發者很開心、使用者很不開心

React Native ?

  • 用 JS 操控 iOS / Android 原生 view
  • 不是 React 版 mobile UI Framework
  • 原生能做什麼你就可做什麼
  • 官方沒給的 UI 怎麼辦?
    • 自己 UI 自己包
  • Learn Once,Write anywhere
    • 學一次到各個地方
  • 其實 FaceBook 布這個局非常久了
  • codepush (microsoft)
    • 動態更新 app 的 JavaScript file 等同於更新 app
  • 可以擁有幾乎和原生相同的擴充性
    • 可局部開發 React Native
    • 天貓 app 正在一頁一頁換掉 iOS Native
    • 1111 光棍節正實驗性透過分析丟給使用者不同的 Layout 畫面,提供更適合使用者的 UX 畫面提升交易量
  • 社群強大
    • ReactNativeNews
  • React 0.14 以上已經趨於穩定版本(甚至 15.x FaceBook 已經認為是穩定版)
  • FaceBook 程式寫得好,文件寫得少
    • #社群力量派上用場#人多勢眾#工程師多交流#英文要夠強
  • 學習曲線相較低

React Native vs Cordova

- React Native Cordova
學習 初期:高,中後期:易 易(如果你本來就寫 web)
開發 初期陣痛,日後不變 隨時間與專案變高
體驗
第三方 只能用純 JS Lib web plugin 多數可使用
效能極限 無極限(除非原生不支援) 低(看 Cordova 支援程度)

React Native vs Native

- React Native Native
學習
開發
體驗
第三方 只能用純 JS Lib
app 更新 快(更新 server) 慢(最快兩週?)

real worde showcase

  • FaceBook 正在部分把元件轉移成 React Native
  • 根據不同user 給他不同的頁面
  • 專案進度太快,兩週一次更新
  • 0.14 以上已經趨於穩定版本
  • 程式寫得很好,文件寫得很少
  • android 版本不夠成熟
  • 沒辦法使用大部份 lib,因為 webAPI

Q&A

  1. Bulid Android apk 檔案壓縮出來非常肥大?
    • 已知 issue FB 解決中
  2. IDE 如何選擇?
    • FB 之前決定開發 nuclide 可以一套打全部(部分開發)
    • 講者目前開發還是開三套 IDE..
    • SublimeText
    • Xcode
    • Android Studio
  3. 如何選擇 ReactJS 版本?
    • 目前最新版本 -2 or 3..XD
  4. 如何做到更新 app 版本?
    • 開啟 app 檢查彈出更新,下載新的JS
    • app.js 放在 server USER 開啟 app 絕對是最新的(無法離線..)
    • 更新 server => app Hub
  5. iOS / andriod 工程師會失業嗎?
    • 絕對不會
    • 非原生 UI 自己刻
    • 最新的 UI 自己刻 ex: iOS 9 3D Touch
  6. React 可以用其他 JavaScript lib ?
    • 大部份無法
    • 上 npm 找

備註:

  • miss 上半場簡介 ReactJS 基礎介紹 Orz..
  • 筆記有錯請指正 O_o”