navigating_dynamic (max_clean_arch)

Navigating Dynamic app with Clean Architecture in Flutter

The Navigating Dynamic app’s goal is to complete the task that allows users to view
and navigate through the content fetched from an API endpoint. The content is composed
by multiple articles related to a common topic (e.g., spaceship).

Task requirements (Nice to have).

  • Flat navigation : as every page represents the entry point for one particular topic, it
    makes sense for the navigation stack for that page to be preserved when the user
    switches to another page. As mentioned above, the pages are the “tabs” on the home
    screen of the app.
  • Links : as the links play the largest role in allowing the navigation for the user, you could
    make them more attractive by e.g. showing a preview of an item on long press.
    Transitions : because this challenge is all about routing and navigation, you could make
    the transitions more enjoyable, to support the user journey in this simple use case.
  • Colors : the provided images for each item are the richest piece of information. You could
    use them to e.g. color the UI for each article based on the image by extracting the most
    prominent colors.

Details of work.
The apps starts with dummy data that will allow focusing on the specific
problem of this challenge. When presenting finished app, app is possible
to feed different data sets into the app. Those sets of data will follow
the same schema as the sample data, but will not contain the exact same content.
App’s UI should allow user entering ID to fetch the content from a service API.

TODO

  • complete with tests
  • add logging library to trace calls of services, repos, use-cases, bloc events, …
  • fix issues that found by # flutter analyze
  • add GitHub actions for testing, formatting, and analyzing
  • show more detailed and localized messages of API failures (when no network or a bad server response, etc.)

Origin: max_clean_arch Clean Architecture + BLoC + RxDart + Injectable


Best regards,
Max Shemetov

March, 2022

GitHub

View Github

Entradas similares

Deja una respuesta