This project is powered by Flutter >=2.8.0 and Dart >=2.18.0 <3.0.0.
Bloc (flutter_bloc) is used as an approach to state management, more precisely Cubit over Bloc from the same package. Bloc/Cubit handles Events
and changes States
. Screens and Widgtes subscribe to Bloc changes and send events (for Cubit, this is a direct method call).
#Screen Record
movie.mp4
#ScreenShot
The main packages used in the project:
adobe_xd: ^2.0.1
animate_do: ^2.1.0
bloc: ^8.1.0
cached_network_image: ^3.2.2
carousel_slider: ^4.1.1
cupertino_icons: ^1.0.2
dartz: ^0.10.1
dio: ^4.0.6
equatable: ^2.0.5
flutter:
sdk: flutter
flutter_bloc: ^8.1.1
flutter_screenutil: ^5.5.4
get_it: ^7.2.0
google_fonts: ^3.0.1
shimmer: ^2.0.0
main.dart | The entry point to the application. Here is the initialization of DioHelper, CacheHelper and registration of common Blocs and Sizer that are used throughout the application. |
bloc/ | Global Cubit and Bloc Observer. |
constants/ | All constants in the application. |
data/ | Model classes used in the application and data providers (local and remote) network(requests, responses). |
presentation/ | All UI elements used in the application. |
--- | --- |
presentation/router/ | Registration of all routes in application. |
presentation/screens/ | Application screens and Cubit. |
presentation/styles/ | Constants for UI such as colors, fonts, styles. |
presentation/view/ | Special UI elements of application. |
presentation/widgets/ | Common UI elements. |
--- | --- |