{"id":16234415,"url":"https://github.com/devrnt/bachelor-thesis-store-it","last_synced_at":"2026-05-04T21:36:40.929Z","repository":{"id":102836544,"uuid":"224511321","full_name":"devrnt/bachelor-thesis-store-it","owner":"devrnt","description":"Bachelor thesis - Source code from the different approaches for State Management in Flutter - Store It","archived":false,"fork":false,"pushed_at":"2020-01-10T15:50:19.000Z","size":1585,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-14T05:15:29.573Z","etag":null,"topics":["android","dart","flutter","ios","school"],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devrnt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-27T20:24:28.000Z","updated_at":"2020-01-10T15:50:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"6c68f891-0dd3-4f10-9db3-820072a2f145","html_url":"https://github.com/devrnt/bachelor-thesis-store-it","commit_stats":{"total_commits":43,"total_committers":1,"mean_commits":43.0,"dds":0.0,"last_synced_commit":"2071ffc96c2c795b03df3fe8418dc4d8d394ab4a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrnt%2Fbachelor-thesis-store-it","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrnt%2Fbachelor-thesis-store-it/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrnt%2Fbachelor-thesis-store-it/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devrnt%2Fbachelor-thesis-store-it/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devrnt","download_url":"https://codeload.github.com/devrnt/bachelor-thesis-store-it/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247801170,"owners_count":20998331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dart","flutter","ios","school"],"created_at":"2024-10-10T13:15:55.703Z","updated_at":"2026-05-04T21:36:35.701Z","avatar_url":"https://github.com/devrnt.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mobile Flutter Application\n\nThis repository contains the source code for the bachelor thesis [https://github.com/devrnt/bachelor-thesis](https://github.com/devrnt/bachelor-thesis)\n\n## Information\nThis repository contains the following state management approaches:\n* Scoped Model\n* Provider\n* BLoC with RxDart\n* Redux\n* MobX\n\nThe base code, containing widgets like a themed button and ainput field, can be found on the `master` branch. \nFor every approach, listed above, is a branch created. Switch to the desired state management branch and run the Flutter application.\n\n```\nflutter run\n```\n\n## Demo\nProduct list        |  Product details\n:-------------------------:|:-------------------------:\n![Demo](demo/mock-home_screen.png)  | ![Demo dark theme](demo/mock-details_screen.png)\n\nAdd product        |  Preferences\n:-------------------------:|:-------------------------:\n![Demo](demo/mock-add_product_screen.png)  | ![Demo dark theme](demo/mock-preferences.png)\n\n## Performance testing\n\nAttach a real device and run the following command from the root of the repo:\n\n```sh\nflutter drive --target=test_driver/app.dart --profile\n```\n\nThis will do an automated run-through of the app, and will save the output to files.\n\n* Look into to `build/walkthrough-*.json` files for detailed summaries of each run.\n* Look at `test_driver/perf_stats.tsv` to compare latest runs with historical data.\n* Run `Rscript test_driver/generate-graphs.R` (R must be installed) to generate\n  boxplots of the latest runs. This will show up as `test_driver/*.pdf` files.\n* Peruse the raw data file (used by R to generate the boxplots) by opening the\n  `durations.tsv` file. These files contain build and rasterization times for each frame\n  for every run.\n\nTo execute several runs at once, run the following command:\n\n```sh\nDESC=\"my change\" bash -c 'for i in {1..30}; do flutter drive --target=test_driver/app.dart --profile; sleep 1; done'\n```\n\nWith several identical walkthroughs it's possible to visually check variance between runs. Even with box plots,\nthese nuances get lost in the summary stats, so it's hard to see whether a change actually\nbrought any performance improvement or not. Running several times also eliminates\nthe effect of extremely bad luck, like for example when Android decides to update some app while\ntest is running.\n\n### Graphs\nTo generate the graphs with the R-script, the different tsv files should be merged into one big tsv file. The tsv file should contain every approach looped 30 times, with the description set to the approach. To keep things simple, copy and paste `durations.tsv` and `perf_stats.tsv` to the next approach (branch). \n\n## Experiment Results\nTo get all the results from every approach run:\n```sh\n./get_all_results.sh [amount_of_runs]\n```\nThe command defaults to 30 runs if no [amount_of_runs] is specified.\nThis command will execute the intergration tests [amount_of_runs] times for every approach","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevrnt%2Fbachelor-thesis-store-it","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevrnt%2Fbachelor-thesis-store-it","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevrnt%2Fbachelor-thesis-store-it/lists"}