Baguette
Baguette is a Flutter framework which facilitate easy and fast mobile application development. This framework also comes with some core libraries to facilitate SOLID, MVVM and CLEAN development.
Objectives
Baguette contains advance UI/UX components and other development components. This framework reduces unnecessary cases to focus only on feature development.
Example:
MediaViewerWidget shows image and video from local and remote url.
PermissionManager handles whole flow and removes intermediate cases.
Libraries
Let's take a look at some core libraries to get a glimpse on how baguette framework works.
@ Plugin
Plugin is a dependency injection library. Plugins can contain child plugins and access accordingly.
Using PluginManager we can access global instances from anywhere. This manager comes with other fundamental managers which we can use directly.
Example:
IServiceManager serviceManager = PluginManager().getPlugin<IServiceManager>() as IServiceManager;
IUserService userService = serviceManager.getUserService();
@ Environment
EnvironmentManager controls environment of the application. Using this manager we can change Themes, Languages, Base URLs, Firebase, etc. on the fly. EnvironmentManager requires environment.json in assets/jsons directory.
Example:
IEnvironmentManager environmentManager = PluginManager().getPlugin<IEnvironmentManager>() as IEnvironmentManager;
environmentManager.setMode(EnvironmentManager.MODE_DEVELOPMENT);
@ Event
EventManager helps us to fire and capture event with data from module to module without requiring direct dependencies. Only subscribers receive events.
Example:
IEventManager eventManager = PluginManager().getPlugin<IEventManager>() as IEventManager;
Event event = Event(AuthenticationServiceKey.LOGOUT_USER, data: null, error: null);
eventManager.fire(event);
@ MVVM
MVVM contains and maintains fundamental life-cycles libraries. ViewWidget contains MVVM. This extra MVVM layer is necessary due to Flutter technology. These libraries allow SOLID, MVVM and CLEAN development easily.
@ Screen
Screen contain libraries which allow us to create fullscreen views and define routing system. We can create screens with Drawer, Toolbar, Navigation Bar and Tabs and navigate from anywhere without requiring direct dependencies. These libraries also contain every life-cycle related callbacks.
Example:
IScreenManager screenManager = PluginManager().getPlugin<IScreenManager>() as IScreenManager;
screenManager.load(NavigationKey.USER_ACCOUNT);
@ Misc.
Other mentionable libraries are: Token, Account, Media, TimeSlot, Messenger, Firebase, etc.
Integrations
Add these following lines in pubspec under dependencies.
baguette:
git:
url: ssh://git@bitbucket.org/leavyco/lv-leavyco-baguette-flutter.git
path: baguette
ref: master
Credits
Copyright (c) 2023 Leavy.co
All rights reserved.
Libraries
- Account
- AccountManager
- AccountManagerKey
- ActivityUtils
- AlertAction
- AlertUtils
- AnalyticsManager
- AppUtils
- AtlasMarker
- AtlasView
- AtlasWidget
- AtlasWindow
- AvatarMode
- AvatarWidget
- baguette
- BankCard
- BankCardCVVMask
- BankCardCVVValidator
- BankCardDateMask
- BankCardDateValidator
- BankCardFormView
- BankCardFormWidget
- BankCardHolderMask
- BankCardHolderValidator
- BankCardNumberMask
- BankCardNumberValidator
- BankCardView
- BankCardWidget
- BICMask
- BICValidator
- BlockMode
- BlockWidget
- BorderWidget
- BoxWidget
- ButtonWidget
- CacheManager
- CalendarMarker
- CalendarMarkerMode
- CalendarMarkerView
- CalendarMarkerWidget
- CalendarTileView
- CalendarTileWidget
- CalendarView
- CalendarWidget
- CanvasWidget
- CardWidget
- CheckoutBillingAddress
- CheckoutManager
- CheckoutPhone
- CheckoutSecurity
- CheckoutSecurityScreen
- CheckoutSecurityScreenWidget
- CheckoutTokenRequest
- CheckoutTokenResponse
- CheckView
- CheckWidget
- Choice
- ChoiceUtils
- CollectionView
- CollectionWidget
- ColorMode
- ColorUtils
- ColorWidget
- ConnectivityUtils
- ContextManager
- Conversation
- ConversationListView
- ConversationListWidget
- ConversationScreen
- ConversationScreenWidget
- ConversationView
- ConversationWidget
- CounterView
- CounterWidget
- Country
- CountryUtils
- CrashScreen
- CrashScreenWidget
- CrashUtils
- Currency
- CurrencyUtils
- DataCallback
- DateMask
- DateTimeExtension
- DateTimeUtils
- Dimens
- DrawerHeaderWidget
- DrawerItemWidget
- DrawerWidget
- DummyAccountUtils
- DummyMessengerService
- DummyMessengerUtils
- EmailValidator
- EmptyValidator
- EndlessFetcher
- Environment
- EnvironmentManager
- EnvironmentScreen
- EnvironmentScreenWidget
- EnvironmentView
- EnvironmentWidget
- ErrorCallback
- Event
- EventCallback
- EventManager
- FileExtension
- FirebaseAnalyticsManager
- FirebaseManager
- FirebaseNotificationsManager
- FirebaseUploadManager
- FirebaseUtils
- FutureCallback
- FutureUtils
- GenericError
- GeocodeUtils
- GestureWidget
- GridViewUtils
- HttpCallback
- HttpManager
- i18n
- IAccountManager
- IAnalyticsManager
- IBANMask
- IBANValidator
- ICacheManager
- ICheckoutManager
- IContextManager
- IEnvironmentManager
- IEventManager
- IFirebaseManager
- IHttpManager
- ikons_icons
- ILocationManager
- ImageUtils
- IMediaProvider
- IMessengerManager
- IndexCallback
- INetworkManager
- INotificationsManager
- IPermissionManager
- IPlacesManager
- IPlugin
- IPluginManager
- IPreferencesManager
- IScreenManager
- ITokenManager
- IUploadManager
- Language
- LanguageUtils
- ListExtension
- Location
- LocationCallback
- LocationManager
- Log
- MaskText
- MaterialWidget
- MaxMin
- MediaProvider
- MediaProviderCallback
- MediaProviderSettings
- MediaScreen
- MediaScreenWidget
- MediaUtils
- MediaViewerView
- MediaViewerWidget
- MediaVolume
- Member
- Message
- MessageListView
- MessageListWidget
- MessageView
- MessageWidget
- MessageWriterView
- MessageWriterWidget
- MessengerKey
- MessengerManager
- MessengerScreen
- MessengerScreenWidget
- MessengerUtils
- MimeUtils
- Model
- NetworkCallback
- NetworkManager
- NotEmptyValidator
- NotificationsKey
- NotificationsManager
- OutlineWidget
- PasswordValidator
- PermissionManager
- Place
- PlacesCallback
- PlacesManager
- Plugin
- PluginManager
- PopupAction
- PopupUtils
- PreferencesManager
- Proficiency
- ProficiencyUtils
- RateView
- RateWidget
- Screen
- ScreenKey
- ScreenManager
- ScreenPolicy
- ScreenRouter
- ScreenWidget
- SheetAction
- SheetUtils
- SnackAction
- SnackUtils
- StoreUtils
- StringExtension
- StripeWidget
- TabsAlignment
- TabsScreen
- TabsScreenWidget
- Tag
- TagListView
- TagListWidget
- TagUtils
- TagView
- TagWidget
- TextWidget
- TileWidget
- TimeSlot
- TimeSlotsView
- TimeSlotsWidget
- Token
- TokenManager
- TokenManagerKey
- TokenUnit
- ToolBar
- ToolBarUtils
- TouchWidget
- UnitTests
- UpdateScreen
- UpdateScreenWidget
- UploadManager
- UriCallback
- UriUtils
- Validator
- Value
- Values
- View
- ViewModel
- ViewWidget
- VisibilityMode
- VisibilityWidget
- WebError
- WebWidget