項目介紹
這個一個淘電商APP摸航,同類型的APP有花生日記酱虎、好省、折800等等聊记,基本上一個常規(guī)電商APP該有的排监,這個項目都有了舆床。目前嫁佳,該項目的完成度為80%,剩余的20%因為沒有后臺項目支持盛垦,所以無法完成腾夯。
為啥要做這個東西勒俯在,因為作為Flutter的早期研究者娃惯,有不少人都問過我趾浅,F(xiàn)lutter現(xiàn)在可不可以做商業(yè)項目?現(xiàn)有的原生項目接入Flutter靠不靠譜浅侨?Flutter會不會有很多功能不能實現(xiàn)如输?……
當時我自己也沒有正兒八經(jīng)的做過商業(yè)項目不见,所以都不敢說可以做崔步,基本都是含糊其辭都回答井濒,甚至當作沒看到信息,就沒有回復(fù)了酪惭。所以我急切的想做一個商業(yè)項目春感,實際用Flutter開發(fā)商業(yè)項目甥厦,發(fā)現(xiàn)開發(fā)過程中的問題寇钉,用實際開發(fā)經(jīng)歷來回答類似的問題扫倡。
很巧的是,大約100天前疚鲤,正好有網(wǎng)友想讓我兼職開發(fā)一個淘電商APP集歇,正好給了我這個機會诲宇,于是我便開始了開發(fā),并記錄下項目開始開發(fā)以來花費了多少時間鹅心。
可以看到旭愧,到項目差不多完成時宙暇,一共是100天客给,而開發(fā)人員只有我1個人兼職開發(fā),而且還是一個跨iOS蜻拨、Android雙平臺的APP《兴希現(xiàn)在血崭,我想我應(yīng)該可以回答上面提到的幾個問題了:
-
Flutter現(xiàn)在可不可以做商業(yè)項目厘灼?
- 通過Google的近幾年的發(fā)布會可以得知设凹,得益于Google云服務(wù)的便利,F(xiàn)lutter已經(jīng)成為國外開發(fā)者開發(fā)新項目時的首選
- 我現(xiàn)在這個淘電商項目應(yīng)該也可以做一個例子吧
-
現(xiàn)有的原生項目接入Flutter靠不靠譜月匣?
- 咸魚APP的部分頁面锄开,已經(jīng)是使用Flutter實現(xiàn)的
- 愛奇藝直播助手APP的部分頁面萍悴,也已經(jīng)是用Flutter實現(xiàn)的了
-
Flutter會不會有很多功能不能實現(xiàn)癣诱?
- 目前,F(xiàn)lutter插件倉庫里已經(jīng)有4200多個插件了,其中包含國內(nèi)常用的各種推送嗅蔬、社會分享疾就、微信QQ支付寶登錄猬腰、各種授權(quán)登陸、微信支付寶支付盒延、淘系電商等對接原生SDK等第三方插件
- 因為通過插件可以在Flutter與原生代碼之間搭建橋梁添寺,所以基本上计露,原生可以實現(xiàn)的功能憎乙,F(xiàn)lutter都可以實現(xiàn)
-
國內(nèi)服務(wù)提供商對Flutter生態(tài)的支持如何泞边?
- 極光推送已經(jīng)為開發(fā)者準備好了極光推送的Flutter插件
- 阿里巴巴已經(jīng)為Flutter貢獻了一個視圖UI與邏輯代碼分離的第三方框架
-
用Flutter開發(fā)應(yīng)用可以上架App Store嗎?
- 有這個擔心其實是因為RN之前有前例沈善,但是理性分析一下闻牡,有些RN為啥會被下架呢罩润?不過是因為哪些APP本身違背了App Store的規(guī)則翼馆,熱更新從理性上思考,難道不是一個安全風險嗎严沥?
- Flutter應(yīng)用如果本身不違背App Store的規(guī)則消玄,基本是不用擔心這個問題的
-
Flutter作為跨平臺開發(fā)的性能好不好?
- Flutter的性能與原生一模一樣受扳,幀頻率達到到60幀/秒是基本操作
后面是我對Flutter開發(fā)過程中的一些想法:
跨全平臺開發(fā)很理想勘高,但是現(xiàn)在不可能华望,在實際開發(fā)過程中桦卒,你難免會用到第三方的插件,而哪些插件又依賴Android或iOS的原生SDK建蹄,那你的項目還怎么在PC洞慎、Mac劲腿、Web跑呢鸟妙?除非出現(xiàn)大量用Dart語言編寫的插件(“SDK”)出現(xiàn)重父,不然跨全平臺開發(fā)就是空中閣樓
Flutter的熱重載只對微調(diào),比如調(diào)大小矿辽、移動上下左右?guī)讉€單位袋倔、組件的內(nèi)容文本圖片什么的改一下方便,一旦代碼動的多了批狐,一熱重載前塔,大部分時候頁面都會顯示一片紅嘱根,如何又是一頓代碼調(diào)整巷懈。特別是接口聯(lián)調(diào)顶燕,真的別指望熱重載能多方便
沒有原生開發(fā)經(jīng)驗的話,發(fā)布應(yīng)用的時候會踩很多原生開發(fā)的坑欧引,因為一旦你要打包Flutter程序恳谎,那就涉及到Android因痛、iOS原生開發(fā)的知識點了鸵膏,特別是原生Android打包發(fā)布的坑,經(jīng)常讓我一搞就是幾個小時甚至更久谭企,心疼原生Android開發(fā)的小伙伴一秒
對于之前沒有學過原生開發(fā)的人來說债查,學過Flutter以后攀操,估計不會再去學習原生開發(fā)了,畢竟原生開發(fā)只能開發(fā)單平臺歹垫,畢竟如果你可以開發(fā)多平臺的APP時,你還會滿足單平臺開發(fā)嗎吭敢?
就目前來說鹿驼,因為目前Flutter插件還沒有完全覆蓋國內(nèi)的移動開發(fā)生態(tài)辕宏,你難免會需要自己去開發(fā)插件,以接入國內(nèi)的某個服務(wù)SDK凄鼻,這時候块蚌,除了找原生開發(fā)的小伙伴幫忙以外膘格,就只剩下你自己開發(fā)的路可以走了瘪贱。不過自己開發(fā)的難度也還好菜秦,因為各種原生SDK怎么使用在百度上一堆現(xiàn)成的代碼,你只要會一些原生基礎(chǔ)完全搞的定