An open source annotation tool built using dart and flutter framework.
The point of a structure is to make it easy to find stuff & make changes as new requirements arise. A good structure does this for both experienced and new developers.
-
core
:Contains App Services, Api Calls, Localization etc., All API, GPS data, Cache etc are fetched from here
config
- Contains all the configuration files for the app.localization
- Contains all the localization files for the app.routes
- Contains all the routes for the app.controllers
- All the globally used controllers for the app.theme
- Contains the global app theme data.
-
gen
: Contains Asset generated bundle -
meta
:Contains pages, widgets, utils etc that are common for multiple features. For example: a Custom Loading indicator, Error Pages, Get location function etc
widgets
- Contains globally used widgets for the app.utils
- Contains globally used utils for the app.models
- Model classes for the app.
-
views
:UI Screens having a separate controller assigned to each of them
view A
- Can be any screen Ex.home_screen
components
- Contains all the components for thescreen A
.controllers
- Contains all the controllers for thescreen A
.screens
- Contains all the views for thescreen A
, Ex. A page is having multiple tabstab A
- Can be any tab Ex.home_tab
components
- Contains all the components for thetab A
.controllers
- Contains all the controllers for thetab A
.
- Using latest stable version of Flutter
3.0.1
. - Use
lower_case_file_names.dart
. - Minimize use of stateful widgets.
- Use
const
for all constants. - Minimize use of
setState()
. - Use Named Routes for all the screens.
- Use line length
120
for dart files.
get
- State Management, Localization, Theming, etc.sizer
- Screen size utility for Responsive Design.dio
- To manage Http requests.google_fonts
- To have access to fonts.