Flutterを活用したモバイルアプリ開発の注意点とは
皆さん、こんにちは。
JMASでモバイル向けシステム開発を担当している山田です。
JMASは2010年より、企業向けモバイルアプリ開発に従事し、2000件を超えるモバイルアプリを提供しています。アプリの開発手法は一様ではありません。そのアプリを通じて利用者に提供したい体験や価値、運用/保守体制、予算などを考慮しながらお客様のニーズと要望に合わせた最適な開発手法を検討、採用するのです。
たとえば、操作性や表現力、デザイン性を重視する場合には、ネイティブ言語を使った開発手法を用います。リリース後の運用や保守、拡張、メンテナンスにプライオリティを置く場合、HTML5やCSS3を活用した開発手法や、マルチプラットフォームを利用した開発も検討します。

モバイル端末のビジネス活用が進む中で注目が集まるマルチプラットフォーム開発

モバイル端末をビジネスシーンで活用する際に問題になるのが、複数のOSに対応するアプリを提供しなければならない点です。企業内で使うアプリであれば、企業側で利用するデバイス(OS)を統制できますが、アプリを一般消費者に提供する場合はどうでしょう。デバイス(OS)の統制は不可能です。
この問題を解決するのがマルチプラットフォーム開発です。これは、1つのソースコードでiOSやAndroidなどの複数のOSに対応するアプリを開発できる手法です。
マルチプラットフォームの開発環境にはさまざまな種類があります。たとえば、Google社のFlutterや、Meta (旧称:Facebook) 社のReact Nativeなどが挙げられ、いずれの環境にもメリットとデメリットが存在します。ここでもやはりどのような価値を利用者に提供したいかによって環境を使い分ける必要があるでしょう。
世間の大きな注目を集めるFlutter
Flutterを活用したモバイルアプリ開発の注意点
- Flutterの提供元であるGoogle社に将来性があり、継続した発展が期待できる
- Flutterの開発者規模が増大傾向にあり、先行するReact Nativeにも引けを取らなくなってきている
- 国内ではTOYOTAがFlutter採用を公表しており、大企業にも選ばれる技術として認知されてきている

JMASにはFlutterを活用したモバイルアプリ開発の実績があります。企業がビジネスシーンで利用できるモバイルアプリをFlutterでスピーディーに開発する上では以下の点を考慮しなければなりません。
- ネイティブ言語のように自由なプログラミングができないため、UI(ユーザインタフェース)に関する調整が難しい
- イベントフックがネイティブ言語とFlutterで異なるため、一般的なモバイルアプリ技術者にとっては使いにくい
- Flutterの知見を持つ技術者があまり市場におらず、大規模な開発を実施する際の要員調達に難がある
ただし、上記1. については、UIに関する調整が難しい反面、要件に合致すれば長所にもなります。マテリアルデザイン準拠で要件を満たす場合は、デザイン作業がなくてもGoogleのデザインガイドに従ったUIを作成できます。具体的には、Flutterのアプリケーションを管理するMaterial App※で提供されるテーマをそのまま利用できるので、コスト削減も可能となります。
※:主に全体のデザインや画面遷移をする場合の状態監視、アプリケーション全体のタイトルやその全体にかかわるプロパティを管理するFlutterの機能
Flutterを独自に拡張
Flutterの利点を最大限に引き出し、モバイルアプリ開発の効率を最大化
J-flutでは、Flutterの深い知見なくして開発できない部分を吸収し、品質を担保する仕組みを構築しました。開発者によって考え方が変わる部分をルール化し、モバイルアプリ開発経験者に適したイベント駆動型プログラミングを可能にしています。よく使われるイベントをJMASが独自に用意したことで、モバイルアプリ開発者にとっての使いにくさも解消しました。これらの拡張によって、テストが実行しやすい仕組みとなり、だれもが品質の高いモバイルアプリを開発できるようになったのです。
J-flutのフレームワークを利用すれば、Flutterの経験が少ない開発者であっても、ワンソースで複数OS向けのアプリを開発できるFlutterの利点を生かしながら大規模なモバイルアプリ開発を行えます。また、Swift / Kotlinでの開発に比べ、開発コストを最大50%削減することも可能です。
以下は、J-flutが独自に提供している機能/イベントの例です。
- 画面のライフサイクルイベントの提供
- 長時間処理のための機能
- ソフトウェアキーボード
- Toast(SnackBar)、ログ出力などのユーティリティ
⇒ネイティブアプリ開発者に馴染みやすいイベントフックを追加
⇒処理の開始/終了でのログ出力などJ-flut独自のビジネスロジックを提供
⇒ユーザー操作の無効化
⇒インジケーターの表示
⇒自動リトライ
⇒手動リトライ

iOSもAndroidもぜんぶまとめてワンソースで。
高品質なアプリ開発をよりスピーディーで低コストに。
企業がFlutterを使ってビジネスシーンで活用できるモバイルアプリを開発し、運用していくためには、それなりの工夫や知見が必要です。もちろん、Flutter以外のマルチプラットフォーム開発でも同様です。一概にこの環境が良い、悪いとは言えません。提供したい価値、提供したアプリの運用体制などによって自社に適した環境を複合的に検討しなければならないのです。
JMASは企業向けのモバイルアプリ開発を支援しており、100社、2000件を超える実績があります。また、JMASはAPAC CIO Advisor Magazine において、優れたモバイルサービスを提供する企業として国内で唯一選出され、モバイルアプリ開発の知見と技術力を高く評価されています。
CIO Advisorにて、
「APAC Mobile Application Consulting/Service Companies-2020」
Top 10の1社として選出