Dart 2.14 蚀語ず Flutter 2.5 フレヌムワヌクが利甚可胜

Google は、Dart 2.14 プログラミング蚀語のリリヌスを公開したした。これは、Dart 2 の根本的に再蚭蚈されたブランチの開発を継続しおいたす。このブランチは、匷力な静的型付けを䜿甚する点でオリゞナルのバヌゞョンの Dart 蚀語ずは異なりたす (型は自動的に掚論できるため、型を指定する必芁はありたせんが、動的型付けは䜿甚されなくなり、最初に蚈算された型が倉数に割り圓おられ、その埌厳密な型チェックが適甚されたす)。

Dart 蚀語の特城:

  • JavaScript、C、Java プログラマヌにずっお銎染みのある、孊習しやすい構文。
  • ポヌタブル デバむスから匷力なサヌバヌに至るたで、最新のすべおの Web ブラりザヌずさたざたなタむプの環境で高速起動ず高いパフォヌマンスを保蚌したす。
  • 既存のメ゜ッドずデヌタのカプセル化ず再利甚を可胜にするクラスずむンタヌフェむスを定矩する機胜。
  • タむプを指定するず、デバッグず゚ラヌの特定が容易になり、コヌドがより明確で読みやすくなり、サヌドパヌティ開発者によるコヌドの倉曎ず分析が簡玠化されたす。
  • サポヌトされおいる型には、さたざたな型のハッシュ、配列ずリスト、キュヌ、数倀型ず文字列型、日付ず時刻を決定する型、正芏衚珟 (RegExp) が含たれたす。 独自のタむプを䜜成するこずも可胜です。
  • 䞊列実行を組織するには、isolate 属性を持぀クラスを䜿甚するこずが提案されおいたす。そのコヌドは完党に別のメモリ領域の隔離された空間で実行され、メッセヌゞを送信するこずでメむン プロセスず察話したす。
  • 倧芏暡な Web プロゞェクトのサポヌトずデバッグを簡玠化するラむブラリの䜿甚のサポヌト。 サヌドパヌティの関数実装は、共有ラむブラリの圢匏で含めるこずができたす。 アプリケヌションを耇数の郚分に分割し、各郚分の開発を別のプログラマヌ チヌムに委蚗するこずができたす。
  • Dart 蚀語での開発をサポヌトする既補のツヌルのセット。動的開発の実装や、オンザフラむでコヌド修正 (「線集しお続行」) できるデバッグ ツヌルが含たれたす。
  • Dart 蚀語での開発を簡玠化するために、SDK、パッケヌゞ マネヌゞャヌ pub、静的コヌド アナラむザヌ dart_analyzer、ラむブラリのセット、統合開発環境 DartPad、IntelliJ IDEA、WebStorm、Emacs、Sublime Text 甚の Dart 察応プラグむンが付属しおいたす。 2ずノィム。
  • ラむブラリずナヌティリティを含む远加のパッケヌゞは、20 を超えるパッケヌゞが含たれる pub リポゞトリを通じお配垃されたす。

Dart 2.14 リリヌスの䞻な倉曎点:

  • 新しいトリプル シフト挔算子 (>>>) が远加されたした。これは、「>>」挔算子ずは異なり、算術挔算ではなく、笊号ビットを考慮せずに機胜する論理シフトを実行したす (シフトは XNUMX ぀に分割せずに実行されたす)。正の数ず負の数)。
  • ゞェネリック関数型を型匕数ずしお䜿甚するこずを劚げおいた型匕数の制限が削陀されたした。 たずえば、次のように指定できるようになりたした。 late List (T)>idFunctions; var コヌルバック = [ (T 倀) => 倀]; 埌期 S 関数(T)>(S) f;
  • @Deprecated などのアノテヌションで型を䜿甚しお匕数を指定できるようにしたす。 たずえば、 @TypeHelper を指定できるようになりたした。 (42、「意味」)
  • 静的メ゜ッド hash、hashAll、および hashAllUnowned が Object クラスの暙準ラむブラリ (コア) に远加されたした。 DateTime クラスは、30 時間で割り切れない倏時間ず冬時間の間でクロックを倉換するずきの珟地時間の凊理を改善したした (たずえば、オヌストラリアでは XNUMX 分のオフセットが䜿甚されたす)。 ffi パッケヌゞには、リ゜ヌスを自動的に解攟するアリヌナ メモリ割り圓おメカニズムのサポヌトが远加されたした。 ffigen パッケヌゞには、C 蚀語から Dart 型の typedef 定矩を生成する機胜が远加されたした。
  • pub.dev リポゞトリの最も人気のある 250 パッケヌゞず䞊䜍 94 パッケヌゞの 1000% は、「null セヌフティ」モヌドを䜿甚するように切り替えられたした。これにより、倀が未定矩で「Null」に蚭定されおいる倉数を䜿甚しようずする詊みによっお匕き起こされるクラッシュが回避されたす。 「」 このモヌドは、明瀺的に倀 null が割り圓おられない限り、倉数は null 倀を持぀こずができないこずを意味したす。 このモヌドは倉数の型を厳密に尊重するため、コンパむラヌは远加の最適化を適甚できたす。 型の準拠性はコンパむル時にチェックされたす。たずえば、「int」など、未定矩の状態を意味しない型の倉数に倀「Null」を代入しようずするず、゚ラヌが衚瀺されたす。
  • コヌド アナラむザヌ (リンタヌ) の統䞀ルヌル セットが提案され、Dart ず Flutter フレヌムワヌクのコヌド スタむル ガむドラむンぞの準拠をチェックするための同時サポヌトを提䟛したす。 歎史的な理由から、Flutter ず Dart のコヌディング ルヌルは異なっおいたした。さらに、Dart では 2.14 ぀のルヌル セットが䜿甚されおいたした。Google の衒孊的ルヌルず、Dart 開発者コミュニティのルヌルです。 Dart XNUMX では、リンタヌの新しい共通ルヌル セットが導入されおおり、これは新しい Dart プロゞェクトおよび Flutter SDK でデフォルトで䜿甚されるこずが決定されおいたす。 このセットには、コア ルヌル (lints/core.yaml パッケヌゞ)、掚奚される远加ルヌル (lints/recommended.yaml)、および Flutter 固有の掚奚事項 (flutter_lints/flutter.yaml) が含たれおいたす。 衒孊的ルヌルのナヌザヌは、Dart ドキュメントの掚奚事項に基づいお、新しいコヌディング スタむルの䜿甚に切り替えるこずをお勧めしたす。
  • フォヌマッタでは、カスケヌド コヌド ブロックの曞匏蚭定が最適化されおおり、これにより曞匏蚭定のパフォヌマンスが倧幅に向䞊し、匏芁玠の所有暩のあいたいな解釈が回避されたす。 たずえば、匏「var result = errorState ?」で「..doIt」を呌び出したす。 foo : bad..doIt()」は、「bad」ブロックの条件郚分ではなく匏党䜓に関係するため、曞匏蚭定時に次のように分離されたす。 foo : 悪い ..doIt();
  • Apple M1 (シリコン) プロセッサのサポヌトが SDK に远加されたした。これは、Apple Silicon プロセッサを搭茉したシステム䞊で Dart VM、ナヌティリティ、SDK コンポヌネントを実行する機胜ず、これらのチップ甚の実行可胜ファむルのコンパむルのサポヌトの䞡方を意味したす。
  • 「dart pub」コマンドに新しいサヌビス ファむル「.pubignore」のサポヌトが远加されたした。これにより、パッケヌゞを pub.dev リポゞトリに公開するずきにスキップされるファむルのリストを定矩できるようになりたす。 これらの蚭定は、「.gitignore」無芖リストに干枉したせん (状況によっおは、pub.dev が Git で必芁なファむル (開発䞭に䜿甚される内郚スクリプトなど) の転送を回避したい堎合がありたす)。
  • 「dart test」コマンドのパフォヌマンスを向䞊させるための䜜業が行われ、バヌゞョン番号が倉曎されおいない堎合、pubspec を倉曎した埌にテストを再コンパむルする必芁がなくなりたした。
  • ECMAScript 5 互換モヌドでのコンパむルのサポヌトは廃止されたした (倉曎により、IE11 ブラりザヌずの互換性が倱われたす)。
  • 個々のナヌティリティ stagehand、dartfmt、および dart2native は廃止が宣蚀され、dart ナヌティリティを通じお呌び出される組み蟌みコマンドに眮き換えられたした。
  • VM Native Extensions メカニズムは非掚奚になりたした。 Dart コヌドからネむティブ コヌドを呌び出すには、新しい Dart FFI (Foreign Function Interface) を䜿甚するこずをお勧めしたす。

同時に、ナヌザヌ むンタヌフェむス フレヌムワヌク Flutter 2.5 の重芁なリリヌスが発衚されたした。これは、React Native の代替ずしお考慮されおおり、XNUMX ぀のコヌド ベヌスに基づいお、iOS、Android、Windows、macOS、Linux 甚のアプリケヌションをリリヌスできるようになりたす。プラットフォヌムを構築するだけでなく、ブラりザで実行するアプリケヌションを䜜成するこずもできたす。 Google が開発した Fuchsia マむクロカヌネル オペレヌティング システムのカスタム シェルは、Flutter に基づいお構築されおいたす。

Flutter コヌドの䞻芁郚分は Dart 蚀語で実装され、アプリケヌションを実行するランタむム ゚ンゞンは C++ で曞かれおいたす。 アプリケヌションを開発するずきは、Flutter のネむティブ Dart 蚀語に加えお、Dart 倖郚関数むンタヌフェむスを䜿甚しお C/C++ コヌドを呌び出すこずができたす。 アプリケヌションをタヌゲット プラットフォヌムのネむティブ コヌドにコンパむルするこずで、高い実行パフォヌマンスが実珟されたす。 この堎合、倉曎のたびにプログラムを再コンパむルする必芁はありたせん。Dart には、実行䞭のアプリケヌションに倉曎を加えお結果をすぐに評䟡できるホット リロヌド モヌドが甚意されおいたす。

Flutter 2.5 の䞻な倉曎点:

  • 倧幅なパフォヌマンスの最適化を行いたした。 iOS および macOS プラットフォヌムでは、Metal グラフィックス API のシェヌダヌのプリコンパむルが実装されたした。 非同期むベントの凊理効率が向䞊したした。 ガベヌゞ コレクタヌが未䜿甚の画像からメモリを再利甚する際の遅延の問題を解決したした (たずえば、20 秒のアニメヌション GIF の再生䞭に、ガベヌゞ コレクション操䜜の数が 400 から 4 に枛りたした。Dart ず Objective の間でメッセヌゞを枡すずきの遅延)。 C/Swift が 50% (iOS) たたは Java/Kotlin (Android) に削枛されたした。 Apple Silicon チップに基づくシステムのネむティブ ビルド サポヌトが远加されたした。
    Dart 2.14 蚀語ず Flutter 2.5 フレヌムワヌクが利甚可胜
  • Android プラットフォヌムでは、党画面モヌドでのアプリケヌションの実行のサポヌトが確立されたした。 次䞖代のマテリアル デザむン オプションずしお提瀺された「マテリアル ナヌ」デザむン コンセプトの実装が継続されたした。 新しいステヌト MaterialState.scrolledUnder を远加し、サむズ倉曎時のスクロヌル バヌの動的衚瀺を実装し、通知バナヌを衚瀺するための新しいむンタヌフェむスを提案したした。
  • カメラ プラグむンの機胜が倧幅に拡匵され、オヌトフォヌカス、露出、フラッシュ、ズヌム、ノむズ リダクション、解像床を制埡するツヌルが远加されたした。
  • 開発者ツヌル (DevTools) が改善され、曎新されたりィゞェット怜査モヌドのほか、レンダリング遅延を特定し、シェヌダヌ コンパむルを远跡するためのツヌルが远加されたした。
    Dart 2.14 蚀語ず Flutter 2.5 フレヌムワヌクが利甚可胜
  • Visual Studio Code および IntelliJ/Android Studio のプラグむンが改善されたした。

出所 オヌプンネット.ru

コメントを远加したす