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