TL

Language Profile

Dart

Google / 2011年登場

Google 製のクライアント最適化言語Flutter の言語として、1 つのコードから iOS/Android/Web/デスクトップ アプリを作れる

TL;DR要点だけ先に
  • 1.Google 製でクライアント最適化された言語。
  • 2.Flutter でマルチプラットフォーム UI を一括開発。
  • 3.クロスプラットフォームアプリなら Dart + Flutter。

Specifications

基本情報

Introducing

Dart のロゴ
DartGoogle 製のクライアント最適化言語。Flutter の言語として、1 つのコードから iOS/Android/Web/デスクトップ アプリを作れる。
型付け
静的強い型付けnull 安全)
実行方式
AOT / JIT コンパイル+ JS)
パラダイム
オブジェクト指向
登場
2011年Google
この言語の強み
Flutter で iOS/Android/Web/Desktop を一括null 安全・ホットリロードで開発が速い
活躍する領域
モバイルアプリFlutter)クロスプラットフォーム UI / Web / デスクトップ(Flutter)

Decision Guide

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

Why It Fits

選ぶ理由

  1. Flutter で iOS/Android/Web/Desktop を一括
  2. null 安全・ホットリロードで開発が速い
  3. AOT で高速なネイティブ実行

Trade-offs

考慮すべき点

  1. ほぼ Flutter 専用に近い
  2. Flutter 外のエコシステムは小さい
  3. Web 単体では JS/TS が優勢

Best Fit

こんな用途に向く

モバイルアプリ(Flutter)クロスプラットフォーム UIWeb / デスクトップ(Flutter)

Deep Dive

もっと詳しく

どんな言語か

Dart は Google が 2011 年に公開した、クライアント開発に最適化された言語です。当初は JavaScript の代替を狙っていましたが、現在は UI フレームワーク Flutter の公式言語として位置づけが定まりました。文法は Java や JavaScript の経験者になじみやすく、静的型付けを基本とします。

1 つのコードで全プラットフォーム

Flutter と組み合わせると、1 つの Dart コードベースから iOS・Android・Web・デスクトップ向けアプリを生成できます。UI を「ウィジェットのツリー」として宣言的に記述し、プラットフォームごとに書き分ける手間を大きく減らせます。

得意なこと・不得意なこと

  • 得意: モバイルを中心としたマルチプラットフォームのアプリ開発。
  • null 安全が言語仕様に組み込まれ、開発中はホットリロードで即座に変更を確認でき、本番では AOT コンパイルで高速に動きます。
  • 不得意: Flutter 以外の用途。サーバーサイドやデータ処理のエコシステムは限定的です。

つまずきやすいところ

// null 許容かどうかを型で区別する
String name = 'Tech';   // null にできない
String? note;           // null を許容(? が必須)
print(note?.length);    // note が null ならアクセスしない

型に ? が付くか否かで扱いが変わるため、null 安全の規則に慣れるまでコンパイルエラーに悩みがちです。

どんな場面で使うか

スタートアップや個人開発で、限られた人員で iOS と Android の両方を出したいときに有力です。実質的に Flutter とほぼ一体で採用されます。

Language Decision

Dartを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

モバイルアプリ(Flutter)

比較で見る軸

型付け: 静的・強い型付け(null 安全) / 実行方式: AOT / JIT コンパイル(+ JS) / パラダイム: オブジェクト指向

導入後に効く点

null 安全・ホットリロードで開発が速い

先に潰すリスク

ほぼ Flutter 専用に近い

数字・仕様の読み方
型付け
静的・強い型付け(null 安全)
実行方式
AOT / JIT コンパイル(+ JS)
パラダイム
オブジェクト指向
登場
2011年
Google

判断チェックリスト

  • 自社の用途が「モバイルアプリ(Flutter) / クロスプラットフォーム UI」に近いか確認する。
  • 強みである「Flutter で iOS/Android/Web/Desktop を一括」が本当に評価軸になるか確認する。
  • 注意点の「ほぼ Flutter 専用に近い」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

モバイルアプリ(Flutter)クロスプラットフォーム UIWeb / デスクトップ(Flutter)

First Step

Hello, World!

void main() {
  print("Hello, World!");
}
公式ドキュメント