耗時近兩月,一個React Native專案。
一款純淨的RSS閱讀器 – BAO
專案已在Github上開源
歡迎給個star
1. 引入
- 關於RSS:一篇Wired的文章
- 關於React Native
- 初衷:(1)對複雜的各大新聞客戶端極其厭惡;(2)喜歡RSS”天然的”,”演算法無關”等優點;(3)對於用JavaScript寫跨平臺移動應用具有濃厚興趣
2. 功能
- 登入/註冊
- 訂閱/取消RSS源
- 主題切換
- 後臺每十分鐘自動更新RSS源
3. 主要依賴
- redux: 全域性使用redux管理狀態
- react-native-router-flux: 路由配置
- react-native-storage: 作持久化儲存,只需儲存主題配置
- react-native-render-html: 文章詳情頁用到的主要元件,將所有HTML元素轉換成本地UI檢視
4. 後臺
- 為了加速開發速度,本專案使用由LeanCloud提供的免費資料儲存功能與使用者系統
- 同樣在leanCloud上編寫nodejs雲函式,負責部分專案邏輯,如定時更新等功能。
5. 總結
- 強烈推薦使用redux進行狀態管理,redux前期上手可能比較難,但後面絕對能在很大程度上減少由眾多props和states帶來的複雜性,整個專案程式碼會清晰很多。
- 開發期間恰逢Flutter和PWA興起,不可避免地引起不少對React Native的對比討論,且唱衰較多。本人認為,RN與Flutter相比,用javaScrip橋接原生檢視是它最大的效能瓶頸,且很難逾越,可這也正是RN的最大優點,JavaScript語言本身優點,以及用前端的技術棧編寫移動應用本身就是一種極大的誘惑。
- 初期本想使用firebase,無奈防火牆。最終選擇leancloud,不得不說,學習成本還是存在的,但這種BaaS服務絕對是小開發者最大的福利,極大地加快了開發速度。
- 該專案完全可用,雖然還存在一些小的bug,後期會繼續跟進。無奈leancloud的免費服務每日API請求有限,目前僅供自用,之後有機會還是會嘗試遷移到firebase上。
本人部落格:http://mountaincity.me/
GitHub repo地址:BAO
歡迎給個star