Sam Huang

https://www.sam-huang.info/ [ 一扁帽,一壺酒,一溪雲,佔得人間一味愚,此心安處是吾鄉 ] 寫過程式,做過顧問,帶過團隊,開過公司 始於嵌入式系統,經 Web / APP 再到區塊鏈 參與過電商系統、金融新創、電信新創的設計及研發 喜歡軟硬整合開發,做過基於藍牙的智能鎖及以 NFC 為基礎的區塊鏈冷錢包 是逐步由底層走向上層的軟體人 持續尋找技術和商模的平衡對接

React Native 使用分享 — 五年小回顧

這篇文章我們擷取了 2021 年 7 月 22 日晚上「React Native 使用分享 — 五年小回顧」一部分的講座內容,算是個小小的紀錄
投影片:https://revteltech.pse.is/react-native-5-years
活動頁:https://www.facebook.com/events/356529162539140
react-native-nfc-manager:https://github.com/revtel/react-native-nfc-manager

在移動裝置已經變成最重要入口的今天,APP 在商業模式中的重要性不言可喻。考慮到資源佈局及知識累積,APP 的開發方式在不同的團隊中作法大不相同。甚至可以涉及到 APP 和 Web 間的關係管理。

這篇文章我們擷取了 2021 年 7 月 22 日晚上「React Native 使用分享 — 五年小回顧」一部分的講座內容,算是個小小的紀錄。

活動緣起

這個分享是「五載復相逢,軟體二三事」的第二場活動(第一場分享請參考印刷業專屬電商 HiPrint 開發分享 — 以 GatsbyJS 打造高速 ERP / EC),把視角切到技術上多一點,用了五年多的 React Native 是值得聊聊的題目。

過往曾與 Adecco 及 Yourator 等公司合作分享過 React Native,隔了幾年回來看又有點不同心得。

感謝有參與的朋友,分享加 QA 共一個多小時的時間幾乎沒有人中離,希望讓大家都能有點收穫。

活動部分截圖,多謝大家的參與


活動部分截圖,多謝大家的參與

React Native : another cross platform solution ?

2015 年由 Facebook 推出的 React Native 先天承繼了 React 的諸多特性,面世以來一直廣受關注。

怎麼思考 React Native 比較好呢?如果只是將他當成又一個跨平台方案就有點可惜,參照 React 本質為 UI library 的出發點,在導入後持續扣住大前端的技術方向,便能不斷地深化對這個技術的心法理解。

此外不得不提的就是其對團隊資源配置的優勢,藉由 React / React Native 的技術組合,便能很好的統合對於技術的投資及管理。

諸多知名 APP 皆由 React Native 打造

為什麼我們選用 React Native ?

忻旅科技有個業務方向是以資訊技術協助商務做加速及提升,是以

  • 開發可控:除了知道做了會怎樣,也追求錯誤可預期
  • 資源平衡:最小投入內取得最高效能

便是我們技術規劃的主要方向。

如同之前選用 GatsbyJS 搭建高效能前端(參考以 GatsbyJS 打造高速 ERP / EC)及後端微服務、容器化,前端技術以 React / React Native 貫串開發及管理流程便成為我們的首選。

技術的高速迭代讓人崩潰

開發經驗分享

節錄部分在分享中提到的內容

  1. 妥善規劃共用部分,最大化資源效益
  2. 考慮到 web 及 app 作為商務行為的延伸,很多邏輯往往是互通的。我們會以 UI 之外部分都要共用的目標進行開發 (screen / page / template 之外應能共用),妥善切割出 UI / Domain / Generic Logic 等多個層次。有時候甚至能將共用邏輯延伸至後端 (如 Node.js)
  3. WEB 先行可以降低風險及增加彈性
  4. 很多時候一個元件的開發往往不僅只用在 app 內,在那個情況下我們會選擇開發 web 版本(搭配我們自身開發的 webview plugin)。如過往我們曾開發金融相關 app,其股票線圖有多種應用情境,不只在 app 內,也在網站上。此外 web 開發得益於開發工具的完整性(如 chrome debugger),能更進一步提升開發效率。
  5. 善用 HOC 等技巧封裝溝通成本
  6. 隨著開發營運到後期,軟體難以掌握的點不僅在邏輯,也在資料源的複雜度提升。此時除了像 Redux 等狀態管理工具之外,HOC / RenderProps 這些抽象化工具也能提供不同角度的管理可能。
  7. 延伸 test case 覆蓋率協助 IoT 整合
  8. 相較於高階語言,低階語言及嵌入式開發環境在 debug 上較不方便。過往我們在開發軟體整合方案時,會將韌體及 app 底層部分都抽象化出來以 test case 覆蓋做先期測試,如此便能降低未來實際對接時的風險。
  9. 開源開發 — react-native-nfc-manager
  10. 取之於開源也該回饋給開源,結合我們在 IoT 上的背景,忻旅亦發起了一個開源專案 react-native-nfc-manager,在這當中學到了許多如何和國外開發者協作的經驗(甚至發現我們某個商業題目,對手使用此專案比我們早上市 …)
基於 web 的線圖可很好的獨立運作或以 webview 整合
https://github.com/revtel/react-native-nfc-manager
https://github.com/revtel/react-native-nfc-manager

結語

最終也在 Q&A 時和一些前輩/同好討論了諸如 react-native-web 的使用經驗及觀點,對我來說是個很充實的一個半小時。其實還有蠻多可以討論的點,礙於形式及時間不容易做到,希望未來還有機會。

期待下次再相會,再次感謝那天有來參與的朋友們:)

RevtelTech 忻旅科技 https://www.revtel.tech/
email:contact@revteltech.com
facebook:https://www.facebook.com/RevtelTech/


喜歡我的文章嗎?
別忘了給點支持與讚賞,讓我知道創作的路上有你陪伴。

CC BY-NC-ND 2.0 版權聲明

[JSDC 2021] 從 React Native 跨屏開始的多領域開發歷程

幾個 React Native 的使用隨筆

React Native 面試常見問題

看不過癮?

一鍵登入,即可加入全球最優質中文創作社區