1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dart入門(1)

Last updated at Posted at 2021-02-17

Dartとは

2011年にGoogleから発表された1オブジェクト指向のプログラム言語で、

  • 任意型アノテーション
  • Hot reload
  • ネイティブコードやJavaScriptへのコンパイル

と言った特徴を持つ。

JavaScriptの代替を目指して開発され、DartVMがChromeにも統合される予定だったが思ったように普及が進まなかったため断念。2また、TypeScriptがGoogleの標準言語として採用されたという少し悲しい経緯を持つ。3

現在は主にFlutterフレームワークの言語としてアプリケーション開発に使われている。

Dartによる開発のメリット

  • 型付けにより実行時のエラーを減らし、可読性を高めることができる。
  • 開発時と公開時で利用するコンパイラを分けることで効率よく開発ができる
  • Pubと呼ばれるパッケージ管理を利用することができる

任意型アノテーション

Dart1までは任意型付けの言語であったが、
Dart2からは強い静的型付けの言語となっている。4

型アノテーション(と呼ばれる型orクラス名)をつけない場合は型推論により型が決まり、

// 型をつけない場合
main() {
  var a = 1;
  var b = 1.2;
  var s = 'strings';
}

つけるとc言語などと同じように静的に型を指定できる。

// 型をつける場合
void main() {
  int a = 1;
  double b = 1.2;
  String s = 'strings';
}

コンパイラ

  • 開発時にはデバッグやHot reloadといった豊富な開発サポートを可能としている。
  • 公開時にはARMやx64といったネイティブコードに変換することでアプリの高速化が期待できる。

表にすると以下のようになっており、必要なコンパイラを利用する形になる。

Dart native Dart web
開発時 Dart VM (JIT compiler) Dart development compiler
公開時 Dart AOT compiler Dart to js compiler
  • JITコンパイラとはJust-In-Time compilerの略であり、JavaやJavaScriptなどがこの方式を利用している
  • AOTコンパイラとはAhead-Of-Time compilerの略であり、cやc++などがこの方式を利用している

Pub (package manager)

  • パッケージとは他の開発者のプログラムを再利用できるようにまとめられたもの
  • pubspec.yamlというファイルに記載し、パッケージを管理する
  • node.js (JavaScript) でいうnpmである

例えば、アプリケーションでemail_validatorというパッケージを使いたい場合はpubspec.yaml

# 以下を追加
dependencies:
  email_validator: ^1.0.5

を追記し

$ pub get

とすることで、簡単にパッケージを導入することができる。

注意:サーバサイド と クライアントサイド

Dartには__サーバサイド__用と__クライアントサイド__用のライブラリがあり、サーバサイドで利用できる機能がクライアントサイドで利用できないことがある。(目的が違うのでね...)

サーバーサイドDart クライアントサイドDart
ライブラリ dart:io など dart:html など
操作 端末のI/OのAPIなどにアクセス ブラウザのDOMやAPIにアクセス
目的 ファイル操作など シングルページWebアプリケーションなど
  1. https://www.publickey1.jp/blog/11/dartjavascriptweb.html

  2. https://forest.watch.impress.co.jp/docs/news/1138315.html

  3. https://www.publickey1.jp/blog/17/typescriptdartgoogle.html

  4. http://www.cresc.ne.jp/tech/java/Google_Dart2/language/overview/overview.html

1
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?