好久沒時間寫了,被業(yè)務(wù)推著走是多么可怕的事情,沒有時間靜下來沉淀。最喜歡過年前后這段時間,終于有時間安安靜靜地寫代碼、做自己想做的事情。
近2年被大前端的浪潮沖擊中,原生app開發(fā)何去何從呢?這就要從app發(fā)展至今的一個發(fā)展史說起了。
技術(shù)上:原生->嵌入h5->Hybrid->(Lua、RN、Weex)->小程序
形式上:簡單應用->復雜應用(服務(wù)分布式、app:模塊化、組件化)->平臺型app->生態(tài)型app
構(gòu)架上
簡單型app:MVC->MVCS->MVCS+基礎(chǔ)工具庫(一個git倉庫)
復雜型app:pod+模塊化方案+中間件等(n個git倉庫,私有庫,業(yè)務(wù)庫等等)不細展開,細說又是長篇大論了。
平臺型app:在復雜型app的基礎(chǔ)上擴展,開發(fā)一系列的工具來支撐,如管理業(yè)務(wù)組件工具,打包工具等讓其平臺化,適合多團隊并行開發(fā)。業(yè)務(wù)模塊邊境約束等。
生態(tài)型app:是未來的趨勢,未來會有更多超大型app的誕生。也是我們現(xiàn)在需要探索之路?,F(xiàn)在流行的載體是小程序,也許后面會有更多的解決方案,但是這只是技術(shù)上的解決方案。不影響app的趨勢。
對從微信小程序火起來后各大公司都開發(fā)自己的小程序,讓自己的app成為小程序平臺,連接更多外部應用。在我看來小程序平臺不止是連接外部應用,如果用在大型app設(shè)計也是個不錯的選擇。設(shè)想公司有多條垂直業(yè)務(wù)線,每個業(yè)務(wù)線的迭代互不影響,如果每個子業(yè)務(wù)線都是一個個獨立的小程序,那在公司平臺app上加一個入口就完美解決了。為此我還特意破解了幾大平臺app,發(fā)現(xiàn)支付寶和淘寶都有用小程序來開發(fā)子業(yè)務(wù)。


這些子業(yè)務(wù)有些是h5有些是小程序,整體來說小程序的體驗要比h5要好。生態(tài)型app是趨勢,一個app發(fā)展到最后不可能還是單一功能,所以要想構(gòu)架好一個大型app已經(jīng)不在是模塊化組件化就能夠解決的事情。小程序平臺開發(fā)是原生app開發(fā)的最終去向,讓自己的app像微信一樣承載各種各樣的小程序在上面運行。每個業(yè)務(wù)線的miniapp要長成什么樣各個業(yè)務(wù)線自己決定,他們的迭代周期發(fā)布周期自己控制,互不影響。
生態(tài)型app還有一個很明顯的優(yōu)勢,子業(yè)務(wù)的發(fā)布不需要提交應用市場的審核,用戶安裝也是無感知。如果把它用于企業(yè)內(nèi)部子業(yè)務(wù)的話,試想整個小程序的發(fā)布和規(guī)則都是企業(yè)內(nèi)部自己制定的,那一個個子業(yè)務(wù)的動態(tài)發(fā)布豈不是都很順利的進行著。生態(tài)型App區(qū)別與傳統(tǒng)的App,除自身提供的功能外(比如微信的IM功能),更多的功能可以由三方的團隊自行完成。除了ToC的超級應用外,也特別適合多團隊、跨地域、多供應商的大中型企業(yè)使用。生態(tài)型App一般提供了一共生的生存環(huán)境(運行環(huán)境)以及相同的約束(規(guī)范和API等),允許不同的團隊或個人,在允許的情況下,自行的研發(fā)或相同或者不同的移動相關(guān)的功能。相關(guān)功能運行在一個進程里,相互間獨立,且與同在的環(huán)境有一定的交互。?
關(guān)于如何設(shè)計和構(gòu)架生態(tài)型app還在進一步研究中,這里分享一篇不錯的文章,大家可以參考一些思路。生態(tài)型App的架構(gòu)實踐分享