Version 2 log - lucianbc/ReceiptScan GitHub Wiki

7-03-2021

Intro

Version 2 of ReceiptScan is focused on migrating the old implementation in Jetpack Compose and Coroutines, with feature parity with version 1. This migration should solve some bugs from V1 and create a better experience overall, without weird UI behaviours. As a result of the migration, the app should be split in multiple modules.

The broad goals and roadmap is:

  1. Implement the full UI that works with dummy state and logic in Jetpack Compose;
  2. Split the old module in multiple modules so that the old logic can be reused in the Jetpack Compose module;
  3. Create a coroutine adapter and integrate the old implementation with the Jetpack Compose UI via coroutines;
  4. Put together the whole v2 app;
  5. Make some small/incremental changes (to be defined after the full product is put together);

Phase 1 - Jetpack Compose UI

The strategy for this part is driven by experimenting with Jetpack Compose. The first stage is to implement all screens with dummy data and bother with navigation after having all screens. In this way, navigation is only an afterthought, tackled after getting enough exposure to Jetpack Compose. Focus is on getting some screens done and then going back and finding UI abstractions to speed up development.

The broad tasks to be done are:

  • Home / Transactions - main screen;
  • Transaction view;
  • Pending / Drafts - where receipts are staged before being reviewed;
  • Transaction edit;
  • Categories list / picker;
  • Settings;
  • Exports index;
  • Exports flow;
  • Share transaction sheet;
  • Camera screen;
  • Navigation