ジャーニー
Dartを学ぶ
無料で使えるインタラクティブなDartオンライン講座。毎レッスンで実際にDartを書きます——syntax、classes、async/await、futures、そしてFlutterに進むために欠かせない基礎まで。asyncで詰まったときはAIヒントが助けてくれて、修了すれば無料の修了証明書がもらえます。
17,492+ 人のcoddersが登録中
- 初心者向け
AIによるコーディングサポート
実践的なインタラクティブレッスン
全レッスンに音声ナレーション付き
知識を確かめるクイズ
無料の修了証明書
シラバス
セクション 1
基礎
セクションを始める開始開く閉じる必須の概念と基本的なスキルで強固な基礎を築きましょうDart 入門
4 レッスン224- 01Dart とは?チャレンジ
- 02main 関数クイズ
- 03出力を出力するチャレンジクイズ
- 04コードのコメントクイズ
変数と基本データ型
11 レッスン1075- 01変数とは?クイズ
- 02文字列チャレンジクイズ
- 03整数 (int)チャレンジクイズ
- 04倍精度小数 (double)チャレンジクイズ
- 05ブール値 (bool)チャレンジクイズ
- 06'var' を用いた型推論チャレンジクイズ
- 07final 変数チャレンジクイズ
- 08const 変数チャレンジクイズ
- 09命名規則チャレンジクイズ
- 10基本的な Null 安全性チャレンジクイズ
- 11まとめ - 変数の宣言チャレンジ
演算子 第1部
6 レッスン638- 01算術演算子チャレンジクイズ
- 02整数除算チャレンジクイズ
- 03剰余演算子チャレンジクイズ
- 04インクリメントとデクリメントチャレンジクイズ
- 05代入のショートカットチャレンジクイズ
- 06復習 - 簡単な計算チャレンジ
演算子 第2部
6 レッスン636- 01比較演算子チャレンジクイズ
- 02論理 ANDチャレンジクイズ
- 03論理 ORチャレンジクイズ
- 04論理 NOTチャレンジクイズ
- 05型判定演算子チャレンジクイズ
- 06復習 - 比較を行うチャレンジ
演算子 Part 3
3 レッスン320- 01Null-aware 演算子チャレンジクイズ
- 02Null-aware アクセスチャレンジクイズ
- 03条件演算子チャレンジクイズ
制御の流れ - 条件分岐
6 レッスン636- 01「if」文チャレンジクイズ
- 02「else」文チャレンジクイズ
- 03「else if」文チャレンジクイズ
- 04復習 - 単純な分岐チャレンジ
- 05ネストした「if」文チャレンジクイズ
- 06「switch」文チャレンジクイズ
文字列の操作
5 レッスン538- 01文字列の連結チャレンジクイズ
- 02文字列補間チャレンジクイズ
- 03複数行文字列チャレンジクイズ
- 04文字列のプロパティチャレンジクイズ
- 05基本的な文字列メソッドチャレンジクイズ
制御の流れ - ループ
6 レッスン637- 01「for」ループチャレンジクイズ
- 02「while」ループチャレンジクイズ
- 03「do-while」ループチャレンジクイズ
- 04ループでの「break」の使用チャレンジクイズ
- 05ループでの「continue」の使用チャレンジクイズ
- 06復習 - コードの繰り返しチャレンジ
コレクション - リストの基本
8 レッスン759- 01リストとは?クイズ
- 02リストの作成チャレンジクイズ
- 03インデックスによるアクセスチャレンジクイズ
- 04リストの長さの取得チャレンジクイズ
- 05要素の追加チャレンジクイズ
- 06要素の削除チャレンジクイズ
- 07リストが空かどうかのチェックチャレンジクイズ
- 08リストの反復処理チャレンジクイズ
コレクション - マップの基本
8 レッスン757- 01マップとは?クイズ
- 02マップの作成チャレンジクイズ
- 03キーによる値のアクセスチャレンジクイズ
- 04キー・値ペアチャレンジクイズ
- 05マップのサイズ取得チャレンジクイズ
- 06キーの取得チャレンジクイズ
- 07値の取得チャレンジクイズ
- 08キーの存在確認チャレンジクイズ
関数の基礎
8 レッスン753- 01関数とは?クイズ
- 02基本的な関数の定義チャレンジクイズ
- 03関数の呼び出しチャレンジクイズ
- 04引数を持つ関数チャレンジクイズ
- 05値を返す関数チャレンジクイズ
- 06「void」キーワードチャレンジクイズ
- 07アロー構文チャレンジクイズ
- 08復習 - シンプルな関数チャレンジ
関数の応用
5 レッスン532- 01オプションの位置引数チャレンジクイズ
- 02名前付き引数チャレンジクイズ
- 03必須の名前付き引数チャレンジクイズ
- 04引数のデフォルト値チャレンジクイズ
- 05復習 - 関数の引数チャレンジ
Null Safety の詳細
6 レッスン639- 01Null の理解チャレンジクイズ
- 02Nullable 型チャレンジクイズ
- 03Non-Nullable 型チャレンジクイズ
- 04Null 断定演算子チャレンジクイズ
- 05遅延初期化チャレンジクイズ
- 06まとめ - Null を安全に扱うチャレンジ
型変換
4 レッスン430- 01String を int に変換チャレンジクイズ
- 02String を double に変換チャレンジクイズ
- 03数値を String に変換チャレンジクイズ
- 04変換エラーの処理チャレンジクイズ
プロジェクト: 簡易電卓
プロジェクト5 レッスン1- 01初期設定チャレンジ
- 02数値の宣言プロジェクト
- 03演算の作成プロジェクト
- 04計算の実行プロジェクト
- 05結果の表示プロジェクト
基礎チャレンジ
3 レッスン3- 01チャレンジ: 計算リストチャレンジ
- 02チャレンジ: 数の合計チャレンジ
- 03チャレンジ: 積を求めるチャレンジ
セクション 2
論理とフロー
セクションを始める開始開く閉じるデータ構造とフロー制御に焦点を当てた高度なDartプログラミングを習得します。複雑な配列、コレクション、エラーハンドリング、時間管理を扱いましょう。リスト操作の応用
9 レッスン959- 01リストのプロパティ: first と lastチャレンジクイズ
- 02リストの状態: isEmpty と isNotEmptyチャレンジクイズ
- 03リストの反転チャレンジクイズ
- 04リストへの追加: insertチャレンジクイズ
- 05リストの削除: removeWhereチャレンジクイズ
- 06リスト内の検索: indexOfチャレンジクイズ
- 07リストのソートチャレンジクイズ
- 08リストのシャッフルチャレンジクイズ
- 09まとめ - リストオーガナイザーチャレンジ
関数型リスト操作
7 レッスン746- 01'map' による変換チャレンジクイズ
- 02'where' によるフィルタリングチャレンジクイズ
- 03'.toList()' の使用チャレンジクイズ
- 04'any' による条件チェックチャレンジクイズ
- 05'every' による条件判定チャレンジクイズ
- 06'firstWhere' による検索チャレンジクイズ
- 07まとめ:データフィルタリングチャレンジ
集合
9 レッスン864- 01セットとは?クイズ
- 02セットの作成チャレンジクイズ
- 03セットへの要素の追加と削除チャレンジクイズ
- 04セット内の要素の確認チャレンジクイズ
- 05リストからセットへの変換チャレンジクイズ
- 06和集合チャレンジクイズ
- 07積集合チャレンジクイズ
- 08差集合チャレンジクイズ
- 09まとめ:重複のないゲストリストチャレンジ
Mapの高度な操作
7 レッスン745- 01Mapの反復処理チャレンジクイズ
- 02キーと値の存在確認チャレンジクイズ
- 03Mapのプロパティ: keys と valuesチャレンジクイズ
- 04条件付き追加: putIfAbsentチャレンジクイズ
- 05Mapからのエントリの削除チャレンジクイズ
- 06ネストされたMapチャレンジクイズ
- 07復習 - 在庫の更新チャレンジ
プロジェクト:ショッピングカート計算
プロジェクト5 レッスン1- 01プロジェクトのセットアップチャレンジ
- 02カートへの商品の追加プロジェクト
- 03合計金額の計算プロジェクト
- 04割引の適用プロジェクト
- 05最終レシートの表示プロジェクト
エラーハンドリングの基本
6 レッスン541- 01例外とは?クイズ
- 02'try-catch' ブロックチャレンジクイズ
- 03'on' による例外のキャッチチャレンジクイズ
- 04'finally' ブロックチャレンジクイズ
- 05例外のスローチャレンジクイズ
- 06まとめ - 安全な除算チャレンジ
高度な関数
7 レッスン646- 01無名関数チャレンジクイズ
- 02関数を引数として渡すチャレンジクイズ
- 03クロージャの理解チャレンジクイズ
- 04再帰入門クイズ
- 05再帰関数:カウントダウンチャレンジクイズ
- 06再帰関数:階乗チャレンジクイズ
- 07まとめ:List Processorチャレンジ
プロジェクト:簡易テキスト解析ツール
プロジェクト7 レッスン18- 01プロジェクトの概要とセットアップチャレンジクイズ
- 02文字数のカウントプロジェクト
- 03テキストを単語に分割するプロジェクト
- 04単語数のカウントプロジェクト
- 05ユニークな単語数のカウントプロジェクト
- 06単語の出現頻度のカウントプロジェクト
- 07解析結果の表示プロジェクト
列挙型 (Enums)
5 レッスン433- 01Enumとは?クイズ
- 02シンプルなEnumの定義チャレンジクイズ
- 03変数でのEnumの使用チャレンジクイズ
- 04switch文でのEnumチャレンジクイズ
- 05復習 - 信号機チャレンジ
最終チャレンジ
3 レッスン3- 01チャレンジ:成績ソーターチャレンジ
- 02チャレンジ:母音カウンターチャレンジ
- 03チャレンジ:FizzBuzzチャレンジ
セクション 3
オブジェクト指向プログラミング
セクションを始める開始開く閉じるクラス、オブジェクト、再利用可能な構造を使ってコードを整理する方法を学びましょうOOPの基礎
9 レッスン971- 01外部ファイルチャレンジクイズ
- 02ライブラリとインポートチャレンジクイズ
- 03OOP入門チャレンジクイズ
- 04クラスとオブジェクトチャレンジクイズ
- 05thisキーワードチャレンジクイズ
- 06メソッドチャレンジクイズ
- 07インスタンス変数チャレンジクイズ
- 08コンストラクタの基礎チャレンジクイズ
- 09復習:簡易電卓チャレンジ
Dartのコンストラクタ
7 レッスン753- 01デフォルトコンストラクタチャレンジクイズ
- 02名前付きコンストラクタチャレンジクイズ
- 03初期化子リストチャレンジクイズ
- 04定数コンストラクタチャレンジクイズ
- 05ファクトリコンストラクタチャレンジクイズ
- 06リダイレクトコンストラクタチャレンジクイズ
- 07まとめ - Shape Builderチャレンジ
クラスのプロパティ
6 レッスン644- 01インスタンスメンバと静的メンバチャレンジクイズ
- 02FinalとConstフィールドチャレンジクイズ
- 03Late変数チャレンジクイズ
- 04静的メソッドとフィールドチャレンジクイズ
- 05ゲッターとセッターチャレンジクイズ
- 06まとめ - 銀行口座マネージャーチャレンジ
Null Safety
7 レッスン754- 01Null Safety 入門チャレンジクイズ
- 02Nullable と Non-Nullableチャレンジクイズ
- 03? 演算子と ! 演算子チャレンジクイズ
- 04late キーワードと Null Safetyチャレンジクイズ
- 05Null-Aware 演算子チャレンジクイズ
- 06クラスにおける Null Safetyチャレンジクイズ
- 07まとめ:ユーザープロフィールシステムチャレンジ
カプセル化
6 レッスン641- 01公開メンバと非公開メンバチャレンジクイズ
- 02アンダースコア(_)接頭辞の慣習チャレンジクイズ
- 03ライブラリレベルのプライバシーチャレンジクイズ
- 04Getter と Setter の詳細チャレンジクイズ
- 05情報隠蔽チャレンジクイズ
- 06まとめ:学生の記録チャレンジ
継承
7 レッスン750- 01継承の基本チャレンジクイズ
- 02super キーワードチャレンジクイズ
- 03メソッドのオーバーライドチャレンジクイズ
- 04@override アノテーションチャレンジクイズ
- 05final クラスキーワードチャレンジクイズ
- 06コンストラクタと継承チャレンジクイズ
- 07まとめ:従業員の階層構造チャレンジ
抽象クラスとインターフェース
7 レッスン753- 01抽象クラスチャレンジクイズ
- 02抽象メソッドチャレンジクイズ
- 03Dart におけるインターフェースチャレンジクイズ
- 04暗黙的インターフェースチャレンジクイズ
- 05実装 vs 継承チャレンジクイズ
- 06複数のインターフェースチャレンジクイズ
- 07まとめ - 図形計算機チャレンジ
Mixin
7 レッスン752- 01Mixin入門チャレンジクイズ
- 02Mixinの作成チャレンジクイズ
- 03複数のMixinの使用チャレンジクイズ
- 04Mixinにおけるonキーワードチャレンジクイズ
- 05Mixin vs 継承チャレンジクイズ
- 06Mixin vs インターフェースチャレンジクイズ
- 07まとめ - 動物システムチャレンジ
ポリモーフィズム
6 レッスン643- 01ポリモーフィズムの基礎チャレンジクイズ
- 02インターフェースによるポリモーフィズムチャレンジクイズ
- 03実行時の型チェックチャレンジクイズ
- 04is および as 演算子チャレンジクイズ
- 05covariant キーワードチャレンジクイズ
- 06まとめ - 決済プロセッサチャレンジ
コレクションとジェネリクス
7 レッスン754- 01List, Set, Map の概要チャレンジクイズ
- 02型安全なコレクションチャレンジクイズ
- 03ジェネリッククラスチャレンジクイズ
- 04ジェネリックメソッドチャレンジクイズ
- 05ジェネリクスの制約チャレンジクイズ
- 06Iterable と Iteratorチャレンジクイズ
- 07まとめ:ジェネリックなストレージチャレンジ
特殊メソッド
6 レッスン643- 01toString() のオーバーライドチャレンジクイズ
- 02hashCode と == のオーバーライドチャレンジクイズ
- 03Comparable インターフェースチャレンジクイズ
- 04call() メソッドチャレンジクイズ
- 05noSuchMethod のオーバーライドチャレンジクイズ
- 06まとめ:カスタムコレクションチャレンジ
非同期 OOP
6 レッスン645- 01Future と async/awaitチャレンジクイズ
- 02Stream の基礎チャレンジクイズ
- 03Stream Controllerチャレンジクイズ
- 04非同期コンストラクタチャレンジクイズ
- 05クラスメソッドにおける非同期処理チャレンジクイズ
- 06まとめ - Data Fetcherチャレンジ
高度な OOP の概念
7 レッスン764- 01コンポジション vs 継承チャレンジクイズ
- 02拡張メソッドチャレンジクイズ
- 03Callable クラスチャレンジクイズ
- 04Sealed クラス (Dart 3)チャレンジクイズ
- 05レコード (Dart 3)チャレンジクイズ
- 06パターンとマッチング (3.0)チャレンジクイズ
- 07メソッドを持つ Enumチャレンジクイズ
デザインパターン パート1
5 レッスン543- 01デザインパターン入門チャレンジクイズ
- 02Singletonパターンチャレンジクイズ
- 03Factoryパターンチャレンジクイズ
- 04Observerパターンチャレンジクイズ
- 05Strategyパターンチャレンジクイズ
デザインパターン パート2
7 レッスン763- 01コマンドパターンチャレンジクイズ
- 02アダプターパターンチャレンジクイズ
- 03デコレーターパターンチャレンジクイズ
- 04テンプレートメソッドパターンチャレンジクイズ
- 05ステートパターンチャレンジクイズ
- 06コンポジットパターンチャレンジクイズ
- 07リポジトリパターンチャレンジクイズ
プロジェクト:図書管理
プロジェクト6 レッスン1- 01プロジェクトの概要チャレンジ
- 02BookクラスとUserクラスプロジェクト
- 03貸出システムプロジェクト
- 04検索機能プロジェクト
- 05管理者インターフェースプロジェクト
- 06テストと統合プロジェクト
最終課題
4 レッスン4- 01Eラーニングプラットフォームチャレンジ
- 02銀行システムチャレンジ
- 03ゲームキャラクターシステムチャレンジ
- 04車両レンタルサービスチャレンジ
CoddyでDartを学ぶ理由
- ブラウザ上で本物のDartコードを書いて実行できます。Dart SDKのインストールも、Flutterツールチェーンのセットアップも不要。各レッスンはサーバー側でDartプログラムをコンパイルし、結果をその場で表示します。
- Flutter開発者が実際に使うDart。変数と型、制御フロー、関数、クラスと継承、ジェネリクス、null-safety、futures、async/await、streams。Flutter開発者に必要なDartの基礎を一通りカバーします。
- AIヒントは答えを丸見えにせず、Dartのエラーやasyncのバグを読み解いて直す手助けをしてくれるので、null-safetyやfuturesといった概念が混乱の種ではなく、すっと腑に落ちるようになります。
- 講座を修了するとDartの無料修了証明書がもらえます。Dartを主軸とするFlutterやモバイル開発の職種で、確かなアピール材料になります。
Dart学習についてのよくある質問
Dartは何に使われていますか?
Dartは主にFlutterアプリの開発に使われます。FlutterはGoogleのクロスプラットフォームUIフレームワークで、単一のコードベースからiOS、Android、Web、Windows、macOS、Linuxに対応できます。Flutter以外にも、Dartはコマンドラインツールやサーバーサイドのコードにも使われていますが、今Dartを学ぶ最大の理由はやはりFlutterです。
Dartは習得が難しいですか?
Dartは、静的型付け言語の中でも比較的習得しやすい部類です。文法はJava、JavaScript、C#を触ったことがある人なら馴染みやすく、強力なnull-safetyのおかげでよくあるバグも防げます。多くの初心者は最初の1時間で動くDartプログラムを書き上げ、1週間以内にクラスを書き始めるところまで到達します。
Flutterの前にDartを学ぶべき?
はい、少なくとも基礎は学んでおきましょう。Dart の構文、クラス、async/await、null-safety が自然に感じられるようになると、Flutter の学習はぐっとスムーズになります。この Dart コースは Flutter への助走路として作られているので、実際の Flutter コードに登場する Dart の要素を中心に学べます。
Dartの習得にはどのくらいかかりますか?
Dartの基礎 — 変数、制御フロー、関数、クラス — は、毎日練習すれば1〜2週間で身につきます。async/await、futures、null-safetyに慣れるには、さらに2〜4週間ほどかかるのが一般的です。そこから先は、必要に応じてDartの高度な機能を学びながらFlutterに進めます。
Dartをオンラインで無料で学べますか?
はい。インタラクティブなDartコースは無料です — レッスン、コーディング演習、クイズ、そして修了証まで含まれます。Dartはサーバー側でコンパイルされるので、Dart SDKをインストールしたりFlutterをローカルに構築したりしなくても、すぐに本物のDartコードを書き始められます。
Dartコース修了後に証明書はもらえますか?
はい。Dartコースを修了すると、無料の修了証がもらえます。履歴書に追加したりLinkedInでシェアしたりできる検証可能な実績で、Flutter開発へのステップとして特に役立ちます。