從 Android Developer 角度探索

React Native

許小美 Neo

Outline

  • React.js
  • ReactNative
  • LiveDemo
  • Q & A

What is ReactJS ?

a javascript library for building user interfaces

特色

  • Component

  • VDOM

  • JSX

  • Flux

React JSX


// Reac JSX
var React = require('react');
var ReactDOM = require('react-dom');

ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById('example')
);

What is Flux ?

application architecture for building user interfaces

MVC 架構

Flux 架構

What is React Native ?

a framework for building native apps using react

What's different ?

  • Flash
  • PhoneGap
  • Cordova
  • Titanium 

原生開發者鄙視鏈

Android > Flash = PhoneGap = Cordova = Titanium

React / React Native

React Native 架構

圖片來源 http://goo.gl/tyAeSZ

React Android Dependencies

  • appcompat-v7-23.0.0

  • bolts-android-1.1.4

  • imagepipeline-0.6.1

  • fresco

  • jackson-core-2.2.3

  • okhttp-2.4.0

  • okhttp-ws-2.4.0

  • okio-1.5.0

  • react-native-0.11.0

  • support-annotations-23.0.0

  • support-v4-23.0.0

  • ...

Java call JavaScript

圖片來源 http://goo.gl/tyAeSZ

JavaScript call Java

圖片來源 http://goo.gl/tyAeSZ

React Native 特色

  • 不使用 WebView 運作
  • 透過 React Native 直接操作 Native UI
  • 也提供開發者客製化 Native UI 和 Native Model
  • 提供良好的用戶體驗
  • 可跨 iOS / Android
  • Learn once write anywhere

Live Demo

從 Android 角度看

  • 專注在 View Component 的開發
    (效果/效能/多裝置配適的調校)
  • 統一 input/output 方式
  • Flux 的單一資料流架構
  • Flux 負責所有邏輯與資料管理
  • 可上架後遠端修正的優勢

Q & A

WE ARE HIRING!!

  • 研發工程師
  • 後端研發工程師
  • framework研發工程師
  • 產品經理
  • 測試工程師
  • Business Development Manager

台灣雪豹科技

Android Taipei - Oct 2015

By Neo Hsu

Android Taipei - Oct 2015

從 Android Developer 角度探索 React Native

  • 1,775