Flutter是谷歌的移動(dòng)UI框架,可以快速在iOS和Android上構(gòu)建高質(zhì)量的原生用戶界面。 Flutter可以與現(xiàn)有的代碼一起工作。在全世界,F(xiàn)lutter正在被越來(lái)越多的開(kāi)發(fā)者和組織使用,并且Flutter是完全免費(fèi)、開(kāi)源的。(-中文網(wǎng);-英文網(wǎng))

我們是從2013年開(kāi)始的成都網(wǎng)站建設(shè)公司,提供網(wǎng)站建設(shè),電商網(wǎng)站設(shè)計(jì)開(kāi)發(fā),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì),成都小程序開(kāi)發(fā)、等服務(wù)。為客戶創(chuàng)造有價(jià)值的品牌營(yíng)銷體驗(yàn),讓互聯(lián)網(wǎng)提升企業(yè)的競(jìng)爭(zhēng)力!
Flutter是一種趨勢(shì),勢(shì)必會(huì)取代RN,成為最主流的跨平臺(tái)開(kāi)發(fā)框架,基于Dart語(yǔ)言。ios開(kāi)發(fā)必須Mac電腦。android開(kāi)發(fā)window、linux、Mac均可。
像美團(tuán)外賣這樣的APP用一種開(kāi)發(fā)語(yǔ)言,能開(kāi)發(fā)得出來(lái)嗎?答案是不能。
美團(tuán)發(fā)展到現(xiàn)在可以說(shuō)已經(jīng)是一個(gè)【巨無(wú)霸】了,里面集成了很多很多功能,除了核心的外賣,還有 旅游 、 娛樂(lè) 、購(gòu)物、出行,金融等等業(yè)務(wù)線,那么這么多復(fù)雜的業(yè)務(wù)根本不可能用同一種開(kāi)發(fā)語(yǔ)言實(shí)現(xiàn)。
那么美團(tuán)都用到哪些開(kāi)發(fā)語(yǔ)言和技術(shù)了呢?下面就根據(jù)我的理解詳細(xì)說(shuō)一下。
前端是把產(chǎn)品的核心服務(wù)交給用戶的呈現(xiàn)者,它的表述方式、展示形式以及交互邏輯都跟用戶息息相關(guān),都影響著用戶使用產(chǎn)品的體驗(yàn),也就是說(shuō)直接影響產(chǎn)品的用戶留存。
前端開(kāi)發(fā)主要分為三大類型:Andriod、IOS和PC(H5) ,Android開(kāi)發(fā)語(yǔ)言是Kotlin和Java,IOS開(kāi)發(fā)語(yǔ)言是Object-c和Swift,PC(H5)開(kāi)發(fā)語(yǔ)言就比較雜了,有JS、CSS、HTML,還有很多第三方的前端框架,比如Angular.js、vue.js、Bootstrap、JQuery等等。
關(guān)于后端的功能,這一點(diǎn)可以說(shuō)是眾說(shuō)紛紜,主要需要考慮的是如何實(shí)現(xiàn)功能、數(shù)據(jù)的交互流程和存取、平臺(tái)的穩(wěn)定性與性能等。
那么后端都用到哪些開(kāi)發(fā)語(yǔ)言和技術(shù)呢?
根據(jù)后端技術(shù)選型的標(biāo)準(zhǔn),后端可選的開(kāi)發(fā)語(yǔ)言和技術(shù)是非常多的。
比如Java體系的話,可以選用SpringMVC、Spring cloud、Hibernate,Mybatis、Mysql、Redis、Memcache、zookeeper、Kafka......;
比如Python體系的話,可以選用Django、Flask、Tarnado、Web2py等,中間件都是通用的,Redis,MQ、MySQL、Kafka等都可以用在python體系中;
當(dāng)然還有PHP、C、Perl等開(kāi)發(fā)語(yǔ)言。
綜上所述,美團(tuán)這個(gè)巨無(wú)霸公司,隨著業(yè)務(wù)線的擴(kuò)展用到的技術(shù)肯定會(huì)越來(lái)越多,而且越來(lái)越復(fù)雜,技術(shù)快速變革的時(shí)代,適者生存的競(jìng)爭(zhēng)性也會(huì)越來(lái)越激烈。
俗話說(shuō):羅馬不是一日建成的,任何事都不可能一蹴而就,包含技術(shù)。在以后的發(fā)展中美團(tuán)也會(huì)逐步更新自己的技術(shù)和開(kāi)發(fā)語(yǔ)言的。
至少三種語(yǔ)言。后端一種語(yǔ)言(比如Java丶Go丶Python丶PHP等),后端語(yǔ)言及生態(tài)比較成熟。下面重點(diǎn)聊前端App開(kāi)發(fā)。
前臺(tái)兩種語(yǔ)言(Android和iOS是不同的開(kāi)發(fā)環(huán)境。比如Android用Java或者Kotlin,iOS采用Object C++或Swift),稱之為Native開(kāi)發(fā)。
當(dāng)然創(chuàng)業(yè)公司可以用一種前端語(yǔ)言寫(xiě)App前端,這樣就不需要Android和蘋(píng)果分兩種語(yǔ)言寫(xiě),寫(xiě)一次代碼可以編譯成Android和iOS的App,現(xiàn)在通行的方案有Vue之類的DOM渲染模式,以及ReactNative方案(RN)。性能上RN優(yōu)于DOM渲染但低于用Native開(kāi)發(fā)的App。所以美團(tuán)這種公司,一定是Native方式寫(xiě)App,但RN是初創(chuàng)項(xiàng)目不錯(cuò)的選擇。
與RN競(jìng)爭(zhēng)的還有一種新貴flutter,是google推出來(lái)的,但設(shè)計(jì)原理與RN不同,性能方面優(yōu)于RN,只是目前生態(tài)不夠健全,國(guó)內(nèi)有閑魚(yú)app是采用此技術(shù)。未來(lái)可能會(huì)占一席之地。
最后,其實(shí)App開(kāi)發(fā)已經(jīng)是強(qiáng)努之末,我覺(jué)得主流應(yīng)該是朝PWA和小程序方向發(fā)展。
你好,開(kāi)發(fā)譬如美團(tuán)這種APP,用一種語(yǔ)言是實(shí)現(xiàn)不了的,一個(gè)APP有安卓和蘋(píng)果兩個(gè)操作系統(tǒng),開(kāi)發(fā)能在安卓iOS端應(yīng)用的APP主流的開(kāi)發(fā)語(yǔ)言和技術(shù)是很多的,如后臺(tái)有JAVA、C++、PHP、Python等多種開(kāi)發(fā)語(yǔ)言,前端有kotlin、HTML、css、jquery、ajax、bootstrap、angular.js、react、vue.js、node.js、swift、object-c等多種語(yǔ)言和框架。
一個(gè)APP的開(kāi)發(fā)是需要前端技術(shù)和后臺(tái)技術(shù)共同配合完成,這樣的APP不論是功能還是性能都給用戶很好的體驗(yàn),單一開(kāi)發(fā)語(yǔ)言畢竟技術(shù)支持有限,所以即使能開(kāi)發(fā)出來(lái),APP的用戶體驗(yàn)也是不理想的。
一般APP有這幾種開(kāi)發(fā)組合模式:1、原生安卓iOS開(kāi)發(fā),前端:JAVA、kotlin、swift、object-c后臺(tái):JAVA、PHP、C++等后臺(tái)技術(shù),這種模式開(kāi)發(fā)周期長(zhǎng),成本高,性能好;2、混合APP開(kāi)發(fā)即hybrid app,前端以網(wǎng)頁(yè)技術(shù)為主,穿插原生開(kāi)發(fā)功能,兼具原生APP和web app的優(yōu)點(diǎn),如淘寶、微信等應(yīng)用都是走的這個(gè)技術(shù);3、web app,前端純網(wǎng)頁(yè)技術(shù),后臺(tái)為主流開(kāi)發(fā)語(yǔ)言,這種模式開(kāi)發(fā)速度快,成本低,界面體驗(yàn)可能弱一些。
可見(jiàn)開(kāi)發(fā)一款A(yù)PP大多數(shù)都是多種語(yǔ)言配合完成,謝謝閱讀。
看完之前的評(píng)論,依然好奇為什么一個(gè)語(yǔ)言不能完全勝任。
前端跨平臺(tái)的方案有react native,cordova,flutter等,如果需要兼容開(kāi)發(fā)小程序,h5頁(yè)面,可以采用taro來(lái)開(kāi)發(fā),一套代碼,所有平臺(tái)通吃。
后端的方案有服務(wù)端運(yùn)行時(shí)nodejs,大數(shù)據(jù)背景下運(yùn)用而生的數(shù)據(jù)庫(kù)mobgodb,緩存解決方案redis,搜索工具elasticsearch,負(fù)載均衡ngix,基本上是需要什么就有什么
所以總結(jié)下來(lái),一句話,一種語(yǔ)言可以實(shí)現(xiàn)類似美團(tuán)這樣的app和小程序。為什么美團(tuán)使用的語(yǔ)言那么多,一大原因估計(jì)是美團(tuán)app開(kāi)發(fā)的早,當(dāng)時(shí)前端技術(shù)不成熟,工具沒(méi)現(xiàn)在這么多。
使用混合開(kāi)發(fā)與C++ 進(jìn)行跨平臺(tái)開(kāi)發(fā),有好有壞。
C++ 進(jìn)行跨平臺(tái)開(kāi)發(fā)
編寫(xiě)一次,隨處運(yùn)行。早在 2013 年,Dropbox 就采用上述策略進(jìn)行移動(dòng)開(kāi)發(fā),這背后的想法很簡(jiǎn)單:用 C++ 編寫(xiě)一次代碼,而不是用 Java 和 Objective-C 編寫(xiě)兩次。那時(shí),整個(gè)移動(dòng)工程團(tuán)隊(duì)相對(duì)還比較小,但需要支持快速增長(zhǎng)的移動(dòng)路線圖。因此,公司希望找到一種方法,使這個(gè)小團(tuán)隊(duì)可以快速交付大量 Android 和 iOS 代碼。
如今,Dropbox 完全放棄了這個(gè)策略,轉(zhuǎn)而使用各個(gè)平臺(tái)的原生語(yǔ)言(主要是 Swift 和 Kotlin ,這兩種語(yǔ)言在剛開(kāi)始制定移動(dòng)策略時(shí)還不存在)。
Hybrid App混合開(kāi)發(fā)
Hybrid App主要以JS+Native兩者相互調(diào)用為主,從開(kāi)發(fā)層面實(shí)現(xiàn)“一次開(kāi)發(fā),多處運(yùn)行”的機(jī)制,成為真正適合跨平臺(tái)的開(kāi)發(fā)。Hybrid App兼具了Native App良好用戶體驗(yàn)的優(yōu)勢(shì),也兼具了Web App使用HTML5跨平臺(tái)開(kāi)發(fā)低成本的優(yōu)勢(shì)。
目前已經(jīng)有眾多Hybrid App開(kāi)發(fā)成功應(yīng)用,比如美團(tuán)、愛(ài)奇藝、支付寶等知名移動(dòng)應(yīng)用,都是采用Hybrid App開(kāi)發(fā)模式。
移動(dòng)應(yīng)用開(kāi)發(fā)的方式,目前主要有三種:
幾種模似都可以開(kāi)發(fā)出應(yīng)用,小應(yīng)用無(wú)所謂,但是大流量應(yīng)用,對(duì)圖形要求高的如 游戲 等原生開(kāi)發(fā)的效果還是最好
支付寶打開(kāi)很慢,就是因?yàn)椴捎没旌祥_(kāi)發(fā),使用人多了不如原生開(kāi)發(fā)
不行的哦。任何你看到的應(yīng)用和網(wǎng)頁(yè),都需要多個(gè)語(yǔ)言開(kāi)發(fā)的,大的分比如前端和后端,用的語(yǔ)言都是不一樣的
前言
為什么跨平臺(tái)是發(fā)展趨勢(shì)?
同一個(gè)應(yīng)用,各個(gè)“端”獨(dú)立開(kāi)發(fā),不僅開(kāi)發(fā)周期長(zhǎng),而且人員成本高。同時(shí),作為技術(shù)人員,也不應(yīng)該滿足于這種重復(fù)、低能的工作狀態(tài)。在這樣的形勢(shì)下,跨平臺(tái)的技術(shù)方案也受到越來(lái)越多人和企業(yè)的關(guān)注。
本篇文章我將從原理、優(yōu)缺點(diǎn)等方面為大家分享跨平臺(tái)技術(shù)
一. H5
說(shuō)到跨平臺(tái),沒(méi)人不知道H5。不管是在Mac、Windows、Linux、iOS、Android還是其他平臺(tái),只要給一個(gè)瀏覽器,連“月球”上它都能跑。
1.瀏覽器架構(gòu)
下面,我們來(lái)看看讓H5如此橫行霸道的瀏覽器的架構(gòu):
瀏覽器由以上7個(gè)部分組成,而“渲染引擎”是性能優(yōu)化的重中之重,一起了解其中的渲染原理。
2.渲染引擎原理
不同的瀏覽器內(nèi)核不同,渲染過(guò)程會(huì)不太一樣,但主要流程還是一致的。
分為下面6步驟:
從以上6步,我們可以總結(jié)渲染優(yōu)化的要點(diǎn):
以上就是瀏覽器端的內(nèi)容。但H5作為跨平臺(tái)技術(shù)的載體,是如何與不同平臺(tái)的App進(jìn)行交互的呢?這時(shí)候JSBridge就該出場(chǎng)了。
3.JSBridge原理
JSBridge,顧名思義,是JS和Native之間的橋梁,用來(lái)進(jìn)行JS和Native之間的通信。
通信分為以下兩個(gè)維度:
那么App內(nèi)加載H5的過(guò)程是什么樣的呢?
4.App打開(kāi)H5過(guò)程
打開(kāi)H5分為4個(gè)階段:
這四步,對(duì)應(yīng)的過(guò)程如上圖所以,我們可以針對(duì)性的做性能優(yōu)化。
5.優(yōu)缺點(diǎn)分析
下面,我們進(jìn)行H5的優(yōu)缺點(diǎn)分析:
優(yōu)點(diǎn)
缺點(diǎn)
雖然H5目前還存在不足,但隨著PWA、WebAssembly等技術(shù)的進(jìn)步,相信H5在未來(lái)能夠得到越來(lái)也好的發(fā)展。
二.小程序
2018年是微信小程序飛速發(fā)展的一年,19年,各大廠商快速跟進(jìn),已經(jīng)有了很大的影響力。下面,我們以微信小程序?yàn)槔治鲂〕绦虻募夹g(shù)架構(gòu)。
小程序跟H5一樣,也是基于Webview實(shí)現(xiàn)。但它包含View視圖層、App Service邏輯層兩部分,分別獨(dú)立運(yùn)行在各自的WebView線程中。
1.View
可以理解為h5的頁(yè)面,提供UI渲染。由WAWebview.js來(lái)提供底層的功能,具體如下:
每個(gè)窗口都有一個(gè)獨(dú)立的WebView進(jìn)程,因此微信限制不能打開(kāi)超過(guò)5個(gè)層級(jí)的頁(yè)面來(lái)保障用戶體驗(yàn)。
2. App Service
提供邏輯處理、數(shù)據(jù)請(qǐng)求、接口調(diào)用。由WAService.js來(lái)提供底層的功能,具體如下:
運(yùn)行環(huán)境:
僅有一個(gè)WebView進(jìn)程
3.View App Service通信
視圖層和邏輯層通過(guò)系統(tǒng)層的JSBridage進(jìn)行通信,邏輯層把數(shù)據(jù)變化通知到視圖層,觸發(fā)視圖層頁(yè)面更新,視圖層將觸發(fā)的事件通知到邏輯層進(jìn)行業(yè)務(wù)處理。
4. 優(yōu)缺點(diǎn)分析
優(yōu)點(diǎn)
缺點(diǎn)
既然WebView性能不佳,那有沒(méi)有更好的方案呢?下面我們看看React Native。
三.React Native
RN的理念是在不同平臺(tái)上編寫(xiě)基于React的代碼,實(shí)現(xiàn)Learn once, write anywhere。
Virtual DOM在內(nèi)存中,可以通過(guò)不同的渲染引擎生成不同平臺(tái)下的UI,JS和Native之間通過(guò)Bridge通信
1.React Native 工作原理
在 React 框架中,JSX 源碼通過(guò) React 框架最終渲染到了瀏覽器的真實(shí) DOM 中,而在 React Native 框架中,JSX 源碼通過(guò) React Native 框架編譯后,與Native原生的UI組件進(jìn)行映射,用原生代替DOM元素來(lái)渲染,在UI渲染上非常接近Native App。
2.React Native 與Native平臺(tái)通信
3.優(yōu)缺點(diǎn)分析
優(yōu)點(diǎn)
缺點(diǎn)
4.RN展望
雖然RN還存在不足,但RN新版本已經(jīng)做了如下改進(jìn),并且RN團(tuán)隊(duì)也在積極準(zhǔn)備大版本重構(gòu),能否成為開(kāi)發(fā)者們所信賴的跨平臺(tái)方案,讓我們拭目以待。
既然React Native在渲染方面還擺脫不了原生,那有沒(méi)有一種方案是直接操控GPU,自制引擎渲染呢,我們終于迎來(lái)了Flutter!
四.Flutter
Flutter是Google開(kāi)發(fā)的一套全新的跨平臺(tái)、開(kāi)源UI框架,支持iOS、Android系統(tǒng)開(kāi)發(fā),并且是未來(lái)新操作系統(tǒng)Fuchsia的默認(rèn)開(kāi)發(fā)套件。渲染引擎依靠跨平臺(tái)的Skia圖形庫(kù)來(lái)實(shí)現(xiàn),依賴系統(tǒng)的只有圖形繪制相關(guān)的接口,可以在最大程度上保證不同平臺(tái)、不同設(shè)備的體驗(yàn)一致性,邏輯處理使用支持AOT的Dart語(yǔ)言,執(zhí)行效率也比JavaScript高得多。
1.Flutter架構(gòu)原理
2.Dart優(yōu)勢(shì)
很多人會(huì)好奇,為什么Flutter要用Dart,而不是用JavaScript開(kāi)發(fā),這里列下Dart的優(yōu)勢(shì)
3.優(yōu)缺點(diǎn)分析
優(yōu)點(diǎn)
缺點(diǎn)
單數(shù)的時(shí)候用單括號(hào),復(fù)數(shù)用雙括號(hào)。
一開(kāi)始我要說(shuō)明一下我是完全零基礎(chǔ),之前完全沒(méi)有接觸過(guò)html,css,javascript,相信能給新手帶來(lái)幫助!
這個(gè)是我從零開(kāi)始學(xué)習(xí)react-native的一個(gè)學(xué)習(xí)記錄過(guò)程,簡(jiǎn)單易懂,但涵蓋功能全面,基本可以算是一個(gè)比較完整的電商app了,希望能夠給react-native的初學(xué)者一些幫助。因?yàn)楣緞偨邮忠粋€(gè)新的RN項(xiàng)目,而本人對(duì)于RN等跨平臺(tái)完全沒(méi)有接觸過(guò),甚至沒(méi)有任何react等前端基礎(chǔ),html,css,javascript也是從未接觸,但一直對(duì)這方面比較感興趣,因此正好趁此機(jī)會(huì)學(xué)習(xí)了一把,感覺(jué)很有成就感,找到了曾經(jīng)那種從0到1的掌握技能的感覺(jué),整個(gè)過(guò)程大概頂多一個(gè)月時(shí)間。雖然RN現(xiàn)在可能沒(méi)有以前那么火熱,但是其跨平臺(tái)思想還是很值得學(xué)習(xí)的,比如google新出的flutter其中很多思想與RN大同小異,例如其組件的state控制頁(yè)面渲染機(jī)制等。當(dāng)然這個(gè)項(xiàng)目還有很多功能可以后續(xù)慢慢完善的地方。
未來(lái)太遙遠(yuǎn),不想這么多,技術(shù)棧幾年一換才是常態(tài)。目前很多應(yīng)用開(kāi)發(fā)者在嘗試使用uni-app,可以嘗試一下,多學(xué)一點(diǎn)多一個(gè)技術(shù)選擇不是壞事。
想學(xué)一個(gè)長(zhǎng)久可用的技術(shù),在IT界特別是中國(guó),并不太現(xiàn)實(shí)。如果選擇了前端,那情況只怕是更糟。
uniapp是未來(lái)趨勢(shì)?NO!NO!
說(shuō)uniapp成為趨勢(shì)感覺(jué)有點(diǎn)好笑。
不懂行的可能不了解,我就換個(gè)說(shuō)法。
我可以說(shuō)手機(jī)行業(yè)小米手機(jī)會(huì)成為未來(lái)的趨勢(shì)嗎?
你認(rèn)為可能性多大?當(dāng)然不可否認(rèn)小米很優(yōu)秀了,當(dāng)然實(shí)話實(shí)說(shuō),這也是相對(duì)的。想變成趨勢(shì)可謂有點(diǎn)夜郎自大。
uniapp是什么?簡(jiǎn)單點(diǎn)說(shuō)說(shuō)吧
一個(gè)基于vue的跨平臺(tái)開(kāi)發(fā)的框架,有了它你可以寫(xiě)一套代碼打包成安卓、蘋(píng)果安裝包,還可以導(dǎo)出各種小程序,還可以導(dǎo)出h5…,反正功能很強(qiáng)大。
它的出現(xiàn),只要你懂點(diǎn)前端,只要你會(huì)點(diǎn)vue,OK那你就可以開(kāi)發(fā)APP了。
厲害不厲害?可以說(shuō)在某種程度上確實(shí)很牛逼,很方便,特別又是國(guó)產(chǎn),文檔、demo之類的很多。
平臺(tái)又出有云服務(wù),支付,廣告等各種插件。小白上手也很快。所以一時(shí)圈了很粉,社區(qū)還算湊合吧。
uniapp之所以被越來(lái)越多的人需要,不得不說(shuō)下跨平臺(tái)。
APP開(kāi)發(fā)跨平臺(tái)確實(shí)是個(gè)剛需,也是一個(gè)真正的趨勢(shì)。畢竟純?cè)_(kāi)發(fā)一個(gè)APP太復(fù)雜了,成本也高。有些APP根本不需要關(guān)心所謂的性能、流暢度之類的。所以跨平臺(tái),一套代碼完全搞定,可謂是個(gè)不錯(cuò)的選擇。
但是跨平臺(tái)可選性的技術(shù)方案太多,與uniapp直接相對(duì)的,apicloud,在國(guó)產(chǎn)圈也是拉了不少粉。
此外rn,lonic,cordova,weex等之類的前輩仍然具有一定的地位,還有新起來(lái)flutter也是火的不得了。
所以u(píng)niapp只能說(shuō)在小范圍內(nèi)可以說(shuō)很好,但是和那些成熟,風(fēng)靡海內(nèi)外的技術(shù)框架還是有差距的。
uniapp真的好用嗎?
首先,我感覺(jué)它越來(lái)越廢了。有時(shí)真是感覺(jué)積累!
開(kāi)發(fā)APP就專業(yè)開(kāi)發(fā)APP吧,你還搞的適配一堆小程序,所以造成越來(lái)越臃腫。文檔雜亂。
有時(shí),選擇你,我就是想僅僅開(kāi)發(fā)APP。壓根不要小程序!
所以,特別是新手,因此會(huì)有一定的煩惱。
另一個(gè) 值得 吐槽的就是不太穩(wěn)定!
架構(gòu)經(jīng)常換,而且之前的很難兼容!
為此估計(jì)不少人想罵人。特別那些已經(jīng)有了成熟運(yùn)營(yíng)的APP。
再次升級(jí)的話,不好意思,很多東西重寫(xiě)吧。
從當(dāng)初非自定義組件、自定義組件,再到今天的v3架構(gòu)。可謂一步一個(gè)坑,真的嚴(yán)重依賴它的話,真的花費(fèi)大精力去踩坑了。
當(dāng)然一般的開(kāi)發(fā)拿來(lái)用用還是不錯(cuò)的
我司項(xiàng)目開(kāi)始用的h5+那一套,也用uniapp做過(guò)幾個(gè)項(xiàng)目。反正要求不是很高,效果感覺(jué)還可以。
真的真的去完全適配安卓,蘋(píng)果的話,要做的還是有很多。
OK,就這了。技術(shù)本身無(wú)所謂好壞,只有適合不適合。
有時(shí)基于時(shí)間、項(xiàng)目成本、人員技術(shù)水平,只要合適就是最好的。
uniapp也一樣,希望它快快成長(zhǎng),快快穩(wěn)定,完善吧!
uniapp目前確實(shí)很火,暫且不說(shuō)uniapp這種框架是不是未來(lái)的趨勢(shì),但大前端絕對(duì)是未來(lái)的趨勢(shì)。
在計(jì)算機(jī)編程領(lǐng)域,前端近幾年的技術(shù)更新速度達(dá)到了頂峰。
這并不是得益于前端的語(yǔ)言優(yōu)勢(shì),而是開(kāi)放繁榮的生態(tài)。
uniapp這類框架正是前端進(jìn)軍移動(dòng)互聯(lián)網(wǎng)的利刃。
移動(dòng)互聯(lián)網(wǎng)過(guò)時(shí)了嗎?不,移動(dòng)互聯(lián)網(wǎng)正在以新的形態(tài)進(jìn)軍PC。
所以,未來(lái)幾年uniapp這類框架還會(huì)繁榮,而前端慢慢融合,PC與移動(dòng)的前端界限越來(lái)越模糊。
serverless是趨勢(shì),unicloud正好整合了阿里云與騰訊云!
最重要的是unicloud開(kāi)始標(biāo)準(zhǔn)化,uni-id ,unicloud-admin就是苗頭!
聽(tīng)從開(kāi)發(fā)者建議且更新頻繁的框架!兩年左右完善度已經(jīng)非常高!
現(xiàn)在他們需要做的功能太多,所以一些細(xì)節(jié)性并未完善,一旦穩(wěn)定下來(lái),他們能把一些細(xì)節(jié)做好,這個(gè)框架與開(kāi)發(fā)者工具絕對(duì)不容小噓!
免費(fèi)的服務(wù)器,免費(fèi)的框架,對(duì)于初創(chuàng)團(tuán)隊(duì),或者個(gè)人創(chuàng)業(yè)者,有想法的開(kāi)發(fā)者,可以省大多成本!
自己獨(dú)立完成的項(xiàng)目(超級(jí)檔案)已上架小米,華為,蘋(píng)果應(yīng)用商店,同時(shí),各大平臺(tái)小程序也全部上架!
不是。h5類的優(yōu)勢(shì)在于開(kāi)發(fā)簡(jiǎn)單,周期短,一套代碼跑多端。適合初創(chuàng)快速迭代。任何一個(gè)成熟的產(chǎn)品在達(dá)到一定規(guī)模后,都會(huì)回歸原生,或者混合。這是性能,用戶體驗(yàn),安全等多方面因素決定的。這也是有了rn后,為什么還會(huì)有flutter出現(xiàn)的原因。
何為趨勢(shì)?在互聯(lián)網(wǎng)高速發(fā)達(dá)的時(shí)代,物競(jìng)天擇的規(guī)律同樣適用,這個(gè)開(kāi)發(fā)平臺(tái)的主要目的就是解決了多平臺(tái)重復(fù),跨平臺(tái)生態(tài)不好,開(kāi)發(fā)和使用用戶體驗(yàn)不好的問(wèn)題,真正做到了一套代碼全平臺(tái)適用,一勞永逸,同時(shí)還不影響平臺(tái)特色,隨著整個(gè)業(yè)內(nèi)開(kāi)發(fā)者的用戶數(shù)越來(lái)越多,勢(shì)必會(huì)取代不合時(shí)宜的開(kāi)發(fā)平臺(tái)。從目前的使用廣度和應(yīng)用產(chǎn)品的市場(chǎng)反饋來(lái)看,它是具備這個(gè)能力的。
uniapp還是很多人用的,尤其在現(xiàn)在這個(gè)時(shí)間,用來(lái)開(kāi)發(fā)小程序還是不錯(cuò)的
如果沒(méi)有意外的話,他還會(huì)保持現(xiàn)狀很長(zhǎng)時(shí)間
對(duì)于小型項(xiàng)目或者交互要求不高的項(xiàng)目來(lái)說(shuō),基本是夠用的,這種項(xiàng)目又普遍對(duì)成本或者開(kāi)發(fā)效率非常敏感,在這點(diǎn)做的比uniapp好的確實(shí)不多,所以他的用戶群會(huì)非常穩(wěn)定
至于感覺(jué)上沒(méi)人討論的原因也很簡(jiǎn)單
一是有影響力的開(kāi)發(fā)人員幾乎不可能是uniapp的用戶,uniapp的用戶多數(shù)也提不出值得討論的內(nèi)容
二是這東西真沒(méi)什么可討論的,上限實(shí)在不高
uniapp目前在國(guó)內(nèi)的生態(tài)很好,因?yàn)榇笄岸耸勤厔?shì),是uniapp在未來(lái)一段時(shí)間內(nèi)還是很火的,個(gè)人認(rèn)為如果創(chuàng)業(yè)階段如果沒(méi)有原生客戶端工程師,只有web團(tuán)隊(duì),uniapp非常適合
目前來(lái)說(shuō)uniapp是 一款很好的開(kāi)發(fā)小程序的編碼工具,
優(yōu)點(diǎn)有
一:簡(jiǎn)單易學(xué),學(xué)習(xí)成本低。
二:可以跨多個(gè)平臺(tái),制作一套代碼可以在多個(gè)平臺(tái)發(fā)布
三:運(yùn)行比較流暢,運(yùn)行體驗(yàn)更好,兼容weex,組件·api和微信小程序一致
綜合以上幾點(diǎn)來(lái)看uniapp前景不錯(cuò)。
目前確實(shí)有這個(gè)趨勢(shì)。用uniapp開(kāi)發(fā)了一款app,叫小 時(shí)尚 ,目前已經(jīng)在各大應(yīng)用商店上線。
作為客戶端開(kāi)發(fā)程序員,首當(dāng)其沖就是完成業(yè)務(wù)迭代,服務(wù)好產(chǎn)品用戶和業(yè)務(wù)團(tuán)隊(duì)。服務(wù)好產(chǎn)品用戶是業(yè)務(wù)團(tuán)隊(duì)存在的價(jià)值,服務(wù)好業(yè)務(wù)團(tuán)隊(duì)是客戶端開(kāi)發(fā)存在的價(jià)值。業(yè)務(wù)發(fā)展要考慮變現(xiàn),要考慮增長(zhǎng),要考慮留存等等,最終落地的環(huán)節(jié)往往需要客戶端開(kāi)發(fā)來(lái)實(shí)現(xiàn)。
除了業(yè)務(wù)迭代,根據(jù)業(yè)務(wù)特色和客戶端開(kāi)發(fā)團(tuán)隊(duì)特點(diǎn),會(huì)圍繞高效研發(fā)體系和穩(wěn)定研發(fā)質(zhì)量不斷做優(yōu)化,也有的會(huì)嘗試跨端能力建設(shè)、新技術(shù)探索落地。在更大一點(diǎn)的公司還會(huì)關(guān)注團(tuán)隊(duì)的技術(shù)影響力輸出,以及不可忽視的安全和合規(guī)能力。
為了更好的衡量客戶端質(zhì)量,往往會(huì)用卡頓、卡死、crash等基礎(chǔ)指標(biāo)來(lái)評(píng)估質(zhì)量,同時(shí)也會(huì)不斷做包大小優(yōu)化、啟動(dòng)優(yōu)化、磁盤(pán)和流量監(jiān)控、流暢度優(yōu)化、cpu和電量?jī)?yōu)化等等來(lái)提升基礎(chǔ)體驗(yàn)。同時(shí)還要關(guān)注研發(fā)過(guò)程中的效率提升,比如說(shuō)研發(fā)流程優(yōu)化、編譯優(yōu)化、自動(dòng)化測(cè)試等等。
客戶端能做的事情非常多,有服務(wù)于用戶的業(yè)務(wù)方向,也有保障質(zhì)量的基礎(chǔ)方向,還有提供各種通用能力的中臺(tái)方向,還有從事各種跨端建設(shè)、音視頻處理、網(wǎng)絡(luò)建設(shè)等等 。從供需關(guān)系來(lái)看,智能手機(jī)的市場(chǎng)規(guī)模是客戶端開(kāi)發(fā)崗位需求的天花板,全球接近40億的智能手機(jī)就是客戶端開(kāi)發(fā)這個(gè)行業(yè)的未來(lái)保障。至于脈脈“客三消”理論鼓吹的大前端取代客戶端開(kāi)發(fā),是典型的杞人憂天。從事過(guò)客戶端開(kāi)發(fā)的程序員都知道客戶端原生Native開(kāi)發(fā)是不可能被跨端的技術(shù)完全取代。RN、flutter等是在某些特定環(huán)境下會(huì)有不錯(cuò)應(yīng)用收益,但不管是交互體驗(yàn)、研發(fā)體驗(yàn),各項(xiàng)性能指標(biāo)都比不上原生開(kāi)發(fā)語(yǔ)言。
客戶端開(kāi)發(fā)是移動(dòng)互聯(lián)網(wǎng)快速發(fā)展的產(chǎn)物,本身也有一些從事的風(fēng)險(xiǎn)點(diǎn),從我的經(jīng)歷來(lái)看,主要有以下問(wèn)題:
客戶端的很多日常工作是需求開(kāi)發(fā),需求開(kāi)發(fā)主要是由各種業(yè)務(wù)邏輯、各類界面的實(shí)現(xiàn)。最常見(jiàn)的現(xiàn)象是 一年經(jīng)驗(yàn)用三年,三年經(jīng)驗(yàn)用十年 。由于客戶端所見(jiàn)即所得的特點(diǎn),很多開(kāi)發(fā)者在度過(guò)前期的上手期之后,就一直重復(fù)使用類似的思考模式去解決問(wèn)題。如果沒(méi)有環(huán)境壓迫,也沒(méi)有自己主動(dòng)去思考突破,會(huì)在日復(fù)一日的勞作中迷失成長(zhǎng)。時(shí)間較長(zhǎng)之后,往往會(huì)陷入能力增長(zhǎng)的瓶頸期。
客戶端開(kāi)發(fā)的求職者和招聘者之間,現(xiàn)在有一種相互矛盾的現(xiàn)象: 求職者感覺(jué)外面客戶端開(kāi)發(fā)的需求量在不斷的變少,招聘者一直在苦惱招不到人。
客戶端開(kāi)發(fā)的崗位減少是由于移動(dòng)互聯(lián)網(wǎng)的基建越來(lái)越成熟,相比流量成本和維護(hù)成本都更高的App,很多小公司選擇使用了更加便捷的小程序、公眾號(hào)、抖音短視頻等等大公司提供的基礎(chǔ)平臺(tái),導(dǎo)致了客戶端開(kāi)發(fā)的崗位需求量在不斷減少。
招聘者苦惱的是招聘不到優(yōu)秀的開(kāi)發(fā)者,由于互聯(lián)網(wǎng)行業(yè)常年有長(zhǎng)期唱衰客戶端開(kāi)發(fā)的現(xiàn)象(從以前的PC開(kāi)發(fā)到現(xiàn)在是移動(dòng)端開(kāi)發(fā)),再加上最近幾年興起的算法崗位和數(shù)據(jù)分析崗位競(jìng)爭(zhēng),越來(lái)越少的優(yōu)秀畢業(yè)生投身到客戶端的這個(gè)行業(yè)上,導(dǎo)致優(yōu)秀的開(kāi)發(fā)者供不應(yīng)求。
“中年危機(jī)”是懸在程序員頭上的達(dá)摩克里斯之劍,這不僅僅是客戶端開(kāi)發(fā)會(huì)面臨的問(wèn)題,這是所有大齡程序員都必須面對(duì)的互聯(lián)網(wǎng)從業(yè)現(xiàn)狀。由于前面提到的互聯(lián)網(wǎng)基建成熟帶來(lái)了的客戶端崗位需求減少問(wèn)題,客戶端開(kāi)發(fā)在中年危機(jī)這個(gè)問(wèn)題顯得更有壓力。
但是如果覺(jué)得從事前端開(kāi)發(fā)或者后臺(tái)開(kāi)發(fā)就不用面對(duì)中年危機(jī),就是太過(guò)于樂(lè)觀了。設(shè)想一下,一個(gè)公司為了節(jié)省成本都不做App了,他還會(huì)去招一個(gè)40的前端開(kāi)發(fā)或者后端開(kāi)發(fā)嗎?
互聯(lián)網(wǎng)行業(yè)在快速發(fā)展,薪酬待遇也在不斷提升,這也帶來(lái)源源不斷的新人。 當(dāng)一個(gè)新人和老人能力相差不大時(shí),性價(jià)比更高的新人往往更容易勝出。 想要避免中年危機(jī),唯有不斷鍛煉自己的能力,思考自己的不足之處,提升自己在市場(chǎng)的競(jìng)爭(zhēng)力。
根據(jù)自己的粗淺認(rèn)知,我覺(jué)得有下面幾個(gè)方向可以努力。
大部分公司的官方回答永遠(yuǎn)是彈性工作制,事情干完就可以走。但是事情永遠(yuǎn)不可能做完,事情可以做完的公司還有市場(chǎng)競(jìng)爭(zhēng)力?
我的看法是順應(yīng)潮流,合理安排時(shí)間。優(yōu)先完成工作的事情,然后利用多余時(shí)間來(lái)進(jìn)行學(xué)習(xí)。盡量不要把工作安排的滿滿當(dāng)當(dāng),這樣疲于奔命會(huì)讓生活非常疲憊;也不要夸大工作難度、渾水摸魚(yú),摸魚(yú)是對(duì)自己最大的不負(fù)責(zé)。按公司提倡的工作時(shí)間,合理安排工期,如果還有一些時(shí)間可以放松下心態(tài),花點(diǎn)時(shí)間學(xué)習(xí)和成長(zhǎng)。
可以從下面幾個(gè)方向去探索:
學(xué)習(xí)如何從重復(fù)工作中學(xué)習(xí)和成長(zhǎng)是必須的,因?yàn)樵傩碌墓ぷ饕矔?huì)變成舊的工作。
學(xué)習(xí)的方向可以是做事、技術(shù)、思考、規(guī)劃、團(tuán)隊(duì)等等,找一個(gè)當(dāng)下最需要成長(zhǎng)的能力開(kāi)始鍛煉。合理使用環(huán)境的壓力,形成自己的學(xué)習(xí)和成長(zhǎng)動(dòng)力;偏技術(shù)側(cè)需要自己拆分目標(biāo),逐步實(shí)現(xiàn)目標(biāo),這是非常重要的自驅(qū)力。
成長(zhǎng)的過(guò)程很簡(jiǎn)單,制定目標(biāo),實(shí)現(xiàn)目標(biāo)。目標(biāo)需要有一定的量化標(biāo)準(zhǔn),模棱兩可讓目標(biāo)變得不可觸碰。制定目標(biāo)也要考慮目標(biāo)的指引作用,對(duì)個(gè)人而言,目標(biāo)描述的過(guò)程會(huì)比結(jié)果更加重要。
努力學(xué)習(xí)換來(lái)好結(jié)果,好結(jié)果繼而激勵(lì)產(chǎn)生進(jìn)步動(dòng)力,建立一個(gè)良好的正向反饋循環(huán)。
一個(gè)職業(yè)的未來(lái),要看行業(yè)的發(fā)展前景。 移動(dòng)互聯(lián)網(wǎng)的發(fā)展規(guī)模,注定客戶端在短期內(nèi)仍然是剛需。至于長(zhǎng)期發(fā)展之后,移動(dòng)互聯(lián)網(wǎng)被新的時(shí)代取代,那么也會(huì)有新的崗位延伸出來(lái),到時(shí)再緊跟時(shí)代潮流即可。
另外要把業(yè)務(wù)和技術(shù)分開(kāi),技術(shù)只是一個(gè)工具。在前期確實(shí)需要積累客戶端的知識(shí)和相關(guān)技術(shù),但是隨著時(shí)間的推移,慢慢會(huì)接觸更多的知識(shí)。不要給自己設(shè)限制,在適當(dāng)?shù)臅r(shí)機(jī)技術(shù)棧可以擴(kuò)大到后端。假如某個(gè)人只做某一個(gè)模塊,那么也需要去接觸這個(gè)模塊的前因后果,數(shù)據(jù)的產(chǎn)生消費(fèi)。眼界如果局限在客戶端,那么只能知其然不知其所以然。重點(diǎn)是在于人,人才是解決問(wèn)題的核心,具體的技術(shù)只是工具。
網(wǎng)站欄目:flutter與rn,flutter百度百科
瀏覽地址:http://chinadenli.net/article8/dsgciop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站策劃、軟件開(kāi)發(fā)、網(wǎng)站維護(hù)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)