Bluecherry Version 3 client
Developer information
1min
technical details the code uses provider https //github com/rrousselgit/provider for state management because it is widely known by flutter community, doesn't bring any unnecessary complexity to the codebase & is scalable/stable enough most changenotifier s are available as singletons, though de coupled from each other this is important to handle things like loading app configuration before runapp , handling background notification button actions & few other asynchronous operations performed outside the widget tree by having singletons, we are able to avoid a strict dependency on the buildcontext & do certain things in a more performant way current source tree has following files lib │ ├───api \[api wrapper around bluecherry dvr server ] │ └──api dart │ └──ptz dart \[api related to pan tilt zoom controls] │ ├───l10n \[tranlations] │ ├───models \[model classes to serve & bind type safe data together in various entities ] │ ├───device dart │ ├───event dart │ ├───layout dart │ └───server dart │ ├───providers \[core business logic of the application ] │ ├───desktop view provider dart \[stores, provides & caches desktop camera layout] │ ├───downloads provider dart \[manages events downloading and progress] │ ├───events playback provider dart \[caches data about the events playback view] │ ├───home provider dart \[stores, provides & caches data about the home page] │ ├───mobile view provider dart \[stores, provides & caches mobile camera layout etc ] │ ├───server provider dart \[stores, provides & caches multiple dvr servers added by the user ] │ └───settings provider dart \[stores, provides & caches various in app configurations & settings ] │ └───update provider dart \[manages app updates and app status ] │ ├───utils \[constant values, helper functions & theme related stuff ] │ ├───constants dart │ ├───extensions dart │ ├───methods dart │ ├───storage dart │ ├───theme dart │ ├───video player dart │ └───window\ dart │ ├───widgets \[ui/ux & widgets used to display content ] │ ├───firebase messaging background handler dart \[handles in app notifications, snoozing, thumbnails etc & other firebase related hooks ] ├───firebase options dart \[auto generated firebase configuration ] └───main dart \[entry point of the application ] feel free to send any pull requests to add any features you wish or fix any bugs you notice