iOS App. to Manage Working Time for WLB(Work/Life Balance)
출퇴근을 하면서 중요하다고 생각하는 정보 중 하나는 오늘 몇시부터 퇴근이 가능 하냐에 대한 정보이다.
해당 정보를 통해 그 이후의 출근 계획, 크게는 일주일의 출근계획을 세울 수 있기 때문이다
또한 이러한 전략은 일과 삶의 조화를 아름답게 이룰 수 있는 원동력이 되어준다
일과 삶의 아름다운 조화. Work Life Balance!
이 조화는 더욱 오랜 회사생활을 즐겁게 해줄 수 있다.
허나 iOS 기준, AppStore에 나와있는 어플들은 다양한 유연근무제 형식에 걸맞게 Config.를 하기 힘들고 정말 중요한 오늘 몇시부터 퇴근 가능에 대한 정보를 쉽게 보기 힘들다.
따라서 해당 App.을 제작해보기로 한다.
┌ ViewController.swift
│
├ DetailViewController.swift
│ └ EditDetailViewController.swift
│
└ SettingViewController.swift
앱 실행 시 첫 화면
출근 / 휴게 시작 / 휴게 끝 / 퇴근 의 근무 상태 변경 시 첫 화면의 Button을 눌러 상태 변경 실행
Detail 정보 표시 화면
금주 모든 근무 기록을 나타냄
각 Detail 정보 수정 화면
출근시간/퇴근시간/휴게시간 의 정보 수정 가능
사용자 별 근무 시간 설정 화면
해당 정보에 따라 정상출근완료/근태수정필요/지각 등의 출근 상태가 결정됨
근무 정보 DB는 복잡성을 요구하지는 않지만, 계속해서 DB를 Update 하므로 프로그램 충돌 시의 DB 보존이 가장 중요하다.
따라서 간편하고 트랜잭션과 원자성 동작을 지원하는 SQLite를 사용하였다.
Id | Commute | OffWork | LastAppUse | Rest | RealWorkedTime | WorkedTime | WeekDay | DayWorkStatus | SpareTimeToWork | IsWorking |
---|---|---|---|---|---|---|---|---|---|---|
CHAR(255) | CHAR(255) | CHAR(255) | CHAR(255) | Int | Int | Int | Int | Int | Int | Int |
2021.03.02 | 09:18:03 | 19:59:24 | 19:59:24 | 2405 | 32455 | 38460 | 3 | 3 | 111545 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
Id | WeekLeastHour | WeekLeastMin | DayGoalHour | DayGoalMin | DayLeastHour | DayLeastMin | DayLeastStartHour | DayLeastStartMin | LastUpdatedDate |
---|---|---|---|---|---|---|---|---|---|
Int | Int | Int | Int | Int | Int | Int | Int | Int | CHAR(255) |
0 | 40 | 0 | 8 | 0 | 4 | 0 | 15 | 0 | 19:59:24 |
Id | NonWorkHour | NonWorkMin | NumOfNonWorkFullDay | NumOfNonWorkHalfDay |
---|---|---|---|---|
CHAR(255) | Int | Int | Int | Int |
2021.03.week1 | 12 | 0 | 1 | 1 |
... | ... | ... | ... | ... |
- 시간 경과 시, bar update
- 출근 Color Status
- 요일별 출근 Detail 표출
- 선택 요일에 대한 출근시간/퇴근시간/휴게시간 수정 (당일 수정 시, 퇴근 전일 경우 퇴근시간 수정 불가)
- 사용자 별 출퇴근 관리 설정 변경 (해당 시간에 따라 정상출근/근태수정필요/지각 및 퇴근가능시간 결정)
- 토/일 자동 비근로 설정
- 토/일 제외, 일주일의 마지막 근로일만 '퇴근가능시간' 으로 진행. 나머지는 '퇴근목표시간'
- DayGoal 말고 SpareTime으로 퇴근시간 계산시, DayGoal 초과시 퇴근시간 수정 필요
(완료) Detail 탭에 금주 총 근무시간 / 휴게시간 display