I've done a fair bit of searching here and elsewhere, but haven't found a clear answer...
I have two apps which will share considerable functionality and access the same cloud data, but are still quite distinct. A similar public example that comes to mind is Uber: one app for the driver, one app for the rider. They apps share a lot of core functionality. I think it does not makes sense to have one monolithic app that presents two significantly different UXs and sets of functionality based on the type of user... Or does it?? What are the main advantages/disadvantages to this approach?
I'm not totally sure, but to me it seems more sensible to have two separate apps which import a "core" library that contains the elements common to both apps (some data models, some UI widgets, etc.). How does one build the two apps in such a situation? Can I build both from a single Flutter project, or do I need separate projects for each app?
The solution I arrived at was to use the melos package to set up my project in a mono-repo.
This allows me to have separate top-level directories (within my project/repo) for each of my apps and for each of my libraries. A top-level configuration file for melos lists each of them, and melos enables the libraries to be 'visible' to the apps. It's a slick and simple solution that met my needs.