Why It Fits
選ぶ理由
- Flutter で iOS/Android/Web/Desktop を一括
- null 安全・ホットリロードで開発が速い
- AOT で高速なネイティブ実行
Language Profile
Google / 2011年登場
Google 製のクライアント最適化言語。Flutter の言語として、1 つのコードから iOS/Android/Web/デスクトップ アプリを作れる。
Specifications
Introducing
Decision Guide
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
Why It Fits
Trade-offs
Best Fit
Deep Dive
Dart は Google が 2011 年に公開した、クライアント開発に最適化された言語です。当初は JavaScript の代替を狙っていましたが、現在は UI フレームワーク Flutter の公式言語として位置づけが定まりました。文法は Java や JavaScript の経験者になじみやすく、静的型付けを基本とします。
Flutter と組み合わせると、1 つの Dart コードベースから iOS・Android・Web・デスクトップ向けアプリを生成できます。UI を「ウィジェットのツリー」として宣言的に記述し、プラットフォームごとに書き分ける手間を大きく減らせます。
// null 許容かどうかを型で区別する
String name = 'Tech'; // null にできない
String? note; // null を許容(? が必須)
print(note?.length); // note が null ならアクセスしない
型に ? が付くか否かで扱いが変わるため、null 安全の規則に慣れるまでコンパイルエラーに悩みがちです。
スタートアップや個人開発で、限られた人員で iOS と Android の両方を出したいときに有力です。実質的に Flutter とほぼ一体で採用されます。
Language Decision
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
モバイルアプリ(Flutter)
型付け: 静的・強い型付け(null 安全) / 実行方式: AOT / JIT コンパイル(+ JS) / パラダイム: オブジェクト指向
null 安全・ホットリロードで開発が速い
ほぼ Flutter 専用に近い
First Step
void main() {
print("Hello, World!");
}公式ドキュメント