注:升級版本請移步:http://www.cnblogs.com/mcmurphy/p/5934993.html
去年九月,facebook發布了react-native,將web端的javaScript和react技術擴展到了IOS和Android的原生應用開發。用一句大白話來說,就是利用相同的核心代碼,就可以搞出androidapp,iosapp,以及后台應用程序。同時,得益於它的熱更新能力,軟件更新不再需要用戶下載新的安裝包,就像傳統的web網頁一樣,服務器有修改,終端可即時接觸到最新內容。多端技術統一,熱更新,原生的體驗,真正擁有了這些,才發現當前普遍的移動端開發有多么蛋疼。就像桌面時代的cs結構程序開發很大程度上已經被bs結構所取代一樣,移動端的這一進程,會進行的更快。
出於學習及實踐的目的,這次用react-native構建了一個博客園的手機客戶端,因為沒有ios的開發環境(窮),所以當前僅僅支持安卓平台(>=android 4.1.6),但適配ios的話,預估至多也就20%的工作量。
實現功能
- 首頁 & 排行 & 新聞等列表查看
- 博文詳情 & 新聞詳情查看
- 熱門博主查看及博主檢索
- 博主詳情及博主博文列表
- 博文評論 & 新聞評論查看
- 博主及新聞離線收藏及查看
- 設置 & 關於
- CodePush代碼熱更新
由於博客園官方開放接口所限,而我又不傾向於通過非正規手段實現目的,以下列舉一些很重要但並未實現的功能:
- 用戶登錄
- 發表評論
- 博文發表
- 博文分類別查看
- 評論消息通知等。
頁面截圖
下載入口
可掃碼直接下載體驗:
或訪問以下鏈接下載:
http://fir.im/togayther
存在的問題
- 詳情頁面HTML解析組件仍然存在一些性能和細節問題,對於一些長博客的渲染會耗費比較長的時間。
- 博主詳情、博文詳情等接口會出現偶爾不會返回數據的問題。
- 接口返回的數據格式為xml,對於前端的解析不夠友好。我個人搭建了一個php的中間層。所以客戶端請求的接口地址為:123.56.135.166。
- 當前app引用的圖標為自己創作,因為找了很久也沒有找到博客園相關的app圖標資源。不知道這樣會不會有什么問題。
- 站內鏈接應用內跳轉查看(官方博文詳情接口調用需要傳入博文id,但很多博文都自定義了鏈接,這個還需要再斟酌一下)。
- 一些性能問題。
- IOS適配的問題,看接下來我的時間安排吧。
- 其它一些交互及功能完善。
源碼地址
https://github.com/togayther/react-native-cnblogs
有任何問題,可在博文下方留言,或提交issue。
一點后話
在可預知的未來,構建移動端產品的工具及生產力,一定會伴隨着科學技術的發展,變得越來越簡單和統一。你很難想像時代的進步造福了全人類,但IT從業人員卻仍然苦逼的為了兼容各大平台而感覺身體被掏空。就像現在很多原生開發人員開始抱怨工作沒有前幾年那么好找,其實一定程度上,緣於很多公司的技術選型發生了變化,更加傾向於以一種輕便統一的方式構建業務應用,react-native 當前在業內的熱度也印證了這一點。作為技術人員,應該時刻關注行業動態,擴展視野,更新自己的技術棧,才能保證自己的競爭力。在這里祝各位園友工作順利,也祝博客園緊跟移動互聯網浪潮,越來越好!