字節(jié)跳動(dòng)為啥選用 Flutter,并非跨平臺(tái)終極之選,是不一樣的未來

感謝參考原文-http://bjbsair.com/2020-04-01/tech-info/18580.html

2018 年 12 月 需曾,Google 宣布 Flutter 1.0 版本正式發(fā)布革半。截至目前讹剔, Flutter 在 Github 上已獲得 88000+ 的關(guān)注和 11000+ 的 Fork 逃糟,其發(fā)展速度相當(dāng)驚人惊橱,是今年移動(dòng)端最火熱的開發(fā)框架之一尤仍。

Flutter 大火背后的原因是什么二汛?為什么越來越多的企業(yè)和開發(fā)者會(huì)選擇使用 Flutter遍烦?Flutter 會(huì)成為跨平臺(tái)開發(fā)的終極之選嗎俭嘁?

近日,InfoQ 有幸采訪到字節(jié)跳動(dòng)移動(dòng)平臺(tái)部 Flutter 架構(gòu)師服猪、知名博客 Gityuan 博主袁輝輝供填,他針對(duì)上述問題作了回應(yīng)拐云。他表示“ Flutter 并非跨平臺(tái)終極之選,最初選擇 Flutter近她,不是因?yàn)樗欢〞?huì)成為未來終極之選叉瘩,而是因?yàn)樗锌赡艹蔀椴灰粯拥奈磥怼粘捎!贝送廪泵澹€會(huì)在即將召開的 QCon 全球軟件開發(fā)大會(huì) 2020(北京站)上分享《字節(jié)跳動(dòng) Flutter 大規(guī)模業(yè)務(wù)落地與架構(gòu)優(yōu)化實(shí)戰(zhàn)》,感興趣的讀者可以關(guān)注晌端。

以下為袁輝輝的采訪內(nèi)容整理捅暴。

Flutter 大火的原因

有人說 Flutter 大火主要原因是它選擇了 Dart 語言,Dart 有著高性能的表現(xiàn)和可快速分配內(nèi)存的能力咧纠,能同時(shí)支持 JIT 和 AOT 模式蓬痒,允許在帶類型的語言中支持形變和有狀態(tài)熱重載,能編譯出高效率的 ARM 機(jī)器碼指令漆羔,Dart 作為面向?qū)ο蟮恼Z言也能讓絕大多數(shù)開發(fā)者更快速上手梧奢。我認(rèn)可 Dart 語言有一定的優(yōu)勢(shì),但這樣的優(yōu)勢(shì)并非 Dart 獨(dú)有演痒,我想這更不會(huì)是大家選擇 Flutter 的核心原因亲轨,這是因果倒置。事實(shí)上鸟顺,Dart 是 2011 年推出的惦蚊,在 Flutter 出現(xiàn)之前,Dart 曾一度幾乎被人遺忘讯嫂。正是因?yàn)榻陙?Flutter 的火爆蹦锋,才讓 Dart 重新進(jìn)入大眾的視線。Flutter 當(dāng)初選擇 Dart欧芽,或者僅因?yàn)?Google 的 Flutter 和 Dart 這兩個(gè)團(tuán)隊(duì)離得比較近莉掂,交流比較方便。

我認(rèn)為 Flutter 之所以大火千扔,主要是以下幾個(gè)原因:

一憎妙、現(xiàn)有跨平臺(tái)技術(shù)存在缺陷

在移動(dòng)互聯(lián)網(wǎng)時(shí)代,Android 和 iOS 兩大陣營(yíng)長(zhǎng)期共存曲楚,再加上體系成熟的 Web 前端技術(shù)厘唾,導(dǎo)致出現(xiàn)同一個(gè)應(yīng)用需多端重復(fù)開發(fā)的人力成本問題。正因如此龙誊,移動(dòng)時(shí)代下的跨平臺(tái)技術(shù)是一個(gè)需要長(zhǎng)期研究的課題抚垃。如果當(dāng)下的跨平臺(tái)技術(shù)已經(jīng)有比較完美的解決方案,可能就沒有新技術(shù)萌芽的機(jī)會(huì)。而事實(shí)上讯柔,目前業(yè)界比較成熟的跨平臺(tái)技術(shù)都存在一定的缺陷,比如小程序(WebView)渲染耗時(shí)過長(zhǎng)护昧,白屏率會(huì)影響轉(zhuǎn)化收益魂迄,能實(shí)現(xiàn)的功能非常受限;再比如 React Native 的性能不足惋耙、問題排除難捣炬、維護(hù)成本高等。而 Flutter 的出現(xiàn)绽榛,讓這些跨平臺(tái)開發(fā)問題有所改善湿酸,它還是 Google 開源的技術(shù),自身也具備一定的熱度灭美。另外推溃,一直備受關(guān)注且神秘的 Fuchsia 系統(tǒng)在 UI 框架上使用的也是 Flutter,可作為長(zhǎng)期戰(zhàn)略投入届腐,這也增強(qiáng)了大家對(duì) Flutter 的信心铁坎。

二、研發(fā)效率就是競(jìng)爭(zhēng)力

移動(dòng)互聯(lián)網(wǎng)進(jìn)入下半場(chǎng)犁苏,出現(xiàn)字節(jié)跳動(dòng)等新巨頭硬萍,在沒有歷史包袱的情況下,更愿意嘗試技術(shù)上限更高的新技術(shù)围详。從校招和社招的難度上不難發(fā)現(xiàn):客戶端的人才相比之前更為稀缺朴乖,尤其是 iOS 工程師。而下半場(chǎng)會(huì)有更多競(jìng)爭(zhēng)和更為激烈的賽道助赞,比如教育等方向买羞。Flutter 本身非常適合從零開始的沒有歷史包袱的應(yīng)用開發(fā),對(duì)于新業(yè)務(wù)尤其是在團(tuán)隊(duì)人力緊缺的情況下嫉拐,在技術(shù)選型上考慮 Flutter哩都,能加快產(chǎn)品在多端落地、快速試錯(cuò)婉徘。

三漠嵌、集漂亮與流暢集于一身

Flutter “一出生”就以“UI 漂亮、像素級(jí)可控盖呼、性能流暢儒鹿、可媲美原生性能”等特點(diǎn)吸引廣大開發(fā)者的眼球,自渲染引擎甚至具備開發(fā)游戲的能力几晤。移動(dòng)下半場(chǎng)约炎,沒有人口紅利,競(jìng)爭(zhēng)更為激烈,如何能更好地滿足用戶對(duì)高品質(zhì)圾浅、高流暢的需求掠手,便是移動(dòng)端一種強(qiáng)有力的競(jìng)爭(zhēng)力±瓴叮跨平臺(tái)技術(shù)想要擁有更高的流暢度喷鸽,采用自渲染技術(shù)的方案便是更優(yōu)解,也是一個(gè)更為徹底的跨平臺(tái)技術(shù)方向灸拍。

字節(jié)跳動(dòng)選擇 Flutter 的初心

說到這里做祝,先分享一下 Flutter 最初是如何誕生的故事。Flutter 創(chuàng)始人 Eric 之前在 Chrome 團(tuán)隊(duì)工作鸡岗,期間遇到一些難以解決的問題混槐, 希望 Web 中的一部分能夠擁有更加平滑的體驗(yàn), 為此他花了幾周時(shí)間做了一個(gè)實(shí)驗(yàn)轩性,不考慮 Web 的兼容方式声登,刪除了大量為了兼容訪問的代碼和一些 Web 開發(fā)者不常用的功能, 刪除到有不少 Web 元素的渲染已經(jīng)不支持了揣苏,然后做了一個(gè)基準(zhǔn)測(cè)試捌刮,得出結(jié)論是某些關(guān)注指標(biāo)的速度快了 20 倍。于是舒岸,Eric 決定再做點(diǎn)什么绅作,后面投入了大量研究和開發(fā),便有了現(xiàn)在的 Flutter 蛾派。

聽到這里給人的感覺是俄认,對(duì)于 Web 工程師而言 Flutter 應(yīng)該容易上手。我跟公司很多正在使用或者調(diào)研 Flutter 的業(yè)務(wù)團(tuán)隊(duì)做過溝通洪乍,發(fā)現(xiàn)客戶端比前端的同學(xué)對(duì) Flutter 接受度更高眯杏,我個(gè)人從 Android 端技術(shù)出身,的確覺得學(xué)習(xí) Flutter 還是非常容易上手的壳澳,但公司內(nèi)前端的同學(xué)對(duì) Flutter 使用的吐槽會(huì)多一點(diǎn)岂贩。所以,我認(rèn)為 Flutter 更像是以客戶端視角的跨平臺(tái)技術(shù)巷波,F(xiàn)lutter 與其說是大前端技術(shù)萎津,不如說是大移動(dòng)端技術(shù)。Flutter 發(fā)展的 Roadmap 也是先全面支持 Android/iOS 端能力抹镊,再進(jìn)一步完善 Web 端能力支持的锉屈。

字節(jié)跳動(dòng)對(duì)于客戶端技術(shù)還是非常重視的洲押,外界也多有調(diào)侃“ APP 工廠”宪拥,字節(jié)跳動(dòng)有很多客戶端工程師缸废,之前客戶端深入點(diǎn)的基礎(chǔ)技術(shù)更多是搞插件化馆里、熱修復(fù)娃兽、性能優(yōu)化吭历、安全加固等墨辛,跨平臺(tái)方向一直都是前端工程師在不遺余力地推進(jìn)英融,屬于大前端方向。而 Flutter 是客戶端更有主導(dǎo)的跨平臺(tái)技術(shù)方案绍豁。另外說明榜贴,字節(jié)跳動(dòng)并不是說只有一套跨平臺(tái)技術(shù)棧,公司內(nèi)部也是多套跨端技術(shù)棧并存妹田,也包括自研的方案。

在字節(jié)跳動(dòng)鹃共,跨平臺(tái)技術(shù)并沒有形成大規(guī)模的落地鬼佣,之前也提到?jīng)]有歷史包袱,所以在面對(duì)跨平臺(tái)技術(shù)選型的時(shí)候霜浴,更關(guān)注跨平臺(tái)技術(shù)的技術(shù)上限以及發(fā)展?jié)摿е裕凿秩炯夹g(shù)的 Flutter 可以理解為更徹底更純粹的跨平臺(tái)技術(shù),伴隨著媲美原生的流暢度阴孟,這便是我們選擇 Flutter 的初心晌纫。

Flutter 落地過程中的“坑”

截至目前,字節(jié)跳動(dòng)有很多業(yè)務(wù)落地了 Flutter 技術(shù)方案永丝,包括今日頭條锹漱、西瓜視頻、皮皮蝦等 20 多個(gè)業(yè)務(wù)在使用 Flutter 開發(fā)慕嚷,有純 Flutter 工程哥牍,也有 Flutter 與 Native 的混合工程。如果大家想要了解更多業(yè)務(wù)落地情況喝检,后續(xù)我會(huì)在今年的 QCon 北京 2020 大會(huì)上分享嗅辣。

Flutter 雖潛力上限很高,但仍需打磨和雕琢挠说,我們?cè)?Flutter 推動(dòng)過程中遇到很多問題澡谭,比如包體積過大的問題、性能達(dá)不到預(yù)期损俭、對(duì)混合工程的支持不夠友好蛙奖、各宿主 Flutter 引擎版本不一致、基礎(chǔ)庫不完善杆兵、Flutter 改造后各項(xiàng)數(shù)據(jù)打平等外永。除此之外,還有很多非技術(shù)的困難拧咳,比如業(yè)務(wù)團(tuán)隊(duì)并不認(rèn)可 Flutter 新技術(shù)伯顶,工程師缺乏 Flutter 經(jīng)驗(yàn),擔(dān)憂審核風(fēng)險(xiǎn)等,都會(huì)影響業(yè)務(wù)方是否采用 Flutter 技術(shù)祭衩,每一個(gè)困難都需要去解決灶体,不然就難以落地。下面就其中兩個(gè)難點(diǎn)掐暮,我來展開聊一下蝎抽。

一、包體積問題

字節(jié)跳動(dòng)內(nèi)的大型 APP路克,比如今日頭條樟结、抖音等對(duì)包體積的增量非常敏感,F(xiàn)lutter 的包體積涉及兩個(gè)部分精算,一個(gè)是一次性 Flutter 引擎的包體積問題瓢宦,一個(gè)是每次寫 Dart 代碼比寫 OC 代碼代碼增量的問題。這兩個(gè)問題對(duì)我們來說都非常棘手灰羽,我們成立了包體積優(yōu)化專項(xiàng)進(jìn)行全力攻堅(jiān)驮履,同時(shí)跟 Google 工程師多次會(huì)議溝通,不斷精簡(jiǎn)包體積廉嚼。最終我們通過一系列優(yōu)化手段玫镐,包含 Data 壓縮、編譯優(yōu)化怠噪、Skia 裁剪恐似、BoringSSL/ICU 庫 / 文字渲染 /libwebp 等庫裁剪取得了不少的效果;通過實(shí)踐我們發(fā)現(xiàn)用 OC 代碼和 Dart 代碼寫相同的業(yè)務(wù)邏輯傍念,Dart 生成的機(jī)器碼指令比 OC 多蹂喻,主要在生成的二進(jìn)制指令頭、指令冗余捂寿、指令對(duì)齊的精簡(jiǎn)口四,以及 StackMap 和 CodeSourceMap 的精簡(jiǎn)等方面。同時(shí)我們也向 Google 反饋了這些情況秦陋。關(guān)于指令精簡(jiǎn)蔓彩,可以查看 Issue 進(jìn)展 https://github.com/flutter/flutter/issues/40345 ,里面有記錄詳細(xì)的推進(jìn)過程驳概。

二赤嚼、性能優(yōu)化問題

這是我們遇到的棘手問題之一,我們用 Flutter 官方提供的性能分析工具 Timeline 來分析一個(gè)比較詭異的性能問題顺又,始終無法發(fā)現(xiàn)任何異常更卒。困擾已久,后來干脆重新擼了一遍 Timeline 整個(gè)性能分析工具的源碼稚照,最終找到了其缺陷蹂空,并向 Flutter 社區(qū)提及俯萌,合入了 10 個(gè) PR ,基于此讓我有幸成為了 Flutter Member 上枕,后續(xù)會(huì)持續(xù)向社區(qū)貢獻(xiàn)更多力量咐熙。

https://github.com/flutter/flutter/issues/47771

Flutter 是一個(gè)自渲染的跨平臺(tái)技術(shù),有著很高的性能上限辨萍,但并不代表現(xiàn)在性能各方面都很優(yōu)秀棋恼,畢竟 Flutter 作為一個(gè)“新生兒”,還是有一些需要進(jìn)一步改造的地方锈玉。除性能工具改造之外爪飘,其實(shí)在 Flutter 落地場(chǎng)景中,我們也解決了不少性能問題拉背,同時(shí)優(yōu)化了自身的引擎师崎,比如 UI 預(yù)加載策略、Flutter Turbo 技術(shù)去团、Vsync 調(diào)度策略等,讓引擎提速穷蛹,爭(zhēng)取讓 Flutter 性能發(fā)揮到極致土陪。

Flutter 在業(yè)務(wù)層面的發(fā)展阻力

引入 Flutter 之后,在公司的業(yè)務(wù)也創(chuàng)造了不少價(jià)值肴熏。主要體現(xiàn)在這幾個(gè)方面:其一鬼雀,F(xiàn)lutter 多端一致性上表現(xiàn)良好,能做到所見即所得蛙吏,無需針對(duì)某一平臺(tái)做額外適配工作源哩;其二,熱重載技術(shù)使得設(shè)計(jì)團(tuán)隊(duì)和工程團(tuán)隊(duì)可以非逞蛔觯快速的修改和調(diào)試 UI励烦,設(shè)計(jì)師只需要關(guān)注一個(gè)平臺(tái)實(shí)現(xiàn),UI 驗(yàn)收效率明顯提高泼诱,跨端開發(fā)可以提高工程師的人效(有團(tuán)隊(duì)初步估算人效大致提升了 1.8 倍)坛掠;其三,性能流暢度提升治筒,相較于 H5 版本首屏?xí)r間有較大提升屉栓,最后,產(chǎn)品商業(yè)化數(shù)據(jù)都有明顯的收益耸袜,能直觀地看到 Flutter 給公司帶來的創(chuàng)收友多。

不過,現(xiàn)階段 Flutter 的發(fā)展仍有一些阻力:

一堤框、Flutter 采用的是 Dart 語言域滥,沒能引入前端成熟的生態(tài)體系

作為前端工程師可能更希望是 Flutter 上層采用的是 JavaScript 或者 TypeScript纵柿,未來可考慮提供高性能的 Dart 與 JS 互轉(zhuǎn)能力。另外骗绕,F(xiàn)lutter 開發(fā)對(duì)于前端開發(fā)工程師而言藐窄,還是有一些挑戰(zhàn)的,純前端不一定能 Cover 的技術(shù)酬土,比如 Flutter 的一個(gè)硬件相關(guān)的 Plugin 只在某款手機(jī)出現(xiàn) Bug荆忍,如果社區(qū)沒有現(xiàn)存解決方案,可能就需要花比較大的時(shí)間成本去學(xué)習(xí) Native 技術(shù)撤缴,或者請(qǐng)教客戶端工程師刹枉。

二、開源庫相對(duì)比較欠缺屈呕,更新頻次不足

Flutter 生態(tài)還不夠完善微宝,新業(yè)務(wù)接入需要自己造輪子,尤其是在業(yè)務(wù)團(tuán)隊(duì)對(duì) Flutter 掌握不夠熟練的情況下虎眨,會(huì)增加額外的成本蟋软,F(xiàn)lutter 在大中型企業(yè)會(huì)更容易推廣起來,有人力可以去造輪子讓公司內(nèi)其他的業(yè)務(wù)復(fù)用嗽桩;另外岳守,F(xiàn)lutter 文檔有點(diǎn)少,能借鑒的經(jīng)驗(yàn)不多碌冶,未來需加強(qiáng)和鼓勵(lì)更多開發(fā)者加入到生態(tài)共建湿痢。

三、跟原生系統(tǒng)生態(tài)存在著一定的競(jìng)爭(zhēng)關(guān)系

有朋友跟我說起過這樣一件事扑庞,看到 Flutter 這么火譬重,Android 開發(fā)團(tuán)隊(duì)就問他,“大家為什么要用 Flutter 開發(fā) App罐氨,我們 Android 哪一點(diǎn)不好臀规,告訴我們,我們可以改進(jìn)它”栅隐。姑且不說他們對(duì)跨平臺(tái)理解不夠以现,但至少能看出原生平臺(tái)對(duì)跨端技術(shù)的擔(dān)憂,不少 Android 團(tuán)隊(duì)在推出 Kotlin Multiplatform 约啊,希望能爭(zhēng)奪更多市場(chǎng)邑遏。

另外,蘋果商店的審核風(fēng)險(xiǎn)也是大家所擔(dān)憂的恰矩,官方的公告原意是說應(yīng)用程序的核心特性和功能必須包含在軟件的二進(jìn)制文件中记盒,而不是通過類似 HTML5 的技術(shù)來實(shí)現(xiàn)動(dòng)態(tài)更新,蘋果要打壓的是動(dòng)態(tài)更新技術(shù)外傅,考慮到 Flutter 的合規(guī)性纪吮,Google 主動(dòng)把 Flutter 的 iOS 動(dòng)態(tài)化能力去掉了俩檬,F(xiàn)lutter 最終打包生成的產(chǎn)物就是 IPA,F(xiàn)lutter 其實(shí)是完全符合規(guī)范的碾盟,甚至還有使用 Flutter 開發(fā)的應(yīng)用還被 Apple 推薦過棚辽。相反,React Native冰肴、Weex屈藐、H5 等技術(shù)都是一種動(dòng)態(tài)化解決方案,這正是蘋果要管控的熙尉,目前蘋果的態(tài)度更多的是不提倡联逻,但也不保證不封殺。即便如此检痰,蘋果不希望原生開發(fā)生態(tài)被其他跨平臺(tái)技術(shù)搶占包归,蘋果也在不斷推行 SwiftUI 框架,力圖抵擋 Flutter 等跨平臺(tái)技術(shù)對(duì)原生開發(fā)的餐食铅歼。Flutter 未來要加強(qiáng)推進(jìn)步伐公壤,讓更多的大型 App 通過 Flutter 技術(shù)得到收益,只有用戶群體上來椎椰,未來的地位和話語權(quán)才會(huì)更高厦幅,就像現(xiàn)在小程序,原則上是不符合蘋果的審核要求的俭识,但各大型應(yīng)用基本都上線了小程序功能慨削,目前來看不至于說蘋果把小程序直接干掉洞渔。

Flutter 并非跨平臺(tái)終極之選

從 Hybrid App 到 React Native套媚,再到 Flutter,跨平臺(tái)技術(shù)層出不窮磁椒。目前來看堤瘤,F(xiàn)lutter 是跨平臺(tái)開發(fā)的最熱門技術(shù),但我并不認(rèn)為 Flutter 就一定是跨平臺(tái)開發(fā)的終極之選浆熔,它有著歷史局限性本辐,我只能說 Flutter 可能是當(dāng)下最有潛力的跨平臺(tái)技術(shù)。如果你對(duì)性能流暢度有高要求医增,或者有多個(gè)產(chǎn)品希望快速在多端試錯(cuò)迭代慎皱,我會(huì)推薦你嘗試 Flutter。

未來一段時(shí)間叶骨,還應(yīng)該是多套跨平臺(tái)技術(shù)并存的時(shí)代茫多, 目前 Flutter 也沒有全面做到可以碾壓其他跨平臺(tái)技術(shù),可根據(jù)團(tuán)隊(duì)以及業(yè)務(wù)特點(diǎn)來考慮更適合的方案忽刽。 有一定客戶端經(jīng)驗(yàn)的同學(xué)入手 Flutter 會(huì)更快一些天揖,如果團(tuán)隊(duì)在 React Native 上有很好落地夺欲,業(yè)務(wù)沒有遇到性能等瓶頸,且團(tuán)隊(duì)缺少客戶端能力今膊,建議先做技術(shù)調(diào)研和沉淀些阅,不要盲目追求新技術(shù),只有當(dāng)團(tuán)隊(duì)有能力且業(yè)務(wù)有需求的情況下斑唬,建議再考慮切換技術(shù)棧市埋。

我們前面提到過,一直備受關(guān)注且神秘的 Fuchsia 系統(tǒng)在 UI 框架上使用的也是 Flutter赖钞。Fuchsia 是 Google 開發(fā)的下一代操作系統(tǒng)腰素。Fuchsia 是采用全新模塊化設(shè)計(jì)思想、跨平臺(tái)框架技術(shù)的系統(tǒng)雪营。它能支持快捷裁剪定制弓千,更能適應(yīng)未來的多元化設(shè)備,包含手機(jī)献起、平板洋访、筆記本、路由器谴餐、智能設(shè)備姻政、機(jī)器人等,F(xiàn)uchsia 有可能成為一個(gè)全新的跨全平臺(tái)的通用操作系統(tǒng)岂嗓。

在現(xiàn)階段汁展,開始嘗試探索和積累沉淀 Flutter 技術(shù)能力,并在業(yè)務(wù)上使用 Flutter 技術(shù)的應(yīng)用厌殉,從戰(zhàn)略上來將已經(jīng)處于領(lǐng)先食绿。選擇 Flutter,正可謂是“進(jìn)可攻退可守”公罕,往前進(jìn)一步器紧,F(xiàn)lutter 應(yīng)用未來可無縫遷移到 Fuchsia 系統(tǒng),借用 Fuchsia 系統(tǒng)的能量擴(kuò)展到更廣泛的用戶場(chǎng)景楼眷;退一步铲汪,F(xiàn)lutter 技術(shù)自身在 Android/iOS 平臺(tái)的表現(xiàn)相比其他跨平臺(tái)技術(shù)已經(jīng)是很優(yōu)秀。

最初選擇 Flutter罐柳,不是因?yàn)樗欢〞?huì)成為未來終極之選掌腰,而是它有可能成為不一樣的未來。

Flutter 展望:終將走向多端一體化

回顧整移動(dòng)操作系統(tǒng)的演變歷程张吉,從塞班功能機(jī)到 Android/iOS 智能機(jī)齿梁,從小屏手機(jī)到全面屏、劉海屏芦拿、水滴屏士飒。任何系統(tǒng)的演變最終體現(xiàn)在輸入和輸出兩個(gè)環(huán)節(jié)查邢,接收到輸入信號(hào)后經(jīng)過操作系統(tǒng)處理后輸出信息給用戶。從按鍵式交互到觸屏式交互酵幕,伴隨著塞班系統(tǒng)到 Android 系統(tǒng)的轉(zhuǎn)變扰藕,未來的交互方式一定會(huì)更加生物智能化,當(dāng)下的觸屏交互可以理解成人類的觸覺輸入方式芳撒,未來將朝著人們更常見的聽覺(語音)輸入和視覺(身體姿勢(shì)邓深、表情等)輸入,甚至嗅覺(氣味變化)輸入笔刹,這些都會(huì)伴隨著新的操作系統(tǒng)而誕生芥备。屏幕從小尺寸到大尺寸,并沒有引發(fā)操作系統(tǒng)變革舌菜,因?yàn)榧夹g(shù)創(chuàng)新是非連續(xù)性萌壳,非連續(xù)性才會(huì)引發(fā)第二曲線,誕生新技術(shù)日月。從 1960 年大型機(jī)袱瓮,到 1990 年個(gè)人筆記本,再到現(xiàn)在的智能手機(jī)爱咬,設(shè)備本身越來越小尺借。未來的設(shè)備如果發(fā)展非連續(xù)變革,可能不再需要實(shí)體硬件精拟,隨處可輸出燎斩,一張白紙、一面墻蜂绎,到那時(shí)操作系統(tǒng)的 UI 架構(gòu)必然會(huì)有全新的變化栅表。

隨著科技的發(fā)展,5G 時(shí)代的到來荡碾,人工智能的日趨成熟谨读,端到底會(huì)有哪些變化局装?是否會(huì)出現(xiàn)新的操作系統(tǒng)坛吁?系統(tǒng)的 UI 架構(gòu)是否會(huì)出現(xiàn)新的變革?Android/iOS 平臺(tái)是否能與之并存铐尚?搭載 Flutter UI 框架的 Fuchsia 系統(tǒng)能否在 IOT 領(lǐng)域以及新的交互方式大放異彩拨脉,再領(lǐng)風(fēng)騷?是否有萬物互聯(lián)互通的超級(jí)平臺(tái)出現(xiàn)宣增?

技術(shù)在不斷演變中螺旋前進(jìn)玫膀,平臺(tái)自身也隨之演進(jìn),未來 Flutter 會(huì)朝著多端一體化的方向發(fā)展爹脾,能支持更多的端(包括平板帖旨、筆記本箕昭、智能設(shè)備等)。作為一套跨平臺(tái)的 UI 框架解阅,F(xiàn)lutter 采用自渲染的技術(shù)方案落竹,是一個(gè)上限很高的跨平臺(tái)技術(shù),但 Flutter 更重要的是需要提升工程化能力以及生態(tài)圈的建設(shè)货抄,才能吸引更多的開發(fā)者加入述召。

采訪嘉賓介紹:

袁輝輝,就職于字節(jié)跳動(dòng)蟹地,在移動(dòng)平臺(tái)部擔(dān)任 Flutter 架構(gòu)師积暖,主要負(fù)責(zé) Flutter 性能架構(gòu)。曾在小米怪与、聯(lián)想夺刑、IBM 任職,從事 Android 系統(tǒng)框架底層優(yōu)化與開發(fā)工作分别。他是知名博客 Gityuan 的博主性誉,對(duì) Android/Flutter 有著深刻的理解,編寫了近 200 篇高質(zhì)量相關(guān)原創(chuàng)技術(shù)文章茎杂。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末错览,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子煌往,更是在濱河造成了極大的恐慌倾哺,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刽脖,死亡現(xiàn)場(chǎng)離奇詭異羞海,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)曲管,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門却邓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人院水,你說我怎么就攤上這事腊徙。” “怎么了檬某?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵撬腾,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我恢恼,道長(zhǎng)民傻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮漓踢,結(jié)果婚禮上牵署,老公的妹妹穿的比我還像新娘。我一直安慰自己喧半,他們只是感情好碟刺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著薯酝,像睡著了一般半沽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吴菠,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天者填,我揣著相機(jī)與錄音,去河邊找鬼做葵。 笑死占哟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酿矢。 我是一名探鬼主播榨乎,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼瘫筐!你這毒婦竟也來了蜜暑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤策肝,失蹤者是張志新(化名)和其女友劉穎肛捍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體之众,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拙毫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棺禾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缀蹄。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖膘婶,靈堂內(nèi)的尸體忽然破棺而出缺前,到底是詐尸還是另有隱情,我是刑警寧澤竣付,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布诡延,位于F島的核電站滞欠,受9級(jí)特大地震影響古胆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一逸绎、第九天 我趴在偏房一處隱蔽的房頂上張望惹恃。 院中可真熱鬧,春花似錦棺牧、人聲如沸巫糙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽参淹。三九已至,卻和暖如春乏悄,著一層夾襖步出監(jiān)牢的瞬間浙值,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工檩小, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留开呐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓规求,卻偏偏與公主長(zhǎng)得像筐付,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子阻肿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容