🐡

flutterで自作のWidgetをコピペしないで自分で流用する方法

2020/11/30に公開2

答え: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