9
React Native | A framework for building native apps using React (facebook.github.io)
popcorny 積分 3 編輯於

一直覺得對這種run once, debug anywhere的Framework很好奇,真正比較大的App是否會使用這種方案嗎?從Cordova/Phonegap, Titanium, 到Xamarin都是為了解決這個問題。但是說真的,如果要用third party的library,或是要follow android/ios的design guideline,是否可以面面俱到? 更何況兩大平台有很多本質上的不同。

不過不可否認,對於那種很快想要推出兩大平台的App這種Solution絕對最快,但是長遠來講,這技術債應該都要還的..

siuying 積分 1

這不是write once run everywhere 的技術呢,真正的賣點是 React 的 開發方式和 live reload 的快速 feedback loop

IngramChen 積分 2 編輯於

learn once, write anywhere

what? 原來沒辦法跨平台?犧牲原生的平台,只換到快速 reload,然後帶來更難 debug... hhmmm 怎麼算都不合啊。

這.. 只對原 React 開發者會有好處吧....

siuying 積分 4 編輯於

跨平台是不切實際的,那可以做到但滿足不到對 app 有要求的人...

但是他們提供了一個工具讓你可以同一套 logic 在不同平台行,再在不同平台用不同的 UI code (都是用 React/JavaScript)。其實用甚麼語言也不大要緊,但比起用 C++ (Dropbox) 或 C# 或 Java 或 Ruby , Facebook 選了 JavaScript 和React 吧。

即時可以看到 feedback 這點是無限大的好處啊,一般 app compile - deploy - run loop 最快也要十多秒吧 (我就不說 Android 了) ,但現在可以 500ms 搞定。看看 React Native 第二個 keynote 吧

Debug 的確是一個問題,但他們甚至吧 IDE1 也做了... 之前他們只是說做 Chrome Dev Tools 而已 (REPL 可以更改 app state)。

popcorny 積分 0

所以用他的proejct主體還是iOS project,只是裡面用React Native去render view囉? 不知道這樣理解正不正確?

siuying 積分 1

在 javascript 裡的 component 其實是一個 proxy ,背後對應到一個真正 的 native 的 View 上,所以本體仍然是 iOS ( 或 Android)

popcorny 積分 1

Titanium也是類似的架構,用javascript當proxy跑起native的widget。

Link1

siuying 積分 2

對,但 React Native 重點還是 React :render 是個 stateless 的 function ,減少了管理 UI state 的 code 。實際上更新 UI 也是用了 React 的方法做到最少的更新 (而不是全部重新 render)。

ferrari 積分 0

終於放出來了!!!