제안
패키지 선택과 두 팀이 함께 정해야 할 것을 정리했습니다.
패키지 선택과 이유
| 용도 | 패키지 | 이유 |
|---|---|---|
| 상태·구조 | flutter_riverpod, riverpod_generator | 지정하신 Riverpod 기반 MVVM. contract의 값을 app이 덮어쓰는 방식으로 두 팀을 나눌 수 있습니다 |
| 모델 | freezed, json_serializable | 지정하신 불변 모델. 서버 응답을 그대로 모델로 옮깁니다 |
| 화면 이동 | app의 라우터를 따름 | 라우터는 app 하나만 소유합니다. 기능은 경로만 내보냅니다 |
| 서버 호출 | app이 주는 클라이언트 | 토큰 갱신과 재시도를 한 곳에서 처리합니다 |
| 지도 | 미정 — 아래 참고 | — |
| 차트 | fl_chart | 공고에서 언급하셨고 월간 그래프·막대에 충분합니다 |
| pdf, printing | 국세청 양식 운행일지. 한글 글꼴을 PDF에 넣어야 합니다 | |
| 엑셀 | excel | 무료 라이선스. 유료 라이선스 패키지는 쓰지 않습니다 |
| 위치 | geolocator | 공고에서 언급하셨습니다 |
| 사진 | image_picker, image_cropper | 영수증 촬영·앨범 선택·자르기 |
| 도식 지도 | flutter_svg | 실제 지도가 아닌 17개 시도 도형이라 SVG가 맞습니다 |
지도 SDK
아직 정해지지 않았다고 하셨습니다. 기능 패키지가 지도 SDK를 직접 부르지 않고 contract의 지도 인터페이스를 거치게 두면, 나중에 지도를 바꿔도 기능 코드는 그대로입니다. 국내 주소·주차장 정보가 중요하면 국내 지도 SDK가 유리합니다.
최소 버전
iOS 15 이상, Android SDK 21 이상을 지원하신다고 하셨습니다. 패키지마다 요구하는 최소 버전이 달라 착수 시 목록을 대조해 드립니다.
무엇이 완료되어야 성공인지
- ·첫째, 합칠 때 재작업이 없는가. 매주 병합하며 그때그때 확인합니다
- ·둘째, 떼어낼 수 있는가. 기능 하나를 내부로 가져가도 다른 기능이 바뀌지 않아야 합니다
- ·셋째, 발주사 개발팀이 이어받을 수 있는가. 기능별 검증용 앱과 빌드·통합 가이드로 확인합니다
- ·넷째, 한 앱처럼 보이는가. 디자인 토큰과 공통 부품을 같이 써야 합니다
- ·다섯째, 서버와 맞물리는가. 오류·재시도·빈 화면이 합의한 대로 나와야 합니다
통합 방식 요약
- ·app이 라우터·세션·API 클라이언트·FCM 수신을 소유하고, 기능은 경로와 처리기만 등록합니다
- ·기능 패키지는 서로를 참조하지 않고 contract와 ui_kit만 참조합니다
- ·공유 부품(타임라인·차트)은 ui_kit에 두어 한쪽을 떼어내도 다른 기능이 바뀌지 않습니다
- ·1주차에 빈 화면을 먼저 붙여 합치는 길을 뚫고, 매주 금요일 병합합니다
- ·기능별 검증용 앱으로 app 없이도 따로 돌려볼 수 있게 합니다
정해야 할 것
| 항목 | 이유 | 저희 제안 |
|---|---|---|
| contract 소유 | 두 팀이 같이 고치는 유일한 곳 | 1주차 합의 후 변경은 양쪽 승인으로 |
| ui_kit 소유 | 디자인을 발주사가 하심 | 발주사 소유, 저희는 PR로 기여 |
| 리포트·운전 점수 분담 | 데이터와 부품을 공유 | 같은 쪽에서 맡기 |
| 차량 상태 전달 | 단속 알림의 주행 중 제한에 필요 | app이 contract로 제공 |
| 지도 SDK | 미정 | 인터페이스로 감싸 교체 가능하게 |
| 반경 500m 알림 | 서버에서 대상자를 고르는지 앱에서 고르는지 | 서버에서 고르고 앱은 수신만 |
| 영수증 OCR | 서버 로직으로 준비하셨다고 하심 | 앱은 촬영·업로드·결과 수정만 |
| 운행일지 양식 | 국세청 양식 버전 | 사용하실 양식 파일을 받아 그대로 맞춤 |
| 병합 주기 | 늦게 합치면 늦게 발견 | 매주 금요일 |
확인이 필요한 사항
- ·앱 라우터와 상태 관리 초기 구조가 어디까지 되어 있는지
- ·서버 API 명세가 기능별로 어디까지 준비되었는지
- ·단속·주차장 데이터 제공처와 형식
- ·내가 가본 곳의 방문 판정 기준
- ·파인케어 정비 이력 양식
- ·저장소 접근 권한과 브랜치 규칙
- ·디자인 확정본 전달 시점