olmps / memo

Memo is an open-source, programming-oriented spaced repetition software (SRS) written in Flutter.
BSD 3-Clause "New" or "Revised" License
1.82k stars 158 forks source link

Adds sksl to reduce animations stutter #167

Closed ggirotto closed 3 years ago

ggirotto commented 3 years ago

Should both .json files be committed? Shouldn't these shaders be generated whenever any Dart code changes?

Ideally we should have integration tests that run the app and re-generate these JSONs every time the code changes, as suggested in Flutter article. Using these pre-compiled JSONs is a short term solution that may be replaced in the future with these integration tests (or even with a Flutter solution)

matuella commented 3 years ago

Ideally we should have integration tests that run the app and re-generate these JSONs every time the code changes, as suggested in Flutter article. Using these pre-compiled JSONs is a short term solution that may be replaced in the future with these integration tests (or even with a Flutter solution)

This seems relatively easy to do, and I'm not really inclined to add a version that require a manual change every time a new version is required - and we are aware on how to improve it, meaning, already creating a high priority issue to it. I'm open to do this myself if you want to.

ggirotto commented 3 years ago

This seems relatively easy to do, and I'm not really inclined to add a version that require a manual change every time a new version is required - and we are aware on how to improve it, meaning, already creating a high priority issue to it. I'm open to do this myself if you want to.

I'm afraid that these integration tests will be very tricky because we'll basically need integration tests for the entire app animations (scroll the main collections list, open a deck details, close deck details, start a deck, answer a question, etc...).

Basically we need to cover all actions that we've inside the app today. Although I've never implemented integration tests, it seems at least toilsome to do so, and we have other priorities (server) that have higher priority right now.

Do you have something in mind like a MVP for these tests? I think that we can start using a manual approach like the one proposed by this PR and create a project to start implementing these tests and lather remove these animation JSONs