Tomorrow Diary

old

사용자가 앱을 처음 실행했을 때, 로그인 화면이 나온다.

로그인 후 홈화면으로 이동한다.

홈 화면은 다음과 같은 구성으로 되어있다.


GitHub - rdbhagat999/fluttergetxcontactapp: Flutter firebase getx app

요거 참고해서 파일 구조 짜보기

lib/

main.dart : void main(), GetMaterialApp이 들어있음.

routes.dart : get.toNamed을 사용할 수 있도록 GetPage()들을 설정.

bindings/

bindings.dart : 다른 바인딩 파일들을 export 해줌.

root_screen_bindings.dart : Get.put()으로 root screen의 컨트롤러들을 바인딩.

controllers/

controllers.dart : 다른 컨트롤러 파일들을 export 해줌.

auth_controller.dart : Auth 관련 기능들(sign-in, sign-out, register 등, service로 연결)

diary_controller.dart : Diary 읽고 쓰기 관련 기능들(CRUD)

utils/

utils.dart : dialog, snackbar, drawer 등 띄움.

mixins/

mixins.dart : 다른 mixin 파일들을 export 해줌.

print_log_mixin.dart : 개발과정에서 디버깅할 때 사용.

models/

models.dart : 다른 모델 파일들을 export 해줌.

user_model.dart : 유저 모델 정의(아이디, 이메일 등)

diary_model.dart : Diary 모델 정의(Today, Tomorrow Diary 각각 제목, 시간, timestamp, author, 등등)

services/

services.dart : 다른 service 파일들을 export 해줌.

auth_service.dart : Auth 서비스. controllers에서 데이터를 던져주면 Firebase와 통신

user_service.dart : createUser를 할 때 같이 실행해서 DB에 쌓이게.

diary_service.dart : controllers에서 데이터 던져주면 Firestore과 통신.

views/

views.dart : 다른 view 파일들을 export 해줌.

root_screen.dart : GetX로 전부를 감싸주고 Get.find<AuthController>().user?.uid 여부에 따라서 LoginScreen() 또는 HomeScreen()으로 이동.

login_screen.dart

register_screen.dart

home_screen.dart

tmr_diary_screen.dart : 내일의 일기 screen, 첫 생성 및 수정을 같은 screen에서.

td_diary_screen.dart : 오늘의 일기 screen, 첫 생성 및 수정을 같은 screen에서.

add_todo_screen.dart : To-do List screen, 첫 생성 및 수정을 같은 screen에서.

opensource_screen.dart : 오픈소스 정보 띄워주는 screen

mypage_screen.dart : 마이페이지 screen

widgets/

widgets.dart : 다른 widget 파일들을 export 해줌

submit_button_widget.dart : 완료, 작성 등등 버튼 위젯

add_button_widget.dart : +버튼 위젯

serve_widget.dart : 달력 밑에 위치해서 내일의 일기, 오늘의 일기, Todo List 띄울 위젯

todo_list_widget.dart : To-do List 위젯

achievement_widget.dart : 업적 위젯

forms/ : form 관련 위젯들 모음.

validator.dart : validator

single_line_text_form_field.dart : 한줄짜리 text form field

multi_line_text_form_field.dart : 여러줄짜리 text form field

single_line_form.dart : login, register등에서 쓰일 폼

multi_line_form.dart : diary 적을 때 쓰일 폼

wish_list_form.dart : 위시리스트 폼 (시간 미포함)

todo_list_form.dart : to-do list에 쓰일 폼 (시간 포함)

emotion_form.dart : 기분(감정) 표현할 때 쓰일 폼

승운이의 디자인 쪽집게 강의