【 Flutter 】Flutter を 基礎 から 学習 ( ライブラリ ) part206 プラットフォームアクセスとPluginパッケージ

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は ライブラリ ( part206 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( ライブラリ ) part205 便利なパッケージ

引き続き、ライブラリについて学びます。

プラットフォームアクセスとPluginパッケージ

気を取り直して次のセクションに進むことにしました。

自分の実現したい機能が Dart packages (pub.dev) や巷に存在しない場合は自作するしかありません。
その場合はAndroid, iOSの両方で実装を行ってDartで統治するというふうしてパッケージを作成します。
Android, iOS両方の言語を知っている必要があるということですね。

この話題でTapiokaの話を思い出しました。

プラットフォームへのアクセス方法

プラットフォームへのアクセス方法(今回のサンプルの流れ?)は以下のように記述されています。

DartからSwift・Kotlinにデータを渡す(ネイティブの画面を立ち上げ、そこに表示)

Swift・KotlinからDartへ結果データを返す(遷移元であるFlutterの画面に結果を表示)

Swift・Kotolinの操作(ネイティブ画面を閉じる操作)によってDartで定義したコールバックが起動できるようにする(Flutterの画面にネイティブから渡した値を表示)

どこに記述すればよいやら・・・
P284のサンプルはいつものようにlib/main.dartに記述すればよさそうです。
P285のKotlinのソースコードは./android/app/src/main/kotlin/com/example/flutter_app/MainActivity.ktに記述するようです。


P285のSwiftのソースコードは./ios/Runner/AppDelegate.swiftだと思います。

今回はmain.dartを記述しておきました。
MethodChannelとはなんぞ?
調べると以下のように記述されていました。

Dartからプラットフォーム (Android/iOS等) のメソッドを呼び出すもしくは、プラットフォームからDartのメソッドを呼び出すためのAPIです。

Dartと各プラットフォームのメソッドとの橋渡しのような存在なんですね。

 

最後に

どのファイルにサンプルコードを実装すればよいか本書で説明してほしいです😇

今日はここまで!

参考

Flutterで動画編集ができるパッケージ、Tapiocaを作った話 – Qiita

Flutter MethodChannel APIの使い方 – Qiita