Dart 2.0のお知らせ:クライアント開発向けに最適化

本日、 Dart 2を発表しました。これは、Webおよびモバイルプラットフォームでのクライアント開発向けに独自に最適化された言語としてのDartのビジョンをより完全に反映した言語のリロードです。



ダッシュ-公用語のマスコット

ダッシュ-公用語のマスコット



Dart 2では、型システムを大幅に強化および簡素化し、構文をクリアし、ほとんどのツールをゼロから書き直して、モバイルおよびWeb開発をより楽しく生産的にしました。 Dart 2では、 FlutterAdWords、 AdSenseなどの初期言語ユーザーから学んだ教訓と、顧客からのフィードバックに応じて行われた大小さまざまな改善も考慮されています。



Dartの基礎



Dart 2の技術革新について話す前に、Dartがクライアントコード開発者のすべてのニーズを満たしていると考える理由を理解することは価値があります。



現代の汎用言語に必要なプロパティに加えて、クライアント開発用の言語は次のようにする必要があります。





Dartは、Googleや他社のWeb、iOS、Androidでミッションクリティカルな高品質のアプリケーションを作成するために使用され、モバイルおよびWeb開発に最適です。





Dart 2:顧客サポートの改善



Dart 2では、クライアント側のコードを記述するための優れた言語にするためにいくつかのことを行いました。 特に、強力な型指定や、コードを介したユーザーインターフェイスの定義方法の改善など、いくつかの新機能を追加しました。



強い型付け



Dartを使用したAdWordsとAdSenseの背後にあるチームは、Googleの最大かつ最先端のWebベースの広告管理アプリケーションの1つを作成し、これらのサービスはGoogleの収益のかなりの部分を占めています。 これらのチームと緊密に協力して、Dartタイプシステムを強化することにしました。 これにより、Dartプログラマーは開発プロセス中にエラーを検出し、大規模なチームによって作成されたアプリケーションのスケーリングを改善し、コード全体の品質を向上させることができます。



もちろん、これは一意ではありません。 また、Webエコシステムでは、JavaScriptに型を追加する傾向があります。 たとえば、 TypeScriptFlowは、注釈と型推論を使用してJavaScriptを拡張し、コード分析機能を向上させます。



以下の小さな例では、Dart 2は暗黙的なエラーを検出し、その結果、コードの全体的な品質の向上に役立ちます。



void main() { List<int> prices = ['99', '27', '10000', '20000000']; //       prices.sort(); print('  : ${prices[0]}!'); }
      
      





このコードは何をしますか? 彼は「27」を印刷することを期待できます。 しかし、Dart 2タイプシステムがないと、彼は「10000」を印刷しました。これは、辞書順に並べられた文字列のリストの最初のアイテムだからです。 ただし、Dart 2では、このコードは入力エラーを生成します。



コードを介したユーザーインターフェイス



ユーザーインターフェイスを作成するとき、別のマークアップ言語とアプリケーションで使用するプログラミング言語を切り替える必要があることがしばしば面倒です。 コンテキスト切り替えの必要性を減らすことを目指しています。 Dart 2はオプションのnewconstを導入します。 この機能はそれ自体非常に価値があり、他の可能性も開きます。 たとえば、オプションのnewおよびconstのおかげで、ウィジェット定義をより簡潔でシンプルにすることができます。



 //  Dart 2 Widget build(BuildContext context) { return new Container( height: 56.0, padding: const EdgeInsets.symmetric(horizontal: 8.0), decoration: new BoxDecoration(color: Colors.blue[500]), child: new Row( ... ), ); } //  Dart 2 Widget build(BuildContext context) => Container( height: 56.0, padding: EdgeInsets.symmetric(horizontal: 8.0), decoration: BoxDecoration(color: Colors.blue[500]), child: Row( ... ), );
      
      





クライアント側ダーツを使用する



モバイルプラットフォーム



Dartの最も重要な用途の1つは、iOSおよびAndroid用のユーザーインターフェイスを作成するためのGoogleの新しいモバイルプラットフォームであるFlutterです。 大人気のHamilton:The Musicalショーの公式アプリは、Flutterが開発者が記録的な速さでアプリを構築する方法を示す例です。 Flutterはリアクティブプログラミングスタイルを使用し、ユーザーインターフェイスをピクセルごとに制御します。 Flutterにとって、Dartはトレーニングの容易さ、リアクティブプログラミング、高速開発、高速ガベージコレクターを備えた高性能実行システムの点で理想的です。



Web



Dartは、ミッションクリティカルなWebアプリケーションのプラットフォームとしての地位を確立しています。 dart:htmlなどのWebライブラリと、完全なDartベースのWeb環境があります 。 Dart for the Webを使用しているチームは、開発速度の向上に熱心でした。 Google AdWordsの開発担当副社長であるManish Gupta氏によると:

AdWordsのインターフェースは大きく複雑であり、Googleの収益にとって重要です。

Dartを選んだ理由は、 生産性と予測可能性の優れた組み合わせ、トレーニングの容易さ、タイプシステム、およびWebおよびモバイルデバイスでのサポートです

エンジニアの生産性は以前の2〜3倍になり 、Dartに切り替えたことをうれしく思います。

次は何ですか



FlutterとDartにより、開発者は最終的に、共通のコードベースを使用して、妥協することなくAndroid、iOS、およびWeb用の高品質なアプリケーションを作成する機会を得ました。 その結果、チームメンバーはプラットフォーム間をスムーズに移動し、コードのチェックなど、お互いに助け合うことができます。 AdWords ExpressAppTreeなどのコマンドは、モバイルデバイスとWebでコードの50%〜70%を再利用します。



Dartは、オープン ECMA標準をサポートするオープンソースプロジェクトです。 コアDartプロジェクトと成長しているDart パッケージのエコシステムの両方への貢献を歓迎します



Flutterの Dart 2とDart SDKをコマンドラインから直接試すことができます 。 Dart SDKの場合、devチャンネルからDart 2をダウンロードし、フラグ--preview-dart-2を使用してコードを実行します。 また、 Gitterコミュニティに参加することもできます。



本日発表された改善のおかげで、Dart 2は生産的でクリーンで現場で実証済みの言語であり、最新のアプリケーション開発の問題を解決します。 彼はすでに地球上で最も要求の厳しい開発者の一部に愛されており、あなたもそれを気に入ってくれることを願っています。



翻訳者注 :ロシア語を話すダートコミュニティのTelegramまたはSlackに参加してください



All Articles