🐡
flutterで自作のWidgetをコピペしないで自分で流用する方法
答え:packageを使います
flutterでアプリ開発を行う場合、GUIコンポーネントとしてWidgetクラスを継承したコンポーネントを使う必要があり、基本的にはWidgetを組み合わせて作っていきます。
開発が進んでいくと、
「ああこのコンポーネント他のプロジェクトでも使いたいなあ」
「でもファイルのコピペじゃメンテナンスが後で大変だなあ」
「pub.devに公開するほどのものでもないんだよなあ」
と思うことが出てきます。
私がそうです!
何かいい方法はないかなあと調べていたら、packageという仕組みを使うことで実現できることがわかりました。
まずpackageテンプレートのプロジェクトを作ります。
最初に、自作Widgetを蓄えるプロジェクトをターミナルやコマンドプロンプトで以下のコマンドで作ります。
flutter create --template=package MyWidgets
この場合、MyWidgetsというプロジェクトが生成されます。
プロジェクトの中身はこんな感じです。すでに、MyWidgets.dartというファイルが生成されていて、中にサンプルでCalculatorクラスが格納されています。
今後このプロジェクトの中に自作Widgetを蓄えていきます。
他のプロジェクトから呼び出します。
次に、MyWidgetsプロジェクトを他のプロジェクトから呼び出します。
呼び出し側のプロジェクトのpubspec.yamlに以下の記述をします。
dev_dependencies:
flutter_test:
sdk: flutter
MyWidgets:
path: /(MyWidgetsプロジェクトが存在するパス)/MyWidgets
記述をしたらpub getしてください。基本的にはこれでOKです。
呼び出し側プロジェクトでimportします。
呼び出し側プロジェクトでは、
import 'package:MyWidgets/MyWidgets.dart';
と呼び出しをすることで、先ほど自動生成されていたCalculatorクラスが利用できるようになります!
意外と簡単にできるので、開発がこれでとても捗ると思います!
Discussion
むしろ健全かなと思います!