開發App已經有兩個星期了。第一個星期主要嘗試了下用ApiCloud、這周最主要嘗試了下React Native。各有千秋吧。html
##ApiCloudvue
###優勢:html5
一、上手簡單,對於作過web開發的人來講,上手很是容易。沒幾天就能上手。react
二、並且提供了豐富的端和雲api,還有不少第三方的api,能夠節省了很多開發時間ios
###缺點:angularjs
一、在性能上不是很理想,在Android機上會出現卡頓的感受。web
二、在佈局上,須要兼顧到ios、Android及他們各個版本webview的區別。chrome
好比Android4.4一下的webview是不支持flex的,須要用hack的寫法來保證兼容。並且真的很難保證在不一樣設備上的細節的一致。api
三、沒法在IOS上進行調試。讓人很頭痛。promise
四、沒法很好的支持angularjs、reactjs、vuejs等,js的組織方式只能使用最傳統的js的編寫方式,沒法使用html5的history和state,固然你能夠把參數放到window的param裏面。 這裏推薦使用Vuejs,體驗效果良好,可是隻能單個頁面單個頁面這麼來編寫。
##React Native
###優勢
一、相對於ApiCloud來講,在UI佈局上來講。體驗很是棒,有專門的flexbox樣式來支持移動端響應式的佈局。感受應該不會出現很是明顯的兼容性問題。全部長度寬度單位都是不帶單位的,以數字直接來表達,這樣也便於計算。同時也提供了一些對屏幕尺寸、密度計算的工具類。這就讓適配不一樣屏幕(不光是尺寸,還有密度)作適配,帶來了可能性,就看你要作的多深刻。
二、雖然主要編寫是在JS下進行,可是React Native也不光光是一個JS工程。在一個完整的RN工程中,包含了一個IOS工程和一個Android工程。 能夠使用原生方式,對RN進行擴展和更改。
三、調試方式很是方便,能夠在chrome裏面查看日誌,能夠在ios模擬器中查看元素的模型。
四、RN能夠使用ES6進行編寫,很是方便,import、promise、export、class……看到這些關鍵詞你應該懂的。整個工程能夠把JS組織的很是漂亮。
五、最後一點,多是比較重要的一點。在性能上,雖然沒有原生這麼好,但逼近原生。
###缺點 一、關於推送、第三方(好比微信分享、登錄、支付)估計要本身來實現。這個時候就須要具有Android、IOS兩端的知識,對於我這樣尚未原生開發經驗的來講,是比較困難的。
二、對於數據的緩存,感受不夠透明,或者說我還沒深刻到這塊。好比數據的緩存、圖片的緩存。感受我本身暫時還沒法控制。
三、對於打包、發佈來講,須要具有必定的原生經驗(好比說簽名)。若是沒有,那麼你暫時只能在IOS模擬器上進行。想要打包安裝到其餘設備上,你可能須要花點時間去研究下。
總結: 以上描述可能並未詳盡,也或者並不徹底正確。只是談談這幾天的一些開發體驗。 長遠考慮。感受RN是第一選擇,開發體驗真的不錯。並且能夠在很大程度上IOS、Android能夠共用一部分代碼。 可是就如今狀況來講,已經被我玩掉2個星期了。 老闆逼得緊。先安下心,用ApiCloud搞個出來吧。雖然感受不完美,可是起碼能夠快速從無到有。