<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          它來了!Flutter3.0新特性全接觸

          共 6646字,需瀏覽 14分鐘

           ·

          2022-05-16 11:16

          點(diǎn)擊上方藍(lán)字關(guān)注我,知識(shí)會(huì)給你力量


          又到了Flutter穩(wěn)定版發(fā)布的時(shí)候了--我們非常自豪地宣布Flutter 3! 僅僅三個(gè)月前,我們宣布Flutter支持Windows。今天,我們很高興地宣布,除了Windows之外,F(xiàn)lutter現(xiàn)在在macOS和Linux上也是穩(wěn)定的!

          img

          感謝我們的Flutter貢獻(xiàn)者的辛勤工作,我們已經(jīng)合并了5248個(gè)pull requests!

          作為這個(gè)版本的一部分,我們有幾件令人興奮的事情要宣布,包括Flutter對(duì)macOS和Linux的支持的更新,顯著的性能改進(jìn),移動(dòng)和網(wǎng)絡(luò)的更新--以及更多。此外,我們還有關(guān)于減少對(duì)舊版Windows的支持的消息,以及一個(gè)簡短的breaking變化清單。所以,讓我們開始談?wù)掳?

          Ready for production on all desktop platforms

          Linux和macOS已經(jīng)達(dá)到穩(wěn)定,包括以下功能。

          Cascading menus and support for the macOS system menu bar

          你現(xiàn)在可以使用PlatformMenuBar部件在macOS上創(chuàng)建平臺(tái)渲染的菜單欄,該部件支持插入平臺(tái)專用的菜單,并控制macOS應(yīng)用程序菜單中出現(xiàn)的內(nèi)容。

          gif太大,再見。

          Full support for international text input on all desktop platforms

          國際文本輸入,包括使用文本輸入法編輯器(IME)的語言,如中文、日文和韓文,在所有三個(gè)桌面平臺(tái)上都得到完全支持,包括第三方輸入法,如搜狗和谷歌日文輸入。

          Accessibility on all desktop platforms

          用于Windows、macOS和Linux的Flutter支持無障礙服務(wù),如讀屏器、無障礙導(dǎo)航和顏色反轉(zhuǎn)。

          Universal binaries by default on macOS

          從Flutter 3開始,F(xiàn)lutter macOS桌面應(yīng)用程序被構(gòu)建為通用二進(jìn)制文件,對(duì)現(xiàn)有基于英特爾的Mac和蘋果最新的Apple Silicon設(shè)備都有原生支持。

          Deprecating Windows 7/8 for development

          在這個(gè)版本中,我們將開發(fā)的推薦Windows版本提高到Windows 10。雖然我們沒有阻止在舊版本(Windows 7、Windows 8、Windows 8.1)上的開發(fā),但這些版本不再受到微軟的支持,我們?cè)谶@些版本上提供有限的測(cè)試。雖然我們將繼續(xù)為舊版本提供 "最大努力 "的支持,但我們鼓勵(lì)你升級(jí)。

          ?

          注意:我們繼續(xù)為在Windows 7和Windows 8上運(yùn)行的Flutter應(yīng)用程序提供支持;這一變化只影響到推薦的開發(fā)環(huán)境。

          ?

          Mobile updates

          我們對(duì)移動(dòng)平臺(tái)的更新包括以下內(nèi)容。

          Foldable phone support

          Flutter 3版本支持可折疊移動(dòng)設(shè)備。在微軟帶頭的合作中,新的功能和部件允許你在可折疊設(shè)備上創(chuàng)建動(dòng)態(tài)和令人愉快的體驗(yàn)。

          作為這項(xiàng)工作的一部分,MediaQuery現(xiàn)在包含一個(gè)DisplayFeatures列表,描述了設(shè)備元素的邊界和狀態(tài),如鉸鏈、折疊和切口。此外,DisplayFeatureSubScreen小組件現(xiàn)在在定位其子小組件時(shí)不會(huì)與DisplayFeatures的邊界重疊,并且已經(jīng)與框架的默認(rèn)對(duì)話框和彈出式窗口集成,使Flutter能夠感知并響應(yīng)這些元素的改變。

          img

          非常感謝微軟團(tuán)隊(duì),特別是@andreidiaconu,感謝他們的貢獻(xiàn)!

          試試Surface Duo模擬器的Sample:https://docs.microsoft.com/en-us/dual-screen/flutter/samples,包括一個(gè)帶有Flutter圖庫的特殊分支的sample,看看Flutter的雙顯示器的運(yùn)行情況。

          iOS variable refresh rate support

          Flutter現(xiàn)在支持帶有ProMotion顯示器的iOS設(shè)備上的可變刷新率,包括iPhone 13 Pro和iPad Pro。在這些設(shè)備上,F(xiàn)lutter應(yīng)用程序可以在刷新率達(dá)到120 hz的情況下進(jìn)行渲染,而以前則限制在60 hz。這使得在滾動(dòng)等快速動(dòng)畫中的體驗(yàn)更加順暢。更多細(xì)節(jié)見flutter.dev/go/variable-refresh-rate。

          Simplified iOS releases

          我們?cè)趂lutter build ipa命令中添加了新的選項(xiàng),以簡化發(fā)布您的iOS應(yīng)用。當(dāng)您準(zhǔn)備發(fā)布到TestFlight或App Store時(shí),運(yùn)行flutter build ipa來構(gòu)建一個(gè)Xcode歸檔文件(.xcarchive文件)和一個(gè)應(yīng)用包(.ipa文件)。你可以選擇添加 --export-method ad-hoc, --export-method development, 或 --export-method enterprise。一旦應(yīng)用程序捆綁完成,通過Apple Transport macOS應(yīng)用程序或在命令行中使用xcrun altool(運(yùn)行man altool獲取App Store Connect API密鑰驗(yàn)證說明)將其上傳到蘋果。上傳后,您的應(yīng)用程序可以發(fā)布到TestFlight或App Store。在設(shè)置了最初的Xcode項(xiàng)目設(shè)置,如顯示名稱和應(yīng)用程序圖標(biāo)后,您不再需要打開Xcode來發(fā)布您的應(yīng)用程序。

          Gradle version update

          如果你用Flutter工具創(chuàng)建一個(gè)新的項(xiàng)目,你可能會(huì)注意到,現(xiàn)在生成的文件使用最新版本的Gradle和Android Gradle插件。對(duì)于現(xiàn)有項(xiàng)目,你需要手動(dòng)將Gradle的版本提升到7.4,將Android Gradle插件的版本提升到7.1.2。

          Sunsetting 32-bit iOS/iOS 9/iOS 10

          正如我們?cè)?022年2月宣布的2.10穩(wěn)定版,F(xiàn)lutter對(duì)32位iOS設(shè)備和iOS 9和10版本的支持即將結(jié)束。這一變化影響到iPhone 4S、iPhone 5、iPhone 5C以及第二代、第三代和第四代iPad設(shè)備。Flutter 3是支持這些iOS版本和設(shè)備的最后一個(gè)穩(wěn)定版本。

          要了解有關(guān)這一變化的更多信息,請(qǐng)看RFC:結(jié)束對(duì)32位iOS設(shè)備的支持。

          Web updates

          我們對(duì)網(wǎng)絡(luò)應(yīng)用的更新包括以下內(nèi)容。

          Image decoding

          Flutter web現(xiàn)在能自動(dòng)檢測(cè)并在支持它的瀏覽器中使用ImageDecoder API。截至今天,大多數(shù)基于Chromium的瀏覽器(Chrome、Edge、Opera、Samsung Browser等)都增加了這個(gè)API。

          新的API使用瀏覽器內(nèi)置的圖像編解碼器在主線程外異步地解碼圖像。這使圖像解碼的速度提高了2倍,而且它從不阻塞主線程,消除了以前由圖像引起的所有干擾。

          Web app lifecycles

          Flutter網(wǎng)絡(luò)應(yīng)用程序的新生命周期API使您能夠靈活地從托管HTML頁面控制Flutter應(yīng)用的啟動(dòng)過程,并幫助Lighthouse分析您的應(yīng)用的性能。這適用于許多用例,包括以下經(jīng)常要求的場景。

          • A splash screen
          • A loading indicator
          • 在Flutter應(yīng)用程序之前顯示的普通HTML交互頁面

          欲了解更多信息,請(qǐng)查看docs.flutter.dev上的自定義Web應(yīng)用初始化:https://docs.flutter.dev/development/platform-integration/web/initialization。

          Tooling updates

          我們對(duì)Flutter和Dart工具的更新包括。

          Updated lint package

          2.0版的lint軟件包已經(jīng)發(fā)布。

          • Flutter: https://pub.dev/packages/flutter_lints/versions/2.0.0
          • Dart: https://pub.dev/packages/lints/versions/2.0.0

          在Flutter 3中用flutter create生成的應(yīng)用程序會(huì)自動(dòng)啟用v2.0版的lints包。我們鼓勵(lì)現(xiàn)有的應(yīng)用程序、軟件包和插件通過運(yùn)行 flutter pub upgrade --major-versions flutter_lints 遷移到 v2.0,以遵循 Flutter 世界中最新和最偉大的最佳實(shí)踐。

          在v2版中,大多數(shù)新增加的lint警告都有自動(dòng)修復(fù)功能。因此,在你的應(yīng)用程序的pubspec.yaml文件中升級(jí)到最新的軟件包版本后,你可以在你的代碼庫中運(yùn)行dart fix --apply來自動(dòng)修復(fù)大多數(shù)lint警告(有些警告仍然需要一些手工操作)。還沒有使用package:flutter_lints的應(yīng)用程序、軟件包或插件可以按照遷移指南進(jìn)行遷移。

          Performance improvements

          感謝開源貢獻(xiàn)者knopp,partial repaint已經(jīng)在支持它的Android設(shè)備上啟用。在我們的本地測(cè)試中,這一變化將Pixel 4 XL設(shè)備上backdrop_filter_perf基準(zhǔn)的平均、第90個(gè)百分點(diǎn)和第99個(gè)百分點(diǎn)的幀柵格化時(shí)間縮短了5倍。在iOS和較新的安卓設(shè)備上,當(dāng)存在單一rectangular dirty區(qū)域時(shí),現(xiàn)在啟用了partial repaint。

          我們進(jìn)一步提高了簡單情況下Opacity動(dòng)畫的性能。特別是,當(dāng)一個(gè)Opacity小組件只包含一個(gè)渲染基元時(shí),通常由Opacity調(diào)用的saveLayer方法被省略。在為衡量這種優(yōu)化的好處而構(gòu)建的基準(zhǔn)中,這種情況下的光柵化時(shí)間提高了一個(gè)數(shù)量級(jí)。在未來的版本中,我們計(jì)劃將這種優(yōu)化應(yīng)用到更多的場景中。

          由于開源貢獻(xiàn)者JsouLiang的工作,引擎的光柵和UI線程現(xiàn)在在Android和iOS上的運(yùn)行優(yōu)先級(jí)高于其他線程;例如,Dart VM后臺(tái)垃圾收集線程。在我們的基準(zhǔn)測(cè)試中,這導(dǎo)致平均幀構(gòu)建時(shí)間快了約20%。

          在第3版發(fā)布之前,光柵緩存的接納策略只看圖片中的繪制操作數(shù),假設(shè)任何超過幾個(gè)操作數(shù)的圖片都是緩存的好候選。不幸的是,這導(dǎo)致了引擎花費(fèi)內(nèi)存來緩存那些實(shí)際上渲染速度非??斓膱D片。這個(gè)版本引入了一種機(jī)制,根據(jù)它所包含的繪制操作的成本來估計(jì)圖片的渲染復(fù)雜性。在我們的基準(zhǔn)測(cè)試中,使用這種方法作為光柵緩存的接納策略,在不降低性能的情況下減少了內(nèi)存的使用。

          感謝開源貢獻(xiàn)者ColdPaleLight,他修復(fù)了幀調(diào)度中的一個(gè)bug,該bug導(dǎo)致iOS上少量的動(dòng)畫幀被丟棄。感謝所有報(bào)告這個(gè)問題并提供掉幀視頻的人。

          Impeller

          該團(tuán)隊(duì)一直在努力工作,以解決iOS和其他平臺(tái)上的早期jank問題。在Flutter 3版本中,你可以在iOS上預(yù)覽一個(gè)名為Impeller的實(shí)驗(yàn)性渲染后端。Impeller在引擎構(gòu)建時(shí)預(yù)編譯一套更小、更簡單的著色器,這樣它們就不會(huì)在應(yīng)用程序運(yùn)行時(shí)被編譯;這一直是Flutter中jank的一個(gè)主要來源。Impeller還沒有為生產(chǎn)做好準(zhǔn)備,也遠(yuǎn)未完成。并非所有的Flutter功能都已實(shí)現(xiàn),但我們對(duì)其在flutter/gallery應(yīng)用程序中的保真度和性能感到足夠滿意,因此我們正在分享我們的進(jìn)展。特別是,畫廊應(yīng)用的過渡動(dòng)畫中最差的一幀速度大約是20倍。

          Impeller在iOS的一個(gè)標(biāo)志下可用。你可以向flutter運(yùn)行傳遞--enable-impeller,或者將你的Info.plist文件中的FLTEnableImpeller標(biāo)志設(shè)置為true,來嘗試一下Impeller。Impeller的開發(fā)在Flutter的主頻道繼續(xù)進(jìn)行,我們希望在未來的版本中提供進(jìn)一步的更新。

          Inline ads on android

          當(dāng)你使用google_mobile_ads軟件包時(shí),你應(yīng)該看到在用戶的關(guān)鍵互動(dòng)方面有更好的表現(xiàn),如滾動(dòng)和頁面之間的轉(zhuǎn)換。這在新興市場流行的設(shè)備上尤其明顯。最重要的是,不需要修改代碼!

          在引擎蓋下,F(xiàn)lutter現(xiàn)在以異步方式組成Android視圖,通常稱為平臺(tái)視圖。這意味著Flutter光柵線程不需要等待Android視圖的渲染。相反,F(xiàn)lutter引擎使用其管理的OpenGL紋理將視圖放在屏幕上。

          More exciting updates

          Flutter生態(tài)系統(tǒng)的其他更新包括以下內(nèi)容。

          Material 3

          Flutter 3支持Material Design 3,即新一代的Material Design。Flutter 3提供了對(duì)Material 3的選擇支持;這包括Material You功能,如動(dòng)態(tài)顏色、更新的顏色系統(tǒng)和排版,對(duì)許多組件的更新,以及在Android 12中引入的新視覺效果,如新的觸摸波紋設(shè)計(jì)和拉伸過卷效果。在新的Take your Flutter app from Boring to Beautiful codelab中嘗試Material 3功能。有關(guān)如何選擇使用這些新功能以及哪些組件支持Material 3的詳細(xì)信息,請(qǐng)參見API文檔。關(guān)注正在進(jìn)行的Material 3 Umbrella問題的工作。

          Theme extensions

          Flutter現(xiàn)在可以向素材庫的ThemeData添加任何東西,有一個(gè)概念叫做Theme extensions。你可以指定ThemeData.extensions,而不是擴(kuò)展(Dart意義上的)ThemeData并重新實(shí)現(xiàn)其copyWith、lerp和其他方法。另外,作為一個(gè)包的開發(fā)者,你可以提供ThemeExtensions。更多細(xì)節(jié)請(qǐng)參見flutter.dev/go/theme-extensions,并查看GitHub上的這個(gè)例子。

          Ads

          我們知道,對(duì)于出版商來說,為個(gè)性化廣告征求同意和處理蘋果公司的應(yīng)用跟蹤透明度(ATT)要求是很重要的。

          為了支持這些要求,谷歌提供了用戶信息平臺(tái)(UMP)SDK,它取代了以前的開源同意SDK。在即將發(fā)布的GMA SDK for Flutter中,我們正在增加對(duì)UMP SDK的支持,以使發(fā)布者能夠獲得用戶同意。更多細(xì)節(jié),請(qǐng)查看pub.dev上的google_mobile_ads頁面。

          Breaking changes

          隨著我們不斷發(fā)展和改進(jìn)Flutter,我們的目標(biāo)是將破壞性變化的數(shù)量降到最低。隨著Flutter 3的發(fā)布,我們有以下突破性變化。

          • Deprecated API removed after v2.10
          • Page transitions replaced by ZoomPageTransitionsBuilder
          • Migrate useDeleteButtonTooltip to deleteButtonTooltipMessage of Chips
          • ThemeData’s toggleableActiveColor property has been deprecated

          具體的遷移過程,可以參考migration guide on Flutter.dev.

          Summary

          從谷歌的Flutter團(tuán)隊(duì)來說,我們要感謝社區(qū)所做的出色工作,幫助Flutter保持其作為最受歡迎的跨平臺(tái)UI工具包的地位,正如Statista和SlashData等分析機(jī)構(gòu)所衡量的那樣。我們期待著作為一個(gè)社區(qū)一起工作,繼續(xù)提供一個(gè)由社區(qū)驅(qū)動(dòng)的工具,幫助為開發(fā)者和用戶創(chuàng)造愉快的體驗(yàn)!

          向大家推薦下我的網(wǎng)站 https://xuyisheng.top/  點(diǎn)擊原文一鍵直達(dá)

          專注 Android-Kotlin-Flutter 歡迎大家訪問



          往期推薦


          本文原創(chuàng)公眾號(hào):群英傳,授權(quán)轉(zhuǎn)載請(qǐng)聯(lián)系微信(Tomcat_xu),授權(quán)后,請(qǐng)?jiān)谠瓌?chuàng)發(fā)表24小時(shí)后轉(zhuǎn)載。
          < END >
          作者:徐宜生

          更文不易,點(diǎn)個(gè)“三連”支持一下??


          瀏覽 68
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  丰满大乳露双乳呻吟 | 日韩在线视频网站 | 狠狠干美女 | 亚洲乱伦小说网站 | 特级毛片www |