I mean exposing (possibly `suspend`) functions and...
# splitties
l
I mean exposing (possibly
suspend
) functions and properties that define the user interface using only types that have no dependency on platform, so not even
Ui
from Splitties. That is platform agnostic user interface and you could implement that
interface
with a chat UI or a VUI (voice) if you wish, the rest of the code would accept it. I've been experimenting this a lot since the end of last year, and it works really well. Still, I dislike to repeat myself writing boilerplate to hook a CheckBox, a Switch, a list or whatever so standard UI component to just do I/O with the user. That's why I'd like to abstract the user I/O part (like asking a choice between two things, a set of things, asking multi-selection, etc), and have actual backing components (like a CheckBox, a dropdown menu) implemented in a mulitplatform way or in a per-platform way, or a mix, whatever fits and whatever becomes possible. CheckBox and Switch would respect the same contract because they produce the same input and output for "business logic", and you can implement it with two exclusive buttons, or whatever you want really. This should bring the ability to swap design systems with ease and compare different designs (which ultimately, affect the user experience and the user perception), so that you don't need to have Facebook resources to do so or to do A/B testing on UI. Also, supporting a new platform, or a new sub-platform would become possible in a reasonable amount of time without redoing your UI from scratch. I guess that's similar to MVP or MVVM, in a multiplatform way, with suspend functions, but I'm unfamiliar with those acronyms.