dhafinrayhan/dummymart
Riverpod, go_router, flutter_hooks 및 Freezed를 사용하는 예제 Flutter 프로젝트입니다.
- Stars
- 111
- Forks
- 19
- 최근 푸시(UTC)
- 2025. 3. 29.
- 프로젝트 상태
- 활성
기술 주제
사용 중인 의존성
의존성 목록 28 개
- dio
^5.8.0+1 - flextras
^1.0.0 - flutter
{"sdk":"flutter"} - flutter_gutter
^2.2.0 - flutter_hooks
^0.20.5 - flutter_native_splash
^2.4.5 - flutter_secure_storage
^9.2.4 - flutter_use
^0.0.4 - freezed_annotation
^2.4.4 - gap
^3.0.1 - go_router
^14.8.0 - hooks_riverpod
^2.6.1 - json_annotation
^4.9.0 - riverpod_annotation
^2.6.1 - shared_preferences
^2.5.2 - build_runner개발 의존성
^2.4.15 - custom_lint개발 의존성
^0.7.3 - flutter_launcher_icons개발 의존성
^0.14.3 - flutter_lints개발 의존성
^4.0.0 - flutter_test개발 의존성
{"sdk":"flutter"} - freezed개발 의존성
^2.5.8 - husky개발 의존성
^0.1.7 - json_serializable개발 의존성
^6.9.4 - lint_staged개발 의존성
^0.5.1 - riverpod_generator개발 의존성
^2.6.4 - riverpod_lint개발 의존성
^2.6.4 - shared_preferences_platform_interface개발 의존성
^2.4.1 - test개발 의존성
^1.25.15
순위
원본 README
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
README 펼치기 / 접기
DummyMart
An example Flutter project that uses Riverpod, go_router, flutter_hooks, and Freezed.
Check out the experimental use of macros here.
⚠ Important Notes
This project uses DummyJSON API. Please note that DummyJSON doesn't apply your changes when creating, updating, or deleting items. This project correctly implements those actions, but expect no data changes due to these API limitations.
You can run the app with --dart-define=MOCK_API=true flag to use the internal mocked API that mimics the original API behavior and does modify your changes in a session. If you're using VSCode, you can instead run the app with the "dummymart (mock API)" configuration.
Features
Each feature demonstrates certain functionalities that are commonly used in a CRUD app.
- Products: Basic "view all items" and "view item details" functionalities. Also implements "pull-to-refresh" mechanism.
- Todos: Full CRUD operations, including "add item", "edit item", and "delete item".
- Posts: More advanced read operations such as "search as we type (with debounce)" and "infinite scrolling".
The auth and router services allow functionalities such as "invalidate all data on logout" and "redirect screens based on the auth state".
Routes
Full paths for routes:
=> /
=> /login
=> /settings
=> /products
=> /products/:id
=> /todos
=> /todos/add
=> /todos/:id
=> /todos/:id/update
=> /posts
=> /posts/:id
=> /profile
Setup
- Run
flutter pub getto get dependencies. - Run
dart run build_runner buildto generate required files. You can also rundart run build_runner watchto generate files and let build_runner watch for changes and rebuild if necessary. - (Optional) Run
dart run husky installto setup git hooks on your machine.
Credentials
Use these credentials to login:
username: avat
password: avatpass
Or you can use any user credentials from https://dummyjson.com/users.
Screenshots
| View all todos | View a single todo | Add todo | Update todo |
| Login | Profile | Infinite scrolling | Search post |