1. プロジェクトの概要
このプロジェクトでは、DartPadを使用してコンソールベースのTodoリストアプリケーションを作成します。このアプリケーションは、ユーザーがタスクを追加、表示、削除できる機能を提供します。
2. Todoクラスの定義
まず、タスクを表すTodo
クラスを定義します。このクラスには、タスクのタイトルと完了状態を持つプロパティがあります。
Dart
class Todo {
String title;
bool isCompleted;
Todo(this.title, {this.isCompleted = false});
@override
String toString() {
return '[${isCompleted ? 'x' : ' '}] $title';
}
}
3. Todoリストの管理
次に、Todo
リストを管理するための機能を追加します。タスクの追加、表示、削除を行うメソッドを実装します。
Dart
class TodoApp {
List<Todo> todos = [];
void addTodo() {
print('Enter a task: ');
String? title = stdin.readLineSync();
if (title != null && title.isNotEmpty) {
todos.add(Todo(title));
print('Task added: $title');
} else {
print('Task cannot be empty.');
}
}
void displayTodos() {
if (todos.isEmpty) {
print('No tasks available.');
} else {
print('Todo List:');
for (int i = 0; i < todos.length; i++) {
print('${i + 1}. ${todos[i]}');
}
}
}
void removeTodo() {
displayTodos();
if (todos.isNotEmpty) {
print('Enter the number of the task to remove: ');
int? index = int.tryParse(stdin.readLineSync() ?? '');
if (index != null && index > 0 && index <= todos.length) {
print('Task removed: ${todos[index - 1].title}');
todos.removeAt(index - 1);
} else {
print('Invalid task number.');
}
}
}
void markTodoAsCompleted() {
displayTodos();
if (todos.isNotEmpty) {
print('Enter the number of the task to mark as completed: ');
int? index = int.tryParse(stdin.readLineSync() ?? '');
if (index != null && index > 0 && index <= todos.length) {
todos[index - 1].isCompleted = true;
print('Task marked as completed: ${todos[index - 1].title}');
} else {
print('Invalid task number.');
}
}
}
}
4. メインメニューの実装
ユーザーが操作できるメニューを作成します。ユーザーはタスクの追加、表示、削除、完了を選択できます。
Dart
import 'dart:io';
void main() {
TodoApp app = TodoApp();
bool isRunning = true;
while (isRunning) {
print('''
1. Add a task
2. Display all tasks
3. Remove a task
4. Mark a task as completed
5. Exit
''');
print('Choose an option: ');
String? choice = stdin.readLineSync();
switch (choice) {
case '1':
app.addTodo();
break;
case '2':
app.displayTodos();
break;
case '3':
app.removeTodo();
break;
case '4':
app.markTodoAsCompleted();
break;
case '5':
isRunning = false;
print('Exiting the Todo app.');
break;
default:
print('Invalid choice. Please try again.');
}
}
}
5. アプリケーションの実行
DartPadでは直接このコードを実行できませんが、ローカル環境で実行する場合、以下のように行います。
ローカルでの実行方法
- Dart SDKをインストールします(インストール方法は公式サイトを参照してください)。
- 任意のディレクトリにプロジェクトフォルダを作成します(例:
my_todo_app
)。 - 上記のコードを
main.dart
という名前のファイルに保存します。 - コマンドラインでプロジェクトフォルダに移動し、以下のコマンドを実行します。
Dart
dart run main.dart
6. まとめ
この教科書では、Dartを使用してコンソールベースのTodoリストアプリケーションを作成する方法を学びました。主要な機能として、タスクの追加、表示、削除、および完了を実装しました。DartPadを使用して基本的なコードを試したり、ローカル環境で実行することで、Dartのプログラミングスキルを向上させることができます。