今回は、アプリ開発で利用しているFlutter(フラッター)についてお話したいと思います。
Flutterって何?
大雑把に言うと、Flutter(フラッター)は、スマホアプリやパソコンアプリを作るための道具(プログラムの仕組み)です。Flutterでアプリを作ると言う事は、プログラミング言語は「Dart」を使うことになります。
通常、iPhone向けのアプリを作成するなら「Swift」、Android向けアプリを作成するなら「Kotlin」と言うプログラミング言語を使います。パソコン用のアプリの場合は、もっと色々なプログラミング言語を利用出来ます。
でも Flutter を使うと、1つのコード(プログラム)を書くことで、iPhoneもAndroidも、さらにはパソコンやWebサイト用のアプリまで作れてしまいます。まるで、ひとつの料理レシピで、いろんな国の料理が同時にできるようなものです。
外部パッケージの利用について
Flutterには、他の人が作成した機能(外部パッケージ)を利用する仕組みがあります。具体的な例を挙げるとおげんこキャットのうんこ平均回数やおしっこ平均回数のグラフ表示や、すべてのアプリで利用しているヘルプや利用規約などのWeb画面表示などです。他にもいっぱい色々利用しています。
これらの外部パッケージを利用する事で、開発工数がかなり削減する事が出来ます。なので、「こんな機能を実装したいな〜」と思った時は、先ずは利用出来るパッケージを探す事が必要となります。
外部パッケージのデメリット
外部パッケージを利用する事でかなり工数削減が出来るのですが、その代わりにデメリットもあります。
先ずは、他人が作成したプログラムなので自分ではメンテナンスは出来ません。バグを報告する仕組みはありますが、基本的にはパッケージの作成者が直してくれるのを待つしかありません。
一番の問題は、対象パッケージの開発が中止されてしまうことです。この先、一切のメンテナンスも行われない状態になってしまうと、自分のアプリのバージョンアップも出来ない状態になる可能性も出てきます。最悪、代替パッケージを探すか自作する事になってしまいます。
一度、この状況になってしまったことがあります。おげんこキャット、お使いブギー、おはようキャット、にゃんデイタイマーで利用していたffmpeg_kit_flutterと言うパッケージの開発が停止してしまいました。パッケージ作成者は、パッケージの内部で利用している技術に関するライセンスの問題で開発の継続を断念した様でした。このパッケージが使えないと各アプリから共有機能でSNSに画像をアップする機能が利用出来なくなってしまいます。代替パッケージが無かったので、結局、自力で必要な機能を作成しました。具体的には、写真や動画にPNGファイルを合成する機能を実装しました。この部分の機能は、Flutterで作成するのではなく、iPhone向けにSwift、Android向けにKotlinでそれぞれのコードを書く必要がありました。かなり大変でしたが、自分に必要な機能のみを実装したので最終的にはプログラムの実行速度もアップしました。(後日談ですが、しばらくしてffmpeg_kit_flutter_newと言うパッケージが公開されていました。後継バージョンとして有志の人が作成した様です。しかし、ライセンスの問題が解決された訳では無い様でした。)
今回は以上です。今時、スマホアプリをそれなりに作るとなると1つのプログラミング言語では無理な様です。最近は、ChatGPTもかなりプログラム作成が正確に出来る様になってきたので、とても助かっています。もう少しすれば、「人間がアプリを作る時代も終わるかな。」って感じですね。

