Write clean Viewmodels!

  1. Delegate responsibilies to respective owners rather than bulking one class.
  2. Use Dependency injection to minimise construction calls
  3. Define class easy to share across different viewmodels
    1. SDUI handlers – Action handler, Observer, Telemetry
    2. UserActionHandler
  4. ActionResponse<*> handlers
  5. UseCases
  6. Anaytics
  7. Payment controllers
  8. EventBus
  9. SharedFlow, StateFlow