Just wanted to leave my five cents here.
We're also building an application with TCA and did consider how to organize our folder/file structure. In the end, we decided to go down a similar path as the one you're proposing. However, we split up the "ViewModel" file into a ViewState
, ViewAction
, ViewEnvironment
and Reducer
based on the Modularity section on PointFree.
App
⎣__Module
⎣__Main
. ⎣__MainView
. ⎣__MainViewState
. ⎣__MainViewAction
. ⎣__MainViewEnvironment
. ⎣__MainReducer
⎣__SignIn
. ⎣__SignInView
. ⎣__SignInViewState
. ⎣__SignInViewAction
. ⎣__SignInViewEnvironment
. ⎣__SignInReducer
I think keeping these components together in one folder makes it easier to understand which parts are pieced together and would recommend such a folder structure over the one chosen for the small case studies. Such a folder structure is also common practice for UIKit application and has proven to scale for bigger and even modularized applications, so I see no clear reason why not to adopt it.