Dart 官方 <em>Docker</em> 镜像发布以及 Cloud 支持 Dart 现在在官方镜像中可用,虽然 Dart 早已提供了 <em>Docker</em> 镜像,但为了遵循最佳实践,这些新的 Dart 镜像是由 <em>Docker</em> 进行测试和验证的。它们还
2021-05-21 17:02:34
在本次Google I/O 2021 大會上,Google正式釋出了Dart 2.13 版,這個版本中新增了使用者呼聲第二高的語言功能【類型別名功能】,還改進了 Dart FFI 以及更好的效能,並且還為 Dart 提供了新的官方映象。下面一起來看看2.13版本的新特性。
空安全更新
在今年 3 月份釋出的 Dart 2.12 中,Google推出了健全的空安全功能。空安全可謂是 Dart 最近推出的一項重要功能,旨在幫助開發者避免空值錯誤 (這類錯誤經常難以發現),有效提升工作效率。在Google釋出後的短短几個月內,空安全就已被開發者廣泛採用,目前 pub.dev 上前 500 個最受歡迎的 package 中,93% 的 package 已經支援空安全。
Google為開發提供了空安全遷移指南,希望釋出 package 的開發者能夠及時跟進這項釋出,更新 pub.dev 上分享的 package 以支援空安全。
健全的空安全https://dart.cn/null-safety
空安全遷移指南https://dart.cn/null-safety/migration-guide#step1-wait推出類型別名功能
類型別名是 2.13 版中新增的語言功能,也是廣大開發者翹首以盼的功能,曾在語言問題的反饋中高居第二位。有了這一功能,開發者就能夠創建函數類型的別名,但不能創建其他任何類型。
類型別名功能從 Dart 2.13 版開始即可使用,要啟用此功能,需要將您 pubspec 中版本較低的 Dart SDK 約束設定為最低 2.13 版。
Dart 2.13 FFI 的變化
Google在 Dart FFI (這是用來呼叫 C 語言程式碼的互操作機制) 中引入了一些新功能。
首先,FFI 現在支援包含內聯陣列 (#35763) 的結構,只需將包含一個類型實參的元素類型指定給 Array,即可直接將該結構體封裝在 Dart 中。
其次,FFI 現在支援封裝結構體 (#38158)。結構體通常都被放置在記憶體中,以便其位於地址邊界內的成員能夠被 CPU 更輕鬆地存取。使用封裝結構體時,為了減少整體記憶體佔用量,經常會以平臺特有的方式忽略一些填充位元組。藉助新的 @Packed(<alignment>) 註解,開發者可以輕鬆指定填充位元組。
Dart 2.13 在效能方面的提升
Dart 2.13 在記憶體消耗上取得了很大的進步,在使用--split-debug-info時,程式元資料佔用的空間量降幅顯著。例如,Flutter Gallery 的空間佔用降幅達到 30%: 在--split-debug-info模式下,程式元資料在 Dart 2.12 中要佔用 5.7Mb,而在 Dart 2.13 中僅需 3.7Mb。
以 Flutter Gallery 應用為例,在 Android 平臺上,包含偵錯資訊的釋出 APK 大小為 112.4MB,不包含的情況下大小為 106.7MB (總體積減少了 5%)。該 APK 中包含了大量的資源。僅從 APK 內部的元資料體積來說,從 Dart 2.12 平臺上的 5.7MB 減少至 Dart 2.13 平臺上的 3.7MB (減少了35%!)。
Dart 官方 Docker 映象釋出以及 Cloud 支援
Dart 現在在官方映象中可用,雖然 Dart 早已提供了 Docker 映象,但為了遵循最佳實踐,這些新的 Dart 映象是由 Docker 進行測試和驗證的。它們還支援 AOT 編譯,可以大大減少構建容器的大小,並且可以在容器環境中提升部署速度——如Cloud Run。
雖然 Dart 始終專注於使 Flutter 等應用框架在每個螢幕上構建出色的介面,大多數使用者體驗的背後至少有一個託管服務。通過讓 Dart 輕鬆構建後端服務來支援全棧體驗,開發者可以使用與前端 widget 相同的語言和業務邏輯,將他們的應用擴展到雲端。
通常來說,將 Dart 用於 Flutter 應用程式的後端,特別符合 Google 無伺服器管理平臺 Cloud Run 的簡單性和可擴展性。這也包括零擴展,意味著當您的後端不處理任何請求時,就不會產生成本。與 Google Cloud 團隊合作,提供Dart 的函數框架,這是一個 packages、工具和例項的集合,使開發者們能夠輕鬆地編寫 Dart 函數,以取代處理 HTTP 請求和 CloudEvents 的完整伺服器部署。
最後
Dart 2.13 版現已在Dart 2.13和Flutter 2.2 SDK 中推出,此版本新增了類型別名功能,還改進了 FFI。如果您一直在等待將自己的依賴項遷移到空安全環境的時機,不妨使用dart pub outdated再次檢查一下。目前,前 500 個最受歡迎的 package 中,93% 的 package 都已遷移,現在沒準就是您遷移的好時機。在此,謹向那些已經遷移的開發者致以最衷心的感謝!
相關文章
Dart 官方 <em>Docker</em> 镜像发布以及 Cloud 支持 Dart 现在在官方镜像中可用,虽然 Dart 早已提供了 <em>Docker</em> 镜像,但为了遵循最佳实践,这些新的 Dart 镜像是由 <em>Docker</em> 进行测试和验证的。它们还
2021-05-21 17:02:34
过完了520,估计很多暂时还没对象的小伙伴们昨天吃狗粮吃到饱了吧?咱们也不用羡慕人家成双成对的。没有对象的日子里,至少你还有自有。开个玩笑,别介意。咱们言归正传来说说<em>Java</em>异常是怎样处理的。在<em>Java</em
2021-05-21 17:02:04
预计第二季度过后<em>苹果手机</em>在国内的市场份额将会超过13%,多涨几个百分点。为什么这样说?原因,其一,第一季度<em>iPhone</em>12系列的手机没有大幅度的降价。其二,最近<em>苹果手机iPhone</em>12正在大幅度降价,并且
2021-05-21 17:01:50
什么品牌的手机电池容量最差,大家第一时间想到的应该是<em>苹果手机</em>吧!但尽管<em>iPhone</em>有这一面的缺点,在国内还是吸粉无数呢!<em>iPhone</em>电池小的原因 <em>iPhone</em>的设计风格,主打轻巧薄。机型太小,这
2021-05-21 17:01:37
此外,曹县用户也非常青睐转转集团旗下转转和找靓机两大平台严选靓机卖场售卖的手机3C商品。转转集团数据显示,今年一季度曹县用户通过转转集团买走的二手手机Top10机型全部都是苹果<em>iPhone</em>,其中<em>iPhone</em>X
2021-05-21 17:01:29
不知不觉,我们已经介绍了关于<em>Excel</em>打印相关应用的四个知识点:打印预览、页面布局、分页预览和打印标题。本期的主题也将暂时结束我们对<em>Excel</em>打印的系列介绍——页眉页脚的设置。如下图所示,当我们使用
2021-05-21 17:00:04