Dart, gestión de estados con Provider, streams, inyección de dependencias, repositorios, unit testing, widget testing