迷わない!クロスプラットフォームアプリ開発の歩き方

本コラムでは、複数回に渡り、トレンドとなっているクロスプラットフォーム開発ツールの導入の注意点など、アプリ開発成功の秘訣をご紹介していきます。

時代を変えたスマートフォンの出現

いまや世帯における保有率が約8割(※)にのぼるスマートフォンは、幅広い世代で利用されています。日本以外のグローバルでも同じような傾向が見られ、今後さらなる利用拡大が見込まれています。

これまでスマートフォンの普及を支えてきたものは、3Gや4Gといった携帯電話事業者の通信インフラネットワークの進化であり、Apple社のiPhoneやiPad、Google社のAndroid端末など新しいスマートフォンの出現が影響していることは言うまでもありません。そしてユーザーは、「アプリストア」からスマートフォンへ“自由”にアプリケーション(以下、アプリ)を追加することができるようになり、ソーシャルゲーム、ECサイト、動画サービス、SNSなど、私たちに魅力的なサービスが日々続々と発出し続けられています。

さらに、お客様向けにサービスを提供する企業では、卓上のPCのブラウザで閲覧するWebサイト型サービスから、場所や時間を問わず携帯できるスマートフォン用のアプリやWebサービスに、その提供方法をシフトしてきています。企業における働き方改革などの変革や技術革新によるモバイル機器の利用拡大やIoT・AIへの活用によって、今後もスマートフォンなどのモバイル端末は進化を続けていくことでしょう。

内閣府 消費動向調査(2019年3月調査)より

多様化するスマートフォンに求められるアプリ開発の実像

先の通り、モバイル端末用のサービスを展開する企業は、そのアプリを開発して運用していくことになります。実際のアプリ開発現場では、iOS、Android OSなどの各OSプラットフォーム上で動作させるアプリをそれぞれ別に開発し、OSのバージョンアップ、端末自体の新機種リリースに応じて、それぞれのアプリを更新していく必要があります。

アプリ開発は、iOSではObjecitve-CやSwift、Android OSではJavaやKotolinというように、Apple社やGoogle社が推奨する開発言語(以下、ネイティブ言語)で開発する手法が一般的です。

ネイティブ言語で開発するメリットは、OSに最適化されたUIデザイン、高い操作性が実現できるという点にあります。また、スマートフォンに搭載されているカメラやBluetoothなどのIoTに欠かせない機能を使用する際にも、SDK(Software Development Kit)が公式サポートされている点が大きなメリットとなります。

しかし、iOSやAndroid OSなどさまざまなスマートフォンで“同じ機能”を実現しようとすると、それぞれのOSプラットフォームで同じ機能のプログラムを同じように組む必要があり、製造やテストのコストが増大します。また、リリース後に頻繁に発生するOSバージョンアップに追随する為の保守も単純にOSの種類分の負担が掛かることになります。そこで登場したのが、異なるOSプラットフォーム上で同じ仕様のソフトウェアを動作させることが可能なクロスプラットフォーム開発ツールです。

クロスプラットフォームアプリ開発の“現在(イマ)”

クロスプラットフォーム開発は、2010年頃から、Titanium Mobile、PhoneGap、Adobe AIRといった開発ツールが登場し、2019年現在では、Xamarin、Cordova、Unity、React Native、Flutterが主流となりつつあります。クロスプラットフォーム開発ツールは大きく3つに区分され、ネイティブ型、独自レンダラ型、ハイブリッド型があります。

ネイティブ型

ネイティブ型は、名前の通り、OSプラットフォームで提供されている描画エンジンを利用する為、操作性の高いアプリを実現することが可能です。Microsoft社のXamarinやFacebook社のReact Nativeがあります。

独自レンダラ型

独自レンダラ型は、独自のレンダリングエンジンを備えており、スクリーン上の要素をきめ細かくコントロールすることができます。ゲーム開発ツールとして有名なUnity Technologies社のUnity、Google社のFlutterがあります。

ハイブリッド型

ハイブリッド型は、HTML5/JavaScriptのWebベースで動作するツールです。ブラウザのレンダリングエンジンを利用する為、ブラウザライクな操作感が基本となります。オープンソースのCordovaがその代表格となります。

最後に、最近話題のPWA(プログレッシブ・ウェブ・アプリ)もご紹介しましょう。PWAは、HTML、Javascript、CSSといったWebアプリを作成する技術で、通常のWebブラウザでは使用できないプッシュ通知ができる、オフラインでページを閲覧、操作ができることが特徴です。また、アプリストアを経由せずにアプリを配布することも可能なため、注目されています。

クロスプラットフォーム開発ツールは、これらの表現力、操作性を左右する特徴に加えて、使用言語にも違いがあります。 Cordova/PWAはHTML・Javascript、Xamarin/UnityはC#、Titanium Mobile/React NativeはJavascript、FlutterはDartを使用しています。

何やらクロスプラットフォームとは難しそう、ハードルが高そうといった感想をお持ちになるかもしれません。しかし、それぞれのツールの特徴を活かし、適切に活用できれば、本来の目的である開発や保守の負担を減らすことは決して難しくありません。

クロスプラットフォームアプリ開発のすゝめ

クロスプラットフォームアプリ開発では、まず始めにアプリ開発の手法を選択する必要があります。重要な判断ポイントは2つです。

1つ目のポイントは、開発言語の選択です。プロジェクトに参画するエンジニアのスキルに合わせて選択することが重要で、この選択を誤ると、開発プロジェクトの要員調整に対応できない、保守できるエンジニアがいないといった問題に陥ります。開発言語によって使用できるクロスプラットフォーム開発ツールは限られてきます。開発を外部に委託する場合も同様で、その開発ベンダはクロスプラットフォームの知見があるのか、継続的な動員力はあるのかを見極める必要があります。

2つ目のポイントは、クロスプラットフォーム開発ツールの技術情報の量、OSバージョンアップへの追従度です。新しいツールや利用者が少ないツールは技術情報が少なく、開発時に苦労することがあります。また、OSがバージョンアップされても、提供元からのツールのバージョンアップが遅いと不整合が起こってしまい、新しい機能や使用できていた機能が使えなくなる等の問題が起こることがあります。

当社はTitanium MobileやPhoneGapなど初期のクロスプラットフォーム開発ツールの時代から、Xamarin、Cordova、PWAに至る最新のクロスプラットフォーム開発ツールまで利用してきました。数々の成功と失敗を経験し、それらのナレッジと調査研究で得た技術情報を蓄積し、さらに戦略的にエンジニアを育成することで、お客様に最適なツールをご提案しています。

次回から、クロスプラットフォーム開発ツールを具体的にご紹介いたします。次回は、Microsoft社提供のXamarinを活用したアプリ開発手法がテーマです。

当社では、クロスプラットフォームアプリの開発の他、スピーディにネイティブアプリを導入できるアプリ開発プラットフォームもご用意しています。アプリの導入をお考えの方や、本コラムの内容をもっと詳しく聞きたいという方は、是非お問合せください。

富士ソフトのアプリ開発について、詳しくはこちら。
富士ソフトの アプリ開発ソリューション

  小一原 宏樹小一原 宏樹(Hiroki Koichibara) システム事業本部 メディアネットワーク事業部 第2技術部 部長
この記事を読んだ人はこちらの記事も読んでいます。