사용자가 앱을 처음 실행했을 때, 로그인 화면이 나온다.
로그인 후 홈화면으로 이동한다.
홈 화면은 다음과 같은 구성으로 되어있다.
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 : 기분(감정) 표현할 때 쓰일 폼