Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a recommended way to use models and common files in multiple flutter projects?

I have two flutter projects, one is admin application and other user application. Both applications use many same models and classes, and common widgets.

Currently I am copying the model classes and widgets, to both projects, and when I need to change anything, I need to remember to change it in the other project too.

Is there any other method to do this? Should I create a custom package and import it in both projects? What would be the recommended way to do this?

like image 825
QasimSiddiqui Avatar asked Nov 04 '25 10:11

QasimSiddiqui


1 Answers

The conventional approach would be put your common code in a separate Dart package (that is, a separate directory with its own pubspec.yaml file and its source files in a lib subdirectory). Unless you want your package to be public, there is no need to publish your package to pub.dev.

Your other projects can then add that package as a dependency in their pubspec.yaml files. For packages not hosted on pub.dev, you probably will want to specify a local filesystem path to the package or to specify an URL to your own Git server. See the Package Dependencies documentation for more details.

Other approaches (that I don't recommend, but I mention for completeness):

  • Have your projects just import common .dart files by relative paths. However, navigating up multiple parent directories is very ugly.
  • In your projects' source directories, add symlinks that refer to the common code. Then you could import common files by relative path without needing to navigate up parent directories.
  • If you use separate source control repositories instead of a mono-repo, you could make each project consume common code as a Git submodule. Unlike the two approaches above, this would allow your different projects to use independent versions (the flipside is that that flexibility would be more work to maintain).
like image 154
jamesdlin Avatar answered Nov 07 '25 13:11

jamesdlin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!