Office Furniture Store app is a design implementation of Office Furniture Store app designed by Jonatan
There are four different implementations: 1: GetX version , 2: Cubit version 3: Bloc version , 4: Provider version
• You can access GetX version from master branch
(here)
• You can access Cubit version from cubit branch
(here)
• You can access Bloc version from bloc branch
(here)
• You can access Provider version from provider branch
(here)
Preview | List screen | Detail Screen | Cart Screen |
---|---|---|---|
• Three different implementations
• Display items on list item screen
• Display detail of each item on detail screen
• Hero animation for images when navigate fron list screen to detail screen
• Fade animation for list views
• Select quantity and color for each item
• Display item images using carousel slider
• Add desired item to favorite screen
• Add or delete item to cart
• Clear all itms from cart screen
• Automatically delete single item from cart by set its value to zero
• Real-time calculation of total price in the cart screen
• State management with GetX | cubit | bloc
📂lib
│───main.dart
│───📂core
| │──app_asset.dart
| │──app_color.dart
| │──app_data.dart
| │──app_extension.dart
| │──app_style.dart
| └──app_theme.dart
└───📂src
│────📂model
│ │──bottom_navigation_item.dart
| │──furniture.dart
| └──furniture_color.dart
└────📂view
| │───📂screen
| | |──cart_screen.dart
| | |──favorite_screen.dart
| | |──home_screen.dart
| | |──intro_screen.dart
| | |──office_furniture_detail_screen.dart
| | |──office_furniture_list_screen.dart
| | └──profile_screen.dart
| │───📂widget
| | |──bottom_bar.dart
│ | |──cart_list_view.dart
│ | |──color_picker.dart
│ | |──counter_button.dart
│ | |──empty_widget.dart
│ | |──furniture_list_view.dart
│ | |──fade_in_animation.dart
| | └──rating_bar.dart
└────📂controller
└──office_furniture_controller.dart
📂lib
│───main.dart
│───📂core
│ │──app_asset.dart
│ │──app_color.dart
│ │──app_data.dart
│ │──app_extension.dart
│ │──app_style.dart
│ └──app_extension.dart
└───📂src
│────📂data
│ │───📂model
│ │ |──bottom_navigation_item.dart
│ │ |──furniture.dart
│ │ └──furniture_color.dart
│ │───📂repository
│ │ └──repository.dart
└────📂presentation
│ │───📂screen
│ │ |──cart_screen.dart
│ │ |──favorite_screen.dart
│ │ |──home_screen.dart
│ │ |──intro_screen.dart
│ │ |──office_furniture_detail_screen.dart
│ │ |──office_furniture_list_screen.dart
│ │ └──profile_screen.dart
│ │───📂widget
│ │ |──bottom_bar.dart
│ │ |──cart_list_view.dart
│ │ |──color_picker.dart
│ │ |──counter_button.dart
│ │ |──empty_widget.dart
│ │ |──furniture_list_view.dart
│ │ └──rating_bar.dart
│ │───📂animation
│ │ └──fade_in_animation.dart
└────📂business_logic
└───📂cubit
└──📂furniture
|──furniture_cubit.dart
└──furniture_state.dart
📂lib
│───main.dart
│───📂core
│ │──app_asset.dart
│ │──app_color.dart
│ │──app_data.dart
│ │──app_extension.dart
│ │──app_style.dart
│ └──app_extension.dart
└───📂src
│────📂data
│ │───📂model
│ │ |──bottom_navigation_item.dart
│ │ |──furniture.dart
│ │ └──furniture_color.dart
│ │───📂repository
│ │ └──repository.dart
└────📂presentation
│ │───📂screen
│ │ |──cart_screen.dart
│ │ |──favorite_screen.dart
│ │ |──home_screen.dart
│ │ |──intro_screen.dart
│ │ |──office_furniture_detail_screen.dart
│ │ |──office_furniture_list_screen.dart
│ │ └──profile_screen.dart
│ │───📂widget
│ │ |──bottom_bar.dart
│ │ |──cart_list_view.dart
│ │ |──color_picker.dart
│ │ |──counter_button.dart
│ │ |──empty_widget.dart
│ │ |──furniture_list_view.dart
│ │ └──rating_bar.dart
│ │───📂animation
│ │ └──fade_in_animation.dart
└────📂business_logic
└───📂bloc
└──📂furniture
|──furniture_bloc.dart
|──furniture_state.dart
└──furniture_event.dart
📂lib
│───main.dart
│───📂core
│ │──app_asset.dart
│ │──app_color.dart
│ │──app_data.dart
│ │──app_extension.dart
│ │──app_style.dart
│ └──app_extension.dart
└───📂src
│────📂data
│ │───📂model
│ │ |──bottom_navigation_item.dart
│ │ |──furniture.dart
│ │ └──furniture_color.dart
│ │───📂repository
│ │ └──repository.dart
└────📂presentation
│ │───📂screen
│ │ |──cart_screen.dart
│ │ |──favorite_screen.dart
│ │ |──home_screen.dart
│ │ |──intro_screen.dart
│ │ |──office_furniture_detail_screen.dart
│ │ |──office_furniture_list_screen.dart
│ │ └──profile_screen.dart
│ │───📂widget
│ │ |──bottom_bar.dart
│ │ |──cart_list_view.dart
│ │ |──color_picker.dart
│ │ |──counter_button.dart
│ │ |──empty_widget.dart
│ │ |──furniture_list_view.dart
│ │ └──rating_bar.dart
│ │───📂animation
│ │ └──fade_in_animation.dart
└────📂business_logic
└───📂provider
└──📂furniture
|──furniture_provider.dart
└──furniture_state.dart
I welcome and encourage all pull requests. It usually will take me within 48-72 hours to respond to any issue or request.
Name | Cubit version |
Bloc version |
GetX version |
provider version |
---|---|---|---|---|
flutter_bloc | ✔️ | ✔️ | ✖️ | ✖️ |
GetX | ✖️ | ✖️ | ✔️ | ✖️ |
provider | ✖️ | ✖️ | ✖️ | ✔️ |
flutter_hooks | ✔️ | ✔️ | ✖️ | ✔️ |
equatable | ✔️ | ✔️ | ✖️ | ✔️ |
smooth_page_indicator | ✔️ | ✔️ | ✔️ | ✔️ |
flutter_rating_bar | ✔️ | ✔️ | ✔️ | ✔️ |
simple_animations | ✔️ | ✔️ | ✔️ | ✔️ |
project |
---|
Japanese restaurant app |
Ecommerce app |