КР
Следи за руками
- делаешь синглотон data класс Store (1), в котором будет весь стейт
- вешаешь на shared-prefs "тупой" листенер, который при каждом изменение вычитает все префсы в (1)
- делашь функию
fun <T> udpate(f : (Store) -> Pair<Store, T>): T
внутри который обратно сохранешь в прейсы
- во всем остальном коде измени/чтение префсов делаешь через update
Все: вместо 20 грязных функций, у тебя получается одна универсальная
Следующем шагом, начинаешь мапить еще и бд
Да и любые co-effect