This project demonstrates how to build a Server-Driven User Interface (SDUI) using Flutter and Firebase Remote Config. The app dynamically fetches UI configurations from Firebase Remote Config and renders the UI based on the server-provided JSON data.
- Dynamic UI Rendering: Fetch UI configurations from Firebase Remote Config and render them dynamically.
- Firebase Integration: Uses
Firebase Remote Config,Firebase Authentication, andFirebase Core. - State Management: Implements
flutter_blocfor managing app state. - Dependency Injection: Uses
get_itfor dependency injection.
- JSON Response could have been converted custom modular dart classes, currently using Json Decoded response due to limited time.
- Fixed Response JSON Schema across all modules.
- FallBack mechanism if JSON couldn't be parsed.
- Cache responses to save unnecessary APIs.
- Create new firebase project or utilise existing one.
- Under
Build>>Remote Config. - Add new Parameter and give a name
dashboard_screen - Select the data type to be
JSON - Add a default value to the key, here a
JSONobject - Save and Publish the response
- This repository majorly focuses on achieving the SDUI and not on look and feel of the app.
- I've not binded many parameters originally planned for this repository.
App Theme,Dashboard,Login&Logouthas been integrated with bare minimum fields.
- I genuinely feel its going to be difficult for devs to extend modules overtime, when app needs to be scalled.
- We may encounter run-time errors, could've been caught over pure client-side development process.
- The app only becomes available if there's internet, complete offline mechanism as an option gets ruled out.
- Complete dependency over manual layout of components, instead of Interactive
Builders. - Inaccurate initialization of
controllers,subscriptions&listeners.