はじめに
ハイブリッドアプリを Cordova とか Capacitor なんかで作ることがあるんだけど、微妙に痒いところに手が届かないことが多くて、結局ネイティブを触ることになります・・・。
Capacitor は随分と簡単になったんですが、それでもプラグイン作るのは大変です・・・。
どうして僕はハイブリッドアプリを作るのかというと、Web屋なのと、今更2つのプラットフォームの言語を触りたくないからです。前者はまあいいとしても、後者が多分一番の理由です。
Web屋ならWeb屋らしくReactNativeやればいいんですけど、コンポーネントが決まったものしか使用できない感じがして、それならCapacitorでいいかなと。
でも最近はFlutterもいいかもしれないと思い始めてきました。
Googleお手製のクロスプラットフォーム開発ができます。最近はLinuxでも動くようになったみたいです。
既存のプログラムをFlutterで書き直すのは大変なので、WebView部分をそのままFlutterで動かせないものかと調べてみました。
FlutterのWebviewプラグイン
調べてみると以下の3種類があるみたいです。
- webview_flutter (標準)
- flutter_inappwebview
- flutter_webview_plugin
やりたいことはWebviewを表示しつつ、アプリ用に画面の一部分をFlutterで制御(フロートボタンの配置みたいな)ことをするには、webview_flutterかflutter_inappwebviewを使用するしか無いようです。
flutter_webview_pluginは画面全部持っていかれます。
webview_flutterとflutter_inappwebviewを試したところ、やりたいことはできそうな感じですが、致命的なバグがあります。
それは、Androidでは日本語入力できないんです。それに、webview_flutterでは更にselectのようなプルダウンメニューを使用するとアプリがクラッシュします。
嘘でしょ・・・。
webview_flutterはGithubのスターが13.3kもあるのに。使えないじゃんこれ。
まだ僕にはFlutterは早かったようです。この先、修正されるのを待つしか無いかな。issueを追いかけてたらもうすぐ修正される感じだし。
とはいえFlutterとDartは興味深いのでこれからも勉強したい。
コメント