Skip to content

Build #5 – Friday, Jan 29 #5

@darwingr

Description

@darwingr

High Points

  • User can click complete on an activity, triggering state change (theme and content)
  • Progress on activities persists for current session (implemented as HashMap Repo)
  • Widget tests (2) on activity completion behaviour
  • PlatformApp DRY: themes, styles, routes/navigation
  • 3 Basic UseCases/Blocs Implemented
  • Dependency Injection fixes: UseCases, Presenters & Repositories

What's Next

  • PWA deployment, weekly
  • Progress on activities persists between sessions
  • Continuing migration to Null safety (flutter beta?)
  • Full move to Bloc/Cubit UI state management (delete the old)
  • Add content for (3) more Bingo Cards
    • Bingo Card selection screen
    • Continue from most recent card UseCase
    • Bottom of screen navigation bar
  • About Us page
  • Blog roll (web view)

Later

  • UseCases extend and implement BLoCs
    • Don't want use-case implementation to depend on 'bloc.dart'
  • Scoring display on PlayCard screen
    • confetti animation for achievements
  • Blog roll (native)
    • The Feed: aggregation of blog, issued bingo cards & others
  • Public scoreboard (submitting and viewing)
    • By card, by given username/persona
    • Builtin social media incentives (i.e. sticker next to public score
  • Improved content & experience for on card activities
    • linked content
    • Other types of activities specifically for the newer bingo cards being added

Target Tasks/Issues

  • Analyzer errors:
    • Fix missing (implicit) type declaration on Entity#id, make explicit. Already solved, just commit.
  • Null safety — See Issue Migrate to Null Safety #6 Migrate to Null Safety
    • Locally migrated CSV package
  • App Theme
    • Set theme for PlatformApp in main app widget
    • Set attributes on ThemeData class in theme.dart from predefined constants in same file
    • Figure out using MaterialTheme for setting missing fields from CupertinoTheme
    • Structure & organize common theme data vs platform data
    • Extract all current widget uses of Color, TextTheme, NavBar icons, etc, to constants in theme.dart
      • Set the Material primarySwatch
      • Set the Material accentColor?
    • Remove all assigning of ThemeData, will be accessed implicitly via the theme set for the App widget
    • Change all widgets deviating from the appTheme to access/modify via Theme.of(context).
      • bingo_card_view:42
    • Set all theme constants to private and check any missed widgets
    • Delete unused imports of theme.dart
    • Extract style theme from concerns of widget tree with the division package

Domain has unit tests:

  • bingo_card_test
  • on_card_activity_test bingo_card_activity_test

Cubits / Presenters / BLoCWidgetBuilders to be Implemented

  • Click to complete activity, with changing button text
  • Activity details screen data
  • Activity tile colour change with status

UseCases/Events to be Implemented

Along with equivalent BLoC Widgets (aka controllers).

  • Get activity summaries for card on BingoCardScreen as lib/usecases/bingo_card/bingo_card_usecase.dart
  • Click activity tiles on BingoCardScreen as lib/usecases/activity_details_usacase.dart
  • Click 'Complete' button for activity on ActivityDetailsScreen as lib/usecases/activity_progress_usecase.dart
  • [ ] Click '<' (go back) navigator on ActivityDetailsScreen no use case required

Progress Persistence

  1. Widget mod and choose colour for button status (2 screens)
  2. Extend the ViewModel with flag for status
  3. Add Cubit action and connect with use case & presenter
  4. Progress domain objects (with unit tests)
  5. Progress repository returning aFuture<Either<ActivityProgress, Error>>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions