プログラミング言語

Dart だーと

Flutterモバイルアプリ開発Google静的型付けJIT/AOTコンパイルクロスプラットフォーム
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を採用するかどうかの判断には、他のモバイル開発手段との比較が重要です。

モバイルアプリ開発手段の比較 Flutter / Dart 言語: Dart iOS ✓ Android ✓ Web ✓ Desktop ✓ 1コードで全対応 UIも自前描画 高パフォーマンス ◎ おすすめ度 ★★★★★ React Native 言語: JavaScript iOS ✓ Android ✓ Web △ Desktop △ JS開発者に馴染みやすい ネイティブUI使用 Meta製 ○ おすすめ度 ★★★★☆ Swift (iOS専用) 言語: Swift iOS ✓ Android ✗ Web ✗ Desktop △(Mac) iOS最高品質 Apple公式 iOS専任なら◎ △ おすすめ度 ★★★☆☆ Kotlin (Android) 言語: Kotlin iOS ✗ Android ✓ Web △ Desktop △ Android最高品質 Google公式 Android専任なら◎ △ おすすめ度 ★★★☆☆ ※ 両OS対応のアプリを1チームで開発したい場合はFlutter/Dartが有力候補

発注・選定時のポイント

状況おすすめ
iOSとAndroid両方のアプリを作りたいFlutter(Dart)
JavaScriptエンジニアがチームにいるReact Native
iOSアプリのみ・品質最優先Swift
Androidアプリのみ・品質最優先Kotlin

関連する規格・RFC

※ Dartは企業主導の言語仕様であり、IETF RFCやISOの標準規格は存在しませんが、以下の公式仕様が参照されます。

仕様・規格内容
Dart Language SpecificationGoogle公式のDart言語仕様書
ECMA-408DartのECMA標準仕様(第4版)

関連用語

  • Flutter — DartでiOS・Android・Webなどを横断開発するGoogleのUIフレームワーク
  • クロスプラットフォーム開発 — 1つのコードで複数OS向けアプリを開発するアプローチ
  • 静的型付け言語 — 変数の型をコンパイル時に決めるプログラミング言語の分類
  • JITコンパイル — プログラムを実行しながらリアルタイムで機械語に変換する方式
  • AOTコンパイル — 実行前にすべてのコードを機械語へ変換しておく方式
  • モバイルアプリ開発 — スマートフォン向けアプリを設計・実装する工程の総称
  • Kotlin — GoogleがAndroid開発の公式言語として推奨するJVM系言語
  • Swift — AppleがiOS/macOS向けに開発した公式プログラミング言語