본문 바로가기
반응형

Codelabs4

Flutter - 11. TodoList App (4) TodoList에 BLoC 패턴을 적용해보자. 전 포스팅에서 Database를 연동하는 작업을 마쳤었다. 문제는 UI를 그려내는 Widget에서 상태와 데이터 접근을 모두 하기 때문에 역할 분리가 제대로 되지 않았다. 상태가 복잡해질수록, 데이터가 많아질수록 Widget이 가지는 역할이 너무 많아지며, 관리가 점점 어려워지고 스파게티 코드가 될 수 있다. 이러한 문제를 해결하기 위해서 Android, iOS 진영은 MVVM, MVP, RIBs 등의 아키텍처 패턴, 클린 아키텍처 패턴들을 도입한다. 클린 아키텍처 패턴은 위와 같다. 이에 대한 상세한 내용은 생략하겠다. 이를 위한 포스팅은 아니니. 아무튼, 이러한 패턴 적용의 이유는 서로의 역할을 분리하고 의존성을 줄인다. 어떤 한 모듈에 변화가 생겨도 다른 모듈에 변화가 없거나 최소화하고, 유지보수성.. 2021. 1. 27.
Flutter - 10. TodoList App (3) Database를 연동해보자 (SQLite, sqflite) 화면 자체는 이전 포스팅와 다르지 않다. 현재까지의 작업은 앱을 종료하면 Todo Item들이 모두 사라진다. 런타임에만 저장하기 때문이다. 이번 포스팅은 SQLite 데이터베이스에 Todo Item을 저장하고 불러올 수 있도록 할 것이다. 작업 할 목록은 다음과 같다. sqflite, path_provider 패키지 추가 SQLite 데이터베이스 클래스 작성 데이터베이스와 상호작용을 DAO 클래스 작성 데이터베이스와 상호작용할 수 있도록 TodoModel 클래스 추가 구현 TodoListPage 수정 많아보이지만 별거 없다. 바로 고고씽! 1. sqflite, path_provider 패키지 추가 # pubspec.yaml name: ... description: ... ... dependencies:.. 2021. 1. 26.
Flutter - 9. TodoList App (2) Todo Item 추가하기 (AlertDialog, FloatingActionButton) 오늘 만들 화면은 위와 같다. 위 화면을 구성하기 위해 할일은 다음과 같다. FloatingActionButton 생성 Todo Item 추가를 위한 AlertDialog 생성 생성된 Todo Item을 추가하고 리스트를 갱신 어려운 것은 없으니 천천히 시작해본다. 1. TodoModel 작성 Todo Item을 표현하기 위한 TodoModel 클래스를 작성한다. // todo_model.dart class TodoModel { String _title; TodoState _state; final DateTime _createdTime; TodoModel(this._title, this._createdTime) { _state = TodoState.todo; } String getTitle() => _t.. 2021. 1. 25.
Flutter - 8. TodoList App (1) 기본 UI 구성하기 이전 포스팅에서 예고했던 대로, Flutter로 간단한 TodoList App을 만들어 볼 것이다. 이번 포스팅은 TodoListApp의 기본 UI를 구성해보도록 하겠다. 위와 같은 UI를 작성할 것이며, BottomNavigationBar의 아이템을 클릭하면 현재의 아이템도 변경되도록 작업 할 것이다. 위 UI를 기반으로 기능을 붙여나가는 방식으로 진행 할 것이다. 1. 루트 페이지 만들기 class TabItem { String _title; IconData _icon; TabItem(String title, IconData icon) { _title = title; _icon = icon; } String getTitle() => _title; IconData getIcon() => _icon; }.. 2021. 1. 18.