darwingr / xmoves

Quarantine inspired healthy activities app for Kennedy Nangle, 2020 micro-grant recipient from StFX's Frank McKenna Centre for Leadership
https://www.xmoves.ca
Other
0 stars 0 forks source link

Build #4 – Friday, Jan 22 #3

Open darwingr opened 3 years ago

darwingr commented 3 years ago

High Points

What's Next

Later

Target Tasks

Injectors on Main & Tests:

Architecture So Far

These only represent what's needed for Friday to have a working/running app on iOS. They are ugly and not representing target architecture. The Strictest pieces are:

  1. BLoC widgets only know about (1) ViewModels (states from BLoCs), (2) BLoC events, (3) other screens/routes, (4) their own subtree of Widgets. Implement directly in the screen widgets.
  2. UseCases won't know Repository/DataSource Implementations.
  3. NO RESTRICTIONS yet on anything between UseCases and BLoC. Keep the BLoC files under lib/usecases/ for now for convenience.

Screens have ViewModels which are returned as BLoCStates by the respective BLoCBuilder Widgets. BLoCBuilder Widgets have a BLoC it invokes on build and events, child widgets that use the extracted ViewModel. BLoCs will call a UseCase by handing it a RequestModel and a Presenter as part of an Event which will inject the Presenter with a ResponseModel?

Extra Questions

  1. Should a ViewModel (state) return ID numbers, used for request/responses, as raw integers or convert them to strings as well?
  2. Should each tile on the BingoCardScreen have its own BLoC instance or should each tile get it's data from an aggregate on the BingoCardBLoCState object?
  3. How should the tile grid building be conducted given the raw viewModel data (strings & flags) of the BingoCardBLoCState?