この記事ではマルチデバイス開発の、スマホ開発において、Flutterが良い理由について簡単に説明したいと思います
ちなみにFlutterとは、ひらひらと飛ぶ、ときめくという意味があるようです。
まず アプリの、Android 版が必要になりました
海外では Android の利用率がやっぱり8割程度あるようなイメージです。
海外では、所得が低い人は当然 Android になります。
しかし、日本では所得が低い人でも、高い携帯電話料金に支えられて電話番号を変えることにより、実質、月額0円で iPhone を手に入れることが可能です。
ですので日本には所得によらず iPhone を持つことができます。
しかし海外ではそうではありません。
圧倒的な利用者数のユーザーに、使ってもらうためにも Android でもリリースすることが必要になりました。
それでクラスプラットフォーム での開発が可能なものを探しました。
もともとこのクロスプラットフォームには、フェイスブックの開発した、リアクトネイティブ(https://reactnative.dev/)や、モニカ(https://ja.monaca.io/)
とか数々の使えなくなってしまって、消えたプロジェクトがたくさんあります。
まだ消えてないけど、実質使えない。
ですから,非常に慎重に選択することが大切です。
結論から言うとFlutterしかないということです。
その理由を以下に示したいと思います
Flutterは JavaScript に似たDartという言語をつかいます。
TypeScriptはjavascriptの欠点を補って、型をもたせたり色々と便利になります。しかし最終的には、コンパイルしてJavaScriptを出力します。
JavaScriptの本来持つ、欠点まで修正できるわけではありません。
それで、スマホの上で動かすならJavaScriptで無くてよくないか?ということで、グーグルはDartという言語を開発しています。オラクルのJAVAが権利料払えと、喧嘩になったこともあり、グーグルはJAVAからの脱却を目指しています。グーグルの作るスマホのアプリは、Flutterを利用しているそうです。
そのため、Flutterのバージョンのアップの度に、言語仕様から機能の見直しが行われるので、大変魅力的です。
nilを許容しない言語仕様になっていて、バグを未然に防ぐこともできます。
カメラや GPS センサーなどは本来 スマホが持っているデバイスを使うことが望ましいです
これはFlutterのプラグインという機能によって、デバイスの機能を使うことができることもわかりました
LIVE 2 D や Vtuber のためのカメラセンサーなどを利用する場合、iOSネイティブアプリの方がデバイスの性能を十分に引き出す事が可能です。
しかし通常のアプリであれば、デバイスに依存する、機能をフルに必要とはしません
フラットはオープンソースですべてのソースコードを読むことができます
一方Swiftは、一部そうではありません
また Web 上に公開されているプラッタのリファレンスは、もきちんと管理されています
またチュートリアルやサンプルそして公式の YouTube チャンネルもあり学ぶのに非常に効率的だと感じました
公式サイト
パケージマネージャー
Flutterスタイルガイド
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#lazy-programming
ドキュメント
https://pub.dev/packages/dartdoc
npmのように、パッケージを検索するサイトもあり、そこでは高品質なパッケージをを探すことができます
Stack Overflow のように品質の基準に基づいて、ポイントが付くようで人気度と合わせて、どのパッケージが良いかもすぐに理解できます
こうしたことも考えてこれからはFlutterによる iOS や Android アプリの開発が主流になると思います。