COLUMNニューソンコラム

2024.04.15

クロスプラットフォームを活用した
モバイルアプリの開発を解説 ~ Flutter を活用し、開発コストと工数を削減~

  • LCP
  • ローコード
  • ノーコード
  • ローコードプラットフォーム
  • 生産技術革新
  • 開発プロセス
  • 業務効率化
  • 生産性向上
  • 内製化

スマートフォンの所有が当たり前になり、スマートフォンを中心としたライフスタイルが定着している今日、モバイルアプリは企業との重要な顧客接点として注目されています。
さらに周辺サービスとスマートフォンを連動させることで顧客データを充実させ、そのデータを自ら分析する企業も増えつつあります。このような企業では利用動向やニーズをいち早く把握し、UIや機能を改善することで、高い収益に結び付けており、モバイルアプリの需要が一層高まっています。
一方、モバイルアプリの開発を支える技術も進化しています。
従来のネイティブアプリ主体の開発からAndroidやiOSなど、異なるプラットフォーム上での動作を前提としたクロスプラットフォーム開発へのシフトが進んでおり、その代表的な開発ツールの中でも近年 Flutter に人気が集まっています。

本レターでは、クロスプラットフォームやFlutterの特長についてご説明いたします。

 

複数のプラットフォームでの同時開発を可能にする
クロスプラットフォームとは

クロスプラットフォームとは、1つのコードでAndroidやiOSなど異なるプラットフォーム上でアプリケーションを動作させることができるツールのことです。日本国内で使われているスマートフォンやタブレットはiOSとAndroidの比重が均衡しているため、それぞれのOS(プラットフォーム)にあわせた開発が必要となり、開発コストの増大や開発スピードの鈍化が懸念点となっていましたが、クロスプラットフォームで開発をすることにより、そういった点も解決できます。
クロスプラットフォームは、主にコンテンツを表示する仕組み(レンダリング*)の違いにより大きく分けて「ネイティブ型」、「独自レンダラ型」、「ハイブリッド型」の3種類があり、それぞれに特徴があります。

ネイティブ型

各OSのプラットフォーム上のレンダリングエンジンを利用するタイプです。OSに適したUIになるため、ユーザーが操作しやすく、処理が高速でオフライン環境でも利用できるアプリ開発に向いていることが特長です。その一方で、各OSに依存したレンダリングエンジンを利用するため、デザインの統一が難しく、OSごとにコードを書く必要があることがデメリットです。
ネイティブ型の代表的なフレームワークには、「React Native」があります。

独自レンダラ型

クロスプラットフォーム独自のレンダリングエンジンを利用するタイプです。OSに依存しないUIにできるため、異なるOS上でもデザインを統一できるという特長があります。逆に、独自であるため、OS独自の表示機能が新しく出たときなど、Flutterのアップデートに左右される面もあります。
独自レンダラ型の代表的なフレームワークには「Flutter」があります。

ハイブリッド型

WebviewというOS上で動作するソフトウェアを利用し、HTML5/JavaScriptといったWebベースのレンダリングエンジンを使うタイプです。Webviewで開発したソフトウェアは、OS上で動作し、Webページのブラウザと同じように表示する機能を持つためハイブリッド型と呼ばれています。機能の一部をWebに頼るため、HTMLやCSS、JavaScriptなどを活用して開発を進められる一方で、処理速度が遅いところがデメリットです。 ハイブリッド型の代表的なフレームワークには「Cordova」があります。

複数あるクロスプラットフォームのなかでも、汎用性と将来性の高さからFlutterの需要が高まっています。

Flutterとは

flutter
引用元:「Flutter architectural overview」
https://docs.flutter.dev/resources/architectural-overview

Flutterは、Googleが開発したモバイルアプリケーション向けのフレームワークで、開発言語には「Dart」という「JavaScript」の代替言語として開発されたものを使っています。サポートしているOSもAndroid、iOS、Webブラウザ、Windows、macOS、Linuxと多岐にわたっており、Flutterを使うと同じソースコードで各プラットフォームに対応するアプリを一度に作ることが可能になります。UI部品(Widget)が豊富で多様なインターフェイスを容易に作成できること、ネイティブアプリに劣らないパフォーマンス(操作性)を提供できること、Firebase(Googleが提供するmoblie Backend as a Service)との親和性も高く、Googleのサービスをはじめとした便利な連携サービスが多い点もメリットです。
また、Googleの様々なサービスでもFlutterの導入が進んでおり、継続してFlutterの機能をアップデートしていることから、今後ますます使いやすくなることが予想されます。

2018年に公開されまだ日本国内においては開発者が少ないもののベテランエンジニアが新たに手掛けることも容易であり、数年の経験をもつ若手エンジニアが熟練者として活躍できること、敢えてOS固有の機能を利用する場合でもクロスプラットフォームの拡張機能(Native実装)で対応ができるなどの利点により、拡大が続いています。

Flutterに精通した人財が
クロスプラットフォームを活かした効率的な実現方法を提案

NTTデータ ニューソンには、Flutterに精通した開発チームによる複数の開発実績があります。
例えば、Flutterではプッシュ通知の利用やUIでのアニメーション機能の実装、端末に依存しないGPS利用が可能ですが、当社は過去の開発実績により、クロスプラットフォームの特長である開発効率を最大限生かした開発を実現いたします。

さらに、当社はアジャイル型開発を得意としており、Flutterを利用した開発においてもお客様のアイデアをモバイルアプリとして迅速に実現することができます。
また、未経験・若手技術者向けの学習コンテンツの活用によりアジャイル型開発やFlutterの習熟度を高めたり、NTTデータ ニューソンのメンバーと一緒にお客様の開発メンバーとチームを立ち上げていくことで人財育成を支援するなど、お客様の内製化につながる支援も行っております。

執筆者

山本 陽彦
デジタルソリューション事業部 DX統括部 アジャイル開発担当 担当部長
ERPパッケージや複数のシステム開発業務を担った後、金融系のPMとしての経験を重ねる。現在はアジャイル開発領域を担当している。