Dart だーと
簡単に言うとこんな感じ!
DartはGoogleが作ったプログラミング言語で、スマホアプリ開発ツール「Flutter」の土台になってるやつだよ。JavaScriptに似てて覚えやすく、1つのコードでiPhoneもAndroidも動くアプリが作れるんだ!
Dartとは
Dartは、Google が2011年に開発したオープンソースのプログラミング言語です。もともとはWebブラウザ上で動くJavaScriptの代替として設計されましたが、現在はクロスプラットフォームのモバイルアプリ開発フレームワーク「Flutter」の公式言語として広く使われています。
Dartの最大の特徴は、静的型付け(変数の型をコンパイル時に決める仕組み)を持ちながら、JavaやJavaScriptに近い書き方ができる点です。初心者でも比較的とっつきやすく、プロのエンジニアにとっても生産性が高い設計になっています。また、JIT(Just-In-Time)コンパイルとAOT(Ahead-Of-Time)コンパイルの両方に対応しており、開発中は素早く動作確認でき、リリース時は高速なネイティブコードに変換できます。
ビジネスの現場では「Flutterでアプリを作りたい」という文脈で登場することがほとんどです。「DartかFlutterか」と混乱しがちですが、DartはFlutterを動かすための言語、FlutterはDartで書くためのフレームワーク(ツールセット)、と理解しておけばOKです。
Dartの主な特徴・仕組み
| 特徴 | 内容 |
|---|---|
| 静的型付け | 変数の型をあらかじめ宣言する。バグを早期に発見しやすい |
| JITコンパイル | 開発中にコードを即座に実行。「ホットリロード」で画面をリアルタイムに確認できる |
| AOTコンパイル | 本番リリース時にネイティブコードへ変換。高速で動作する |
| Null安全(Null Safety) | 変数に「値なし(null)」が入ることを厳格に管理。クラッシュの原因を減らす |
| 非同期処理 | async/await 構文でネットワーク通信などの待ち処理を書きやすい |
| クロスプラットフォーム | iOS・Android・Web・デスクトップを1つのコードでカバー |
覚え方:「ダーツは一本で的(まと)を射貫く」
Dart = 1本のコードで複数のプラットフォームを射貫く言語、と覚えましょう。ダーツ(投げ矢)のように、1つの言語でiOS・Android・Webを一撃でカバーするイメージです。
2種類のコンパイル方式の使い分け
開発中(デバッグ) リリース時(本番)
─────────────── ─────────────────
JITコンパイル AOTコンパイル
コードを逐次解釈・実行 事前にネイティブコードへ変換
↓ ↓
ホットリロードが使える 起動が速い・動作が軽い
変更をすぐ確認できる ユーザーへ届けるのに最適
歴史と背景
- 2011年 — Googleが「GOTO Copenhagen」カンファレンスでDartを発表。JavaScriptの複雑さを解消するWeb言語として設計
- 2013年 — Dart 1.0リリース。Webアプリ向けの言語として公開
- 2017年 — Flutterのアルファ版が登場。DartがFlutterの言語として採用され注目を集める
- 2018年 — Flutter 1.0がリリース。DartはFlutter開発者の間で急速に普及
- 2020年 — Dart 2.12でNull Safety(ヌル安全)を導入。品質・安全性が大幅向上
- 2021〜現在 — FlutterがiOS・Android・Web・Windows・macOS・Linuxに対応拡大。Dartの利用者数も増加の一途
Dartと他言語・フレームワークの比較
Dartを採用するかどうかの判断には、他のモバイル開発手段との比較が重要です。
発注・選定時のポイント
| 状況 | おすすめ |
|---|---|
| iOSとAndroid両方のアプリを作りたい | Flutter(Dart) |
| JavaScriptエンジニアがチームにいる | React Native |
| iOSアプリのみ・品質最優先 | Swift |
| Androidアプリのみ・品質最優先 | Kotlin |
関連する規格・RFC
※ Dartは企業主導の言語仕様であり、IETF RFCやISOの標準規格は存在しませんが、以下の公式仕様が参照されます。
| 仕様・規格 | 内容 |
|---|---|
| Dart Language Specification | Google公式のDart言語仕様書 |
| ECMA-408 | DartのECMA標準仕様(第4版) |
関連用語
- Flutter — DartでiOS・Android・Webなどを横断開発するGoogleのUIフレームワーク
- クロスプラットフォーム開発 — 1つのコードで複数OS向けアプリを開発するアプローチ
- 静的型付け言語 — 変数の型をコンパイル時に決めるプログラミング言語の分類
- JITコンパイル — プログラムを実行しながらリアルタイムで機械語に変換する方式
- AOTコンパイル — 実行前にすべてのコードを機械語へ変換しておく方式
- モバイルアプリ開発 — スマートフォン向けアプリを設計・実装する工程の総称
- Kotlin — GoogleがAndroid開発の公式言語として推奨するJVM系言語
- Swift — AppleがiOS/macOS向けに開発した公式プログラミング言語