- 상품 목록 화면
- 주문된 상품 목록 화면
- 서비스 소개: 각 레스토랑에서 판매되는 음식들을 선택하여 주문할 수 있는 서비스
- 개발 인원: 2인(Flutter 1인, 서버 1인) - Flutter 개발 담당
- 개발 기간: 25.01.28 ~ (진행중)
- 개발 환경
- 최소버전: AOS 5, iOS 12
- 사용 툴
- Figma, Git
- 로그인, 자동 로그인
- 레스토랑 목록 조회
- 레스토랑 상세 조회
- 상품 목록 조회
- 레스토랑 평점 조회
- 장바구니 기능
- 주문 기능
로그인 | 자동 로그인 | 레스토랑 목록 조회 | 레스토랑 상세화면 조회 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
레스토랑 목록 새로고침 | 레스토랑 목록 무한스크롤 | 레스토랑 상세면 무한스크롤 |
---|---|---|
![]() |
![]() |
![]() |
장바구니 추가 | 장바구니 제거 | 주문하기 |
---|---|---|
![]() |
![]() |
![]() |
- Flutter
- Riverpod, Clean Architecture
- dio, retrofit, freezed, json_serializable
- flutter_secure_storage, go_router
- get_it, Injectable
- Hero Widget, badges, shimmer, debounce_throttle
- Clean Architecture 적용 및 DI 도입:
Clean Architecture
적용을 통한 명확한 책임 분리와DI
도입을 통한 객체간 의존성 최소화 - Riverpod을 활용한 상태 관리:
Riverpod
을 활용한 상태 관리를 통한 효율적인 의존성 주입과 위젯 트리에 독립적인 상태 관리 - BaseURL, API 키 보안:
BaseURL
과API 키
를 안전하게 관리하기 위해.env
에 관련 환경 변수 설정 - Throttle를 활용한 Cursor Pagination 성능 개선:
Pagination
동작 중3초
내 연속적인 불필요한 네트워크 방지를 위해Trottling
기법 도입 - Debounce를 활용한 장바구니 API 중복 호출 방지: 장바구니 추가/제거 중 일정 시간(
1초
)내 불필요한 중복된 장바구니 추가/제거 API 호출을 방지하기 위해Debouncing
도입 - Skeleton View와 Hero Widget 사용으로 UI/UX 개선:
Sekeleton View
와Hero Widget
사용하여 데이터 로딩 중 사용자에게 로딩 중이라는 사실을 알리는 사용자 경험을 개선 - Activity Indicator 구현: 사용자에게 백그라운드 작업이 진행 중임을 알리기 위해 구현
- Dio, Retrofit을 활용한 네트워크 통신 중앙화:
Dio
와Retrofit
패키지를 활용하여 네트워크 요청 통신을 구성하는 로직 모듈화 - Dio와 Interceptor를 활용한 토큰 갱신:
Interceptor
를 활용하여 토큰 만료를 추적하여 갱신하는 로직 구현 - Injectable를 활용한 Get_it DI 코드 자동화: Get_it
DI
코드 자동화 하기 위해Injectable
패키지 도입 - 안전한 토큰 저장을 위해 Secure Storage 도입: 안전한 토큰 저장을 위해
Secure Storage
패키지 도입 - Optimistic Response를 활용한 장바구니 UX 개선: 빠른 장바구니 사용자 경험 개선을 위해 Optimistic Response를 도입


✔ Feat : 새로운 기능의 추가
✔ Asset : Asset 추가
✔ Fix: 버그 수정
✔ Docs: 문서 수정
✔ Refactor: 코드 리펙토링
✔ Test: 테스트 코드, 리펙토링 테스트 코드 추가
✔ Chore: 빌드 업무 수정, 패키지 매니저 수정(ex .gitignore 수정 같은 경우)