This app demonstrates an architecture to integrate functional programming techniques in mobile apps.
It demonstrates:
-
An immutable, rooted object
AppData
that contains all the data needed by the app. -
An object that manages transactional changes to that data called
AppRepo
-
ViewModels
are created from theAppData
-
UI objects refresh their view models when the data changes
-
Services also modify the data
Platform independent code is separated into a Core
library.
This code was described in detail in my NDC Oslo 2016 talk.