- Viewcontroller holds the main tableview
- AddViewController holds the view to add a new item
- Viewmodel is shared between them
- Dataservice just writes to user defaults
- I used swift combine to learn a bit more, but I'm more familiar with RxSwift. Good learning experience, thanks