아이폰환경에서 개인 로그인 정보 및 일정 데이터를 Firebase로 관리해주는 프로젝트
- 프로젝트 기간 : 23.02.06 ~ 23.02.12 (1주)
- 소개
Dragon |
---|
Github |
날짜 | 구현 내용 |
---|---|
23.02.06 | 로그인 및 회원가입 View - UI 구성 |
23.02.07 | 일정리스트 및 일정데이터 View - UI 구성 및 데이터 저장 구현 |
23.02.08 | 기본 로그인 및 회원가입 기능 구현 SNS를 통한 로그인 기능 구현 아이디+비밀번호 로그인 또는 SNS 로그인시 Firebase에 유저정보 저장 구현 |
23.02.09 | Firebase에 Collection 생성 및 데이터 읽기&업데이트 기능 구현 일정 데이터 저장시 날짜정보 필수 입력하도록 사용자 안내 구현 |
23.02.10 | 일정 데이터 접근시 읽기/편집모드에 따른 기능 분리 구현 전체적으로 디테일 및 동작 개선 |
23.02.12 | 일정시간과 관련된 동작 구현 - 일정 생성시 종료일자가 시작일자 이후로 설정할 수 있게 구현 - 오늘날짜가 저장된 일자와 동일할 경우 하이라이트 표시 (지났을 경우. 회색표시) 구현 - 일정리스트를 가까운 날짜순으로 정리 Code 정리 및 앱 동작 최종 검토 프로젝트 README 작성 |
회원가입&로그인 | 카카오 로그인 | 페이스북 로그인 |
데이터 생성 | 데이터 삭제 | 데이터 읽기&편집 |
완료/진행/예정 일정 구분 | 계정구분 데이터 로드 | 날짜 확인 후 시간별 저장 |
[PersonScheduler]
├── Info.plist
├── Resource
│ ├── Assets.xcassets
│ └── LaunchScreen.storyboard
├── Source
├ ├── App
│ │ ├── AppDelegate.swift
│ │ └── SceneDelegate.swift
│ ├── Model
│ │ ├── Extension
│ │ │ ├── JSONDecoder +.swift
│ │ │ ├── JSONEncoder +.swift
│ │ │ └── UITextField +.swift
│ │ ├── Mode.swift
│ │ ├── Protocol
│ │ │ ├── AlertPresentable.swift
│ │ │ ├── DataSendable.swift
│ │ │ └── UserInfoSendable.swift
│ │ └── Schedule.swift
│ └── Scene
│ └── Main
│ ├── CreateUserInfo
│ │ └── CreateUserInfoViewController.swift
│ ├── List
│ │ ├── ListViewController.swift
│ │ ├── ScheduleInfo
│ │ │ ├── ScheduleInfoViewController.swift
│ │ │ └── View
│ │ │ └── ScheduleInfoView.swift
│ │ └── View
│ │ ├── ListTableViewCell.swift
│ │ └── ListView.swift
│ ├── MainViewController.swift
│ └── View
│ └── NormalLoginView.swift
└── README.md
- MVC 아키텍쳐를 사용하여 구현
- CocoaPods를 사용하여 외부라이브러리 관리
- Controller
- MainViewController
- 로그인 화면으로 기본적인 아이디+비밀번호 로그인 또는 SNS 로그인 가능
- 계정이 없을 경우 회원가입 화면으로 이동
- 로그인 화면으로 기본적인 아이디+비밀번호 로그인 또는 SNS 로그인 가능
- CreateUSerInfoViewController
- 회원가입 화면으로 기본적인 아이디+비밀번호 생성 가능
- ListViewController
- 일정 리스트 화면으로 간소화된 일정 데이터를 보여주거나 일정을 추가 가능
- ScheduleInfoViewController
- 일정 데이터를 생성&읽기&편집 모드에 따라 데이터 관리 가능
- MainViewController
- View
- NormalLoginView
- 기본적인 아이디+비밀번호를 입력하는 TextField와 커스텀 가능한 버튼으로 구성된 View
- ListView
- 일정 리스트 정보를 보여주는 TableView와 일정 추가 버튼으로 구성된 View
- ListTableViewCell
- 일정 정보를 간소화하여 TableView에 올라가는 Cell
- ScheduleInfoView
- 일정의 전체 데이터를 보여주는 View
- NormalLoginView
- Model
- AlertPersentable
- Alert 생성을 간소화하고 Alert을 관리하는 Protocol+Extension
- DataSendable
- 화면간의 일정 데이터를 전달하는 Protocol
- UserInfoSendable
- 화면간의 계정 데이터를 전달하는 Protocol
- UITextField + Extension
- 프로젝트에 맞춰 커스텀된 UITextField 기능을 담은 Extension
- JSONDecoder + Extension
- 프로젝트에 맞춰 커스텀된 JSONDecoder 기능을 담은 Extension
- JSONEncoder + Extension
- 프로젝트에 맞춰 커스텀된 JSONEncoder 기능을 담은 Extension
- Schedule
- 일정 데이터의 전체 항목을 담은 Struct
- Mode
- 로그인 또는 회원가입 모드구분, 데이터 생성&읽기&편집 모드구분
- AlertPersentable