Standups
The beginnings of a composable architecture.
Modularisation Strategy
The code has been modularised to facilitate feature modules, thus a composable architecture (of features). A package named scrums-scene is an example of this. The strategy behind this was to develop smaller common packages that are shared accross modules.
- shared-resources
- service
- styling
- etc
Another module to include would be shared-userinterface
, which would host smaller UI-components for sharing between modules.
There's nothing particularly flashy about any of this. Just standard SOLID principles mostly. Internal logic has been preseved as much as possible requiring some retro-active modelling to promote a domain driven design.
Navigation
A very young and simple idea I had named nashy-navigation starts with the instantiation of NavigationLink
. A lazy view helps mitigate the pain of needing to provide a non-optional value up front. The second issue I was hoping to address was the double datasource issue, where you have to maintain both a model item and a boolean to trigger push. I don't have an elegant solution for this, other than just ecapsulating the logic in a view modifier, thus limiting the risk of error (sorry about the name I was trying to get it all done quickly).
Conclusion
There isn't really any difference between this and how Apple do it. This codebase is just a demonstration of what I do in my projects to manage the axiety of it all (excluding the navigation package, which is a new idea). I would still heavily depend on UITesting and this solution doesn't present any new ideas on how to tackle the text-to-speach dependency or duration of time problems. But it was fun having a play.