성장 중인 개발자 이야기/Flutter
Flutter로 간단한 To-Do 리스트 앱 만들기
cmile
2023. 6. 2. 10:52

안녕하세요! 이번에는 Flutter를 사용하여 간단한 To-Do 리스트 앱을 만드는 방법에 대해 알려드리겠습니다.
To-Do 리스트 앱은 일상 생활에서 많이 사용되는 앱 중 하나이며, Flutter를 사용하면 간편하게 개발할 수 있습니다.
이제 시작해봅시다!
1. 프로젝트 생성
- Flutter 개발을 위해 Flutter SDK를 설치합니다. (https://flutter.dev/docs/get-started/install 참조)
- 터미널 또는 명령 프롬프트에서 flutter create todo_app 명령을 실행하여 새로운 Flutter 프로젝트를 생성합니다.
- 생성된 프로젝트 폴더로 이동합니다. (cd todo_app)
2. 필요한 패키지 추가
- pubspec.yaml 파일을 열어 dependencies 섹션에 다음 패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
provider: ^5.0.0
- 터미널에서 flutter pub get 명령을 실행하여 패키지를 설치합니다.
3. 모델 클래스 생성
- lib 폴더 내부에 task.dart 파일을 생성합니다.
- task.dart 파일에 다음과 같이 코드를 작성합니다:
class Task {
final String title;
bool isDone;
Task({required this.title, this.isDone = false});
}
4. 화면 구성
- lib 폴더 내부에 screens 폴더를 생성합니다.
- screens 폴더 내부에 tasks_screen.dart 파일을 생성합니다.
- tasks_screen.dart 파일에 다음과 같이 코드를 작성합니다.
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../models/task.dart';
class TasksScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('To-Do List'),
),
body: ListView.builder(
itemCount: Provider.of<TaskProvider>(context).tasksCount,
itemBuilder: (context, index) {
final task = Provider.of<TaskProvider>(context).tasks[index];
return ListTile(
title: Text(task.title),
trailing: Checkbox(
value: task.isDone,
onChanged: (value) {
Provider.of<TaskProvider>(context, listen: false).updateTask(task);
},
),
);
},
),
floatingActionButton: FloatingActionButton(
onPressed: () {
// 새로운 할일 추가 로직 작성
},
child: Icon(Icons.add),
),
);
}
}
5. 상태 관리 및 로직 추가
- lib 폴더 내부에 providers 폴더를 생성합니다.
- providers 폴더 내부에 task_provider.dart 파일을 생성합니다.
- task_provider.dart 파일에 다음과 같이 코드를 작성합니다.
import 'package:flutter/material.dart';
import '../models/task.dart';
class TaskProvider extends ChangeNotifier {
List<Task> _tasks = [
Task(title: '할일 1'),
Task(title: '할일 2'),
Task(title: '할일 3'),
];
List<Task> get tasks => _tasks;
int get tasksCount => _tasks.length;
void updateTask(Task task) {
task.isDone = !task.isDone;
notifyListeners();
}
// 새로운 할일 추가 메서드 작성
}
- lib 폴더 내부에 main.dart 파일을 열고, TaskProvider를 등록합니다.
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'providers/task_provider.dart';
import 'screens/tasks_screen.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => TaskProvider(),
child: MaterialApp(
title: 'To-Do App',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: TasksScreen(),
),
);
}
}
6. 앱 실행
- 터미널에서 flutter run 명령을 실행하여 앱을 실행합니다.
- 시뮬레이터나 연결된 디바이스에서 To-Do 리스트 앱이 실행되는 것을 확인할 수 있습니다.
- 할일을 추가하고 체크박스를 토글해보세요!
이제 Flutter로 간단한 To-Do 리스트 앱을 만들 수 있습니다.