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
DrawerFooterWidget
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
Google
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