swarms/ideas/83-energy-efficient.md

60 lines
2.2 KiB
Markdown

## Preamble
Idea: 83
Title: Energy Efficient Status
Status: In Progress
Created: 2018-02-19
## Summary
A specific issue about the energy efficiency of different parts of Status (`status-go`, `status-react`, `desktop` (when running on a laptop battery).
## Swarm Participants
- Lead Contributor: @mandrigin (~25h)
- Contributor (Go): @feuGeneA
- Contributor (QA): @lukaszfryc (~10h/week)
## Product Overview
Energy consumption is a crucial part of the mobile experience, and even though it is related to performance, it is worth having a separate.
The end goal is:
- to provide a toolkit and guidelines to test energy efficiency of different parts of an app on different platforms;
- using this toolkit to fix the top battery drainers;
- notice regressions early by having tests in place.
### Goals
1. Create a BoK for Energy efficiency testing: https://github.com/orgs/status-im/projects/18
a. test apps are created for both Android and iOS
b. test cases are written and tools are created to measure the energy efficiency of both Status client (status-react+status-go) and tests apps (status-go exclusively).
c. tests are run on a regular basis
d. (stretch goal) tests are automated for both platforms
2. Fix obvious issues with energy consumption
https://github.com/orgs/status-im/projects/17
## Exit criteria
- We have test cases and tools to check the energy efficiency of `status-go` and `status-react` independently;
- We can notice regressions/improvements caused, e.g. by updating the version of `go-ethereum` or new features of Status;
- Top energy draining issues are identified and fixed.
## Success Metrics
KR:
(1) foreground energy consumption is < 120% of the apps in a similar class (messengers)
(2) background energy consumption is < 120% of the apps in a similar class (messengers)
## MVP(s)
MVP1 (docs & process): Create and integrate energy efficiency testing as a part of the release process (date: *Mar, 30*)
MVP2 (development): Create a low-power background mode for status-go (date: *Mar, 30*)
## Supporting Role Communication
## Useful Links
https://github.com/dgryski/go-perfbook
## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).