[分享] react-native做的開原app

作者: zxvc (眾生都是未來佛)   2017-04-28 08:20:35
本人用潮潮的(!?XD)react-native寫的一支
很簡單的小app - Taiwan Animal Adoption (TAA)。
已在Google Play與Windows Store上架:
Google Play:
https://play.google.com/store/apps/details?id=com.taa
Windows Store:
https://www.microsoft.com/en-us/store/p/taiwan-animal-adoption/9ph0cq23zks5
在此分享app原始碼給有需要的人:
https://github.com/MrMYHuang/taa
這支app或許不大,但五臟俱全,用上幾個滿fashion的技術XD:
react, react-redux, react-native (inc. NativeModule),
react-native-windows, CodePush。
應該滿適合初學者拿來作學習。
再來就是個人對於幾個技術的一些小感想。
我覺得目前要拿react-native來做東西的人,不要抱太大期望說
"寫一次,各平台都可以跑"。這不是不能,但能滿足這種條件的apps,
目前應該"做不大"。因為各平台的差異,造成react-native的不少APIs也是
platform-specific。可能一個component有一部分要考量平台差異,
那部分的code寫起來就會有點醜囧
不過這也不太算react-native獨有的問題,其它如Xamarin也是差不多。
個人用native語言寫過app,所以較能感受這些跨平台架構的app是有些受限的,
個人開發的話大概較適合寫小apps吧。
即便有些跨平台問題只是時間問題,時間到就能解決...
但現階段還是要仔細評估react-native現在能給你什麼、你能做什麼。
不然沒給你的,你可能就要自己刻出來。若要找別人刻出來的也要注意,
可能react-native一改版就不相容了。
還有要知道react-native的runtime是JS,不是NodeJS,
所以很抱歉就算NodeJS libraries學得很棒,但在react-native不一定能用囧
我覺得寫這種跨平台app的最大成就感是寫出一個平台後,
另一個平台如果只要改個幾行就做出來是很有快感的。
react-redux的使用時機個人本來也不太懂,
但忽然想起之前寫的app也是用相同概念就通了。
redux把binding data統一放在一個store。
好處是較不會有同一筆資料被copy到多個views,
然後要處理多個copies的同步問題,雖然redux好處不止如此而已...
redux的store (data), action + reducer (logic)
相當於MVVM的model(data + logic),
而react則相當於binder, view model與view。
有些概念初學時不好懂,一旦寫code發現有此需求後就容易瞭解。
CodePush的話,好處就是能即時推送JS code給使用者,減少app改版上架的審查時間。
不過Android app第一次上架之後的上架審查超快,感覺速度跟CodePush沒兩樣了XD
作者: rarex (╰(〒皿〒)╯)   2017-04-30 14:32:00
同一個codebase當然不可能 做過幾個產品的經驗 大概80%以上可以重複使用,特別是在界面的部分
作者: TETZ (你今天宅了嗎?)   2017-05-05 08:44:00
推一個謝謝分享

Links booklink

Contact Us: admin [ a t ] ucptt.com