Flutterを採用するメリットについて

2024 年 9 月 18 日 by sugakir

Flutterとは?

通常、モバイルアプリを開発するには、swiftでiOSを、javaやkotlinで
Androidを開発しますが、クロスプラットフォームで開発できるものも
存在します。
その一例がFlutterです。同じコードでiOS,Android,Windows,MacOSなど、
様々なプラットフォームで動かすことができます。
他にもReactNativeなど、クロスプラットフォーム開発が可能な技術も
ありますが、Flutterを触ってみて、採用するメリットをまとめました。

コミュニティについて

Flutterは、ご存知の方もいらっしゃるかもしれませんが、「Flutter大学」
という巨大なコミュニティが存在します。Flutter技術者がLTを実施したり
情報共有をする場として重宝されています。
また、その他でもGit Hubでプルリクエストが活発であったり、
全体的に言語のコミュニティが盛り上がっているので、開発の最中に
参考にできる材料が豊富で、開発しやすいです。
ReactNativeやKMMもクロスプラットフォーム開発の検討にあがりますが、
教育コストの面や、コミュニティの大きさ等で、Flutterを採用するのが
いいと感じました。

ライブラリについて

Flutterは、OS依存の処理(カメラ起動など)を実装する際、ネイティブな
コードの関数を利用するための接続用ライブラリが確立されており、
Flutterの中でSwift等で実装された関数を使用することが出来ます。

開発のしやすさについて

クロスプラットフォーム
はじめに上がってくるのはやはりこれですね。iOS,Androidの2ライン
あった開発を、1ラインで作成できるので、開発コストをぐんと下げる
ことが出来ます。

ホットリロード
これはReact Nativeも共通していると思いますが、ホットリロードに
対応しており、保存したコードがすぐにデバッグの画面に反映される
ため、開発スピードが早いです。
毎度ビルドしてデバッグを立ち上げなくても済むので、ストレスなく
開発することが出来ます。

OSS
Flutter(dart)がオープンソースの言語なので、中身までじっくり確認
することができ、言語理解が深まります。
プロジェクト独自でライブラリを作ったりする際も、既存のライブラリ
を参照できるのはとても助かりますし、内部にあるコードを活用して
実装出来るので、とても便利です。

レンダリングエンジン
Flutterのレンダリングエンジンはとても優秀なので、画面表示や
再レンダリングの時のパフォーマンスが非常に高いです。

UI
Flutterは、標準で用意されているマテリアルコンポーネントを採用して、
独自にカスタマイズできるので、簡単な改修で時代の変化に対応しやすい
というメリットがあります。一から用意することがないのも助かりますが、
標準のコンポーネントをカスタマイズ出来るのも非常に柔軟です。
簡単なコードでとても綺麗なアプリを作れるのは、開発者としては、
とても助かります。

パフォーマンステスト
Flutterを使うと、CI/CDプロセスも効率的に出来ます。
この言語はFlutter Dev Toolsを使うことで、カバレッジが取れます。
これによってパフォーマンステストが簡単に出来るので、動作確認ついでに
パフォーマンスも保証することが出来ます。

ハードの柔軟性
そのままでは難しいですが、C++等でFlutterエンジンをカスタマイズする
ことで、別ハードでも適用できる場合はあるそうです。
車載器や、独自のハードでも活躍できるので、とても柔軟性が高いことが
分かります。この使い方は非常にレアケースだと思いますが。。。

SnapShot Testing
フロントエンド側のUTで、画面を撮影して評価していくことがありますが、
Reg Suit等のツールと連携することで、ビジュアルリグレッションテストが
サクサク行えます。テストの正確性と迅速性が大きく改善されるので、
ぜひ取り入れたいところです。

まとめ

今回はFlutterについて様々な文献やセミナーを参考にして、メリットを
列挙してみました。もちろん筆者の体験も交えての意見なので、
他のプラットフォーム開発技術と全ての項目で比較してみたいものです。
モバイルアプリ開発にFlutterを採用してみてはいかがでしょうか???

タグ: ,

TrackBack