一直覺得對這種run once, debug anywhere的Framework很好奇,真正比較大的App是否會使用這種方案嗎?從Cordova/Phonegap, Titanium, 到Xamarin都是為了解決這個問題。但是說真的,如果要用third party的library,或是要follow android/ios的design guideline,是否可以面面俱到? 更何況兩大平台有很多本質上的不同。
不過不可否認,對於那種很快想要推出兩大平台的App這種Solution絕對最快,但是長遠來講,這技術債應該都要還的..
這不是write once run everywhere 的技術呢,真正的賣點是 React 的 開發方式和 live reload 的快速 feedback loop
learn once, write anywhere
what? 原來沒辦法跨平台?犧牲原生的平台,只換到快速 reload,然後帶來更難 debug... hhmmm 怎麼算都不合啊。
這.. 只對原 React 開發者會有好處吧....
跨平台是不切實際的,那可以做到但滿足不到對 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)。