次のページ



解説 Dart 2 プログラミング言語

20194月(初版)


株式会社 クレス

*** 内容 ***


言語編 Dart 2言語の基礎

ライブラリ編 主要組み込みライブラリ

開発編 Dart 2開発環境の構築と活用

サーバ編 サーバ・サイドのアプリケーション(未完)▷



この資料は新しくDart 2として進化したプログラミング言語Dartの解説書です。当社は2012年からDart言語をプログラミング言語Dartの基礎」としてこのコーナで紹介してきました。このたび「解説 Dart 2 プログラミング言語」としてこれを更新することにしました。従来はPDF等の文書形式でしたが、今回からはウェブ・ページの形式で、より見易いものとしました。


Google201110月に新しい大規模ウェブ・アプリケーションのためのプログラミング言語Dartを発表して以来6年を経過した20182月に、当初からのこの言語の開発に携わっていたAnders Thorhauge SandholmDart 2を発表しました。

Dart 2はクライアント・サイドのアプリケーション開発によりその重点が置かれていますが、サーバ・サイドでもこれまでどおり活用可能です。Dart 2はモバイル環境の発展やAngularなどのウェブ・アプリケーションのフレームワークの普及など、Dart発表当初から大きく変化した環境に対応させるべく進化しています。

従って開発環境は目的によって最適化されています:


環境

ツール




iOS 及び Androidなどのモバイル環境

Flutter




PCなどのクライアント環境

AngularDart




サーバ環境

スタンド・アロンVM

Dart 2の言語仕様書は現時点ではまだ完成していませんが(当初の仕様担当だったGilad Bracha氏は既にGoogleを去っている)、ボランティア・ベースで作業中で、近い将来ECMAで標準化がされる予定です。

本資料は執筆時点での最新の安定版をベースにしており、以下のような構成となっています:

1

言語編 Dart 2言語の基礎

概説 (Overview)

キーワード (Keywords)

変数 (Variables)

組込み型 (Built-in types)

関数 (Functions)

演算子 (Operators)

制御フロー文 (Control flow statements)

例外 (Exceptions)

クラス (Classes)

総称型 (Generics)

ライブラリと可視性 (Libraries and visibility)

非同期対応 (Asynchrony support)

非同期処理-Future (Asynchronous Programming: Futures)

非同期処理-ストリーム (Asynchronous Programming: Streams)

ジェネレータ関数 (Generators)

関数のエミュレーション (Emulating functions)

アイソレート (Isolates)

Typedef (Typedefs)

Metadata (Metadata)

コメント (Comments)

2

ライブラリ編 主要組み込みライブラリ

3

開発編 Dart 2開発環境の構築と活用

DartPad

IDE

Pub

Pubパッケージを活用する

4

応用編 サーバー・サイドのアプリケーション (未完)

HTTPサーバの基礎(HTTP servers)

ファイル・サーバ(File servers)

セッション管理(Session mgt.)

HTTPSサーバ (HTTPS servers)

Websocket通信 (Websocket)

ミドルウエア・フレームワーク (shelf)

RESTfulウェブ・サービス

従って本資料では、FlutterAngularDartに関しては触れていません。

2.0版以前のDartをすでに利用しているユーザは、「プログラミング言語Dartの基礎」も参照ください

本資料の添付資料的なレポジトリをGithubで公開しています:

  1. dart2_code_samples

  2. mime_type

  3. GooSushi

  4. file_server

  5. https_servers

  6. shelf_test

  7. websocket_chat_server

  8. weather_forecast_server

また本資料及び上記レポジトリに含まれているサンプル等はWindows環境で確認されたものです。他のOSのユーザは一部コードの変更(ファイルパス等)が必要になることがあります。またこれらのコードはいわゆるMITライセンシングに基づき、その使用結果に対してはその責を負いません。