Flutterとは、Googleが提供するモバイルアプリフレームワーク。一度の開発でさまざまなデバイス・環境に対応したモバイルアプリを開発できるクロスプラットフォーム技術として注目を集めています。
目次
Flutterの基礎知識や特徴を解説します。
Flutterは、Googleが提供するモバイルアプリフレームワーク。モバイルアプリフレームワークとは、モバイルアプリの開発を支援するために作られたライブラリのことを指します。
モバイルアプリフレームワークは、一度のアプリ開発でAndroid/iOSをはじめとする異なるプラットフォーム上でプログラムを動かすことができるクロスプラットフォーム技術として注目を集めています。
一般的なネイティブアプリ開発では、Android/iOSそれぞれに合わせた専用アプリが必要。しかし、Flutterは1度の開発工程であらゆるOSに対応できるため、開発期間やコストを削減できます。
Flutter開発には、Dartという言語が用いられます。Dartは、JavaScriptの問題点を改善し、置き換えるための言語として、2011年にGoogleによって開発されました。
JavaScriptがブラウザスクリプトとしての地位を確立したことや、Dartの競合言語であるMicrosoftのTypeScriptがGoogle社内の標準言語に採用されたこともあり、Dartの普及は進みませんでしたが、Flutterの普及にともない再び注目が集まっています。
JavaScriptを置き換えるという当初の目的は果たせなかったものの、現在のモバイルアプリ開発において欠かせない言語になっています。
Flutterが注目を集める理由は、従来のモバイルアプリ開発が抱えていたさまざまな問題に対処できる点。開発効率やコストパフォーマンスが高いことも、近年のアプリ開発に導入されている大きな要因になっています。
また、Flutterは対応できる開発環境の多さとUIデザインの作りやすさという2つの観点からエンジニアやデザイナーの支持を集めています。
Flutterの対応できる環境の多さは、しばしば競合のフレームワークReact Nativeと比較されます。
・ReactNativeが対応しているOS
Android/iOSのみ
・Flutterが対応しているOS
Android/iOS/Web/Windows/macOS
また、Flutterを活用することで、プラットフォームに依存しない共通のUIデザインの作成が容易に作成できます。React Nativeの場合、OSごとにネイティブUIを使う必要があります。
Flutterが開発の効率化やコストパフォーマンスといった点において注目を集めていると説明しましたが、実際にFlutterを導入することでどのようなメリットが得られるのでしょうか。それぞれ詳しく解説します。
モバイルアプリフレームワークであるFlutterは、従来のネイティブアプリ開発と異なり、一度の開発でさまざまなOS(Android/iOS/Web/Windows/macOS)に対応することが可能です。
つまり、それぞれのOSごとの専用アプリを開発する手間が省けるため、開発期間や費用を削減できます。
Dartは言語の中でも普及率が低く、習得しているエンジニアは多くありません。しかし、DartはJavaScriptを置き換えるためその設計を踏襲して作られた言語であるため、JavaScriptに触れた事のあるエンジニアであれば習得しやすい言語です。
ホットリロード機能が搭載されていることもFlutterならではの特徴です。
ホットリロードとは、プログラムを変更した際にすぐにUIに反映させることができる機能のこと。これにより、通常のアプリ開発で発生する変更箇所の確認にかかる手間が大幅に削減できます。
FlutterはGoogle推奨のマテリアルデザインを採用しており、ユーザーが直感的に操作できるUIデザインを簡単かつ自由度高くカスタマイズできます。
マテリアルデザインとは、Googleが提唱したデザインの設計、手法、技術の総称。Googleはマテリアルデザインを用いてスマートフォンやタブレットなどのあらゆるデバイスで統一感のあるデザインを取り入れることにより、ユーザーがストレスの少ない操作感を実現できると考えています。
一方で、Flutterにはデメリットもあります。開発を検討する際の注意点として事前に確認しておきましょう。
Flutterの特色として、異なるOSの開発を一度に行えると説明しましたが、それぞれのOSごとに独自に搭載されている機能に関しては、個別に開発する必要があります。
また、OSアップデートの際にはネイティブアプリの場合と異なり、最新版のリリース後にその対応することになるため、素早く対応するのが難しいのも難点です。
Flutterは比較的歴史の浅い新しいフレームワーク。また、Dartを書けるエンジニアも他の言語と比較した際にあまり多くありません。そのため、開発に際して即戦力となってくれるエンジニアを確保しづらい可能性があります。
また、新しいフレームワークであるため、オープンソースライブラリの数も他と比較して少ない点もデメリットといえるでしょう。
社内にFlutterやDartに精通したエンジニアがいない場合や、ノウハウが蓄積されていない場合は、Flutter開発の実績が豊富な外部企業に委託することを検討してみてください。
Flutterを用いたアプリ開発事例を厳選して紹介します。
ほぼ日は、2021年6月末より動画コンテンツサービス『ほぼ日の學校』を提供しています。
「ほぼ日の學校」は2018年1月に古典を学ぶ場として誕生。講義の幅を広げるとともに、より多くのユーザーが利用できるサービスとして、スマホアプリをリリースしました。
アプリ開発に際し、iOS・Andoroidの双方に対応が可能なクロスプラットフォームであるFlutterを採用。仕様変更に強いアジャイル型の開発を採用し、2週間単位のスプリントを設定してPoCを繰り返し、ブラッシュアップしていきました。
アプリリリース後、バラエティに富んだ講師陣が贈る多種多様なテーマの講義ラインナップに注目が集まり、既存のほぼ日ファン層はもちろん、新規ユーザー層からも高評価を獲得しています。
★事例について詳しくはこちら
老舗電子楽器メーカーのローランドはリズム感・テンポ感が身に付く音楽ゲームアプリ「Rhythmeal(リズミール)」を開発。
既存の音楽ゲームとは異なり、一拍の間に刻むリズムをユーザーの感性に合わせて自由にアレンジできる仕様が特徴的なゲームです。
開発面では、今後の拡張性を考慮してマルチプラットフォームへの対応が可能なFlutterでの開発を実施。入念な技術調査を行ったのちにモックアップを製作してPoCを繰り返すことで、音楽ゲームの核となるレスポンス性を高める調整を行ないました。
リリース後、ユーザー評価も好評で、楽器の購入に到るまでの隙間を埋めるような新規顧客層へのアプローチ手法として期待を高めています。
★事例について詳しくはこちら
建機・農機メーカーのクボタは、販売代理店のサービスエンジニア向けに提供する3Dモデル・ARを活用した故障診断アプリ「Kubota Diagnostics(クボタ ダイアグノスティックス)」を開発。
従来の故障修理では、マニュアルの膨大な情報から該当箇所を探し出す工程に多くの時間を要していました。解決策として、エラーコードや不具合症状を入力することで自動的に点検箇所や修理方法が表示されるシンプルな故障診断フローを構築。
開発面では、拡張性を鑑みて、マルチデバイスへの対応が可能なFlutterを採用。独自のCMSを構築し、ログとユーザーからのフィードバックを蓄積させることで、今後の診断フローの整備や故障余地につながるさまざまな情報を収集できるようにしました。
★事例について詳しくはこちら
大手旅行会社のJTBは、これまで店舗やWEBでの旅行販売が主力でしたが、2022年5月に「JTBアプリ」をリニューアルし、アプリからの予約が急拡大しています。
モンスターラボは、同社のアプリリニューアルを支援しました。新アプリには、旧アプリにはない、①国内旅行・海外旅行の検索、予約 ②予約旅行内容の確認 ③JTBとのメッセージ送受信 ④ポイント確認などの機能を新たに搭載。
また、本アプリはよりスムーズかつ効率的なアプリの開発・運用を目指し、Flutterを採用しました。さらにアジャイル開発手法のひとつスクラムを取り入れることで、迅速な新サービスのマーケットインを実現。モンスターラボは現在もアプリの改善や追加機能の実装を支援しています。
★事例について詳しくはこちら
Flutterは開発期間・費用の削減が可能です。また、ホットリロード機能、GoogleのマテリアルデザインをUIに組み込めるため開発を効率的に進めることができます。
モンスターラボは、約20年にわたるサービス・プロダクト開発実績から得られたデジタル領域の知見や技術力を活かし、デジタルプロダクト開発事業を展開しています。
先端テクノロジーに対応した高度なIT人材があらゆるプラットフォーム上での開発を支援します。アジャイル開発とDevOpsによる柔軟な開発進行や、国内外のリソースを活用したスケーラブルな開発体制の構築も可能です。 また、リリース後の保守運用や品質向上支援まで伴走可能です。
モンスターラボが提供するサポートの詳しい概要は以下リンクをご確認ください。