クロスプラットフォームフレームワーク

最近スマホアプリ開発業界で「クロスプラットフォームフレームワーク」という
キーワードを良く耳にします。
簡単に言えば、複数環境(Android/iOS/Web等)を同時に開発可能なフレームワークを指します。
現在様々なフレームワークがあるのですが、その中でも最近注目を浴び始めているのが
Googleが開発したAndroid/iOSのアプリ開発を同時に行える「Flutter」です。

最大のメリットは開発者は一人で良いという点で、
実際は細かい実装になるとネイティブ(iOS/Android)技術が必要になる場面もあるのですが、
極端な話、1/2です。

この同時開発の考え方は10年前位からありました。
初期に出たものとして、2022年に公式サポートを終えるTitanium Mobileがあります。

titanium-mobile-logo

Titanium SDK サポート終了のお知らせ

JavaScriptでコーディングを行うため、Webアプリ開発者も参入しやすい技術の印象でした。
同じようにJavaScriptでコーディングを行うReact Native、C#のXamarin等もありますが、
Flutterはその中でも特に注目度が高いです。
以下GoogleTrendsで検索動向ですが、急上昇していることがわかります。

googletrends-flutter

 

なぜ注目度が高いのか?

公式サイトが充実

実際にFlutterのサンプルアプリをドキュメントに従ってみて作成した感触として、とにかく公式サイトの情報が充実している印象を受けました。
Flutter公式ページ

途中公式サイトの導入手順に詰まっても現時点(2021/11)でググればすぐに対処法は見つかり、
Flutterの基本的な開発手法を学ぶ情報は全てあると言っても過言ではないです。
日本語の書籍も買いましたが、ほとんど公式サイトに情報が記載されていますので、
参考程度に書籍を見返す程度でした。

問題の対処法がすぐに見つかる

上記で少し触れましたが、Flutterに関わる情報を検索すると、すぐに対処法が見つかります。
以下はStack Overflowで質問のタグ付けを集計したグラフですが、Flutterが急上昇しています。

stackoverflow-flutter

最新動向がすぐにわかる

動画でFlutterの最新情報が公開されており、
誰でも最新動向をキャッチアップしやすい状況になっています。

Flutter公式動画チャンネル

競合フレームワークと比較して利点が多い

以下記事にReact Nativeと比較したパフォーマンステスト結果があります。
Flutterはネイティブ(Swift/Kotlin)に劣るものの、
React Nativeと比較すると十分優位性がある点が伺えます。

FlutterとReact Nativeのパフォーマンス比較

開発言語の習得のしやすさ

FlutterはDartと呼ばれる言語で開発を行います。
Java等のオブジェクト指向言語を習得している開発者であれば、
基本的な考え方は同じであるため、習得がしやすいものとなっています。

将来性

最近Flutterで大きなアップデートがあり、Flutter2.0となりました。

Flutter2.0発表

このアップデートによって、Flutterはモバイル向けだけでなく、
デスクトップ、Webにも本格的に対応されることになりました。
極端に言えば、一つのコードで全ての環境向けに実装が可能ということです。
Microsoftやトヨタの採用事例も紹介されています。

また、GoogleのFuchsiaのUIもFlutterで開発されています。
FuchsiaはAndroid、Chromeに続くGoogleのOS開発で注目を集めています。

fuchsia公式

まとめ

クロスプラットフォームの中でも今最も熱いと思われるFlutterを紹介しました。
将来的にあらゆるOSでFlutterが動作することが予測され、
この技術がアプリ開発のマストになるかもしれません。

今後まとめていきたいAWSのAmplifyやGCPのFirebaseに代表されるmBaas等、
モバイルアプリケーション開発の技術的なハードルはどんどん下がってきていると感じます。
バックエンドエンジニアの出番が少なくなるかもしれません。