サイトアイコン Embarcadero RAD Studio, Delphi, & C++Builder Blogs

モバイルアプリ開発に最適な選択肢とは?

what are the different types of mobile application 2

モバイルアプリ開発の手法は、主に3つの種類に分類することができます。つまり、ネイティブアプリ、Webベースのモバイルアプリ、ハイブリッドアプリです。

ネイティブ、ハイブリッド、Webアプリの違い

ネイティブ、ハイブリッド、Webアプリの違いをシンプルに示すと、以下のようになります。

2021年3月時点の調査では、Androidが71.9%、iOSが27.33%のマーケットシェアとなっています。つまり、AndroidとiOSをターゲットとするモバイルUXアプリを構築すること検討しているなら、ほぼすべてのマーケットをカバーする(99.2%)ことができるということを意味しています。

ネイティブモバイルアプリとは

ネイティブアプリケーションは通常、実行するプラットフォームごとにプログラムを記述し、コンパイルされます。ネイティブアプリケーションは、ターゲットとなるハードウェア向けにコンパイル/最適化されるため、最速のパフォーマンスと最高レベルのセキュリティを提供します。ハードウェアへのフルアクセスもサポートされており、バイオメトリクス、カメラ、センサーなどのデバイス機能へのフルアクセスの恩恵も受けます。ネイティブアプリはシステムのUI要素を使用するため、プラットフォームのユーザーエクスペリエンスに「フィット」し、より直感的に使用できるので、最高レベルのユーザー評価が得られます。このことは、ネイティブアプリがそれぞれのアプリストアで、リーダーボードを占拠しているという事実によっても裏付けられます。

ネイティブアプリアプローチは最高のパフォーマンス、スピード、操作性を提供しますが、Xcode(iOS向けにAppleが提供)やAndroid Studio(Android向けにGoogleが提供)などのベンダーツールは、単一のプラットフォームのみをターゲットとしている事実を見逃せません。このことは、複数のコードベース、QAサイクル、アップデートを継続していくためのスキルなどの理由によって、開発サイクルが長く、複雑になり、最終的にはより多くの費用がかかってしまう(ように見える)恐れがあります。とはいえ、すでに触れたように、ネイティブを選択するメリットは数多くあります。実際、多くの企業が、ユーザーからのフィードバックが芳しくなかったため、ハイブリッドアプリをネイティブバージョンに書き直しているのです。

ネイティブアプリ(および一部のハイブリッドアプリ)は、特にアプリストア経由で配布する場合、最初のセットアップに時間がかかることがありますが、一度セットアップしてしまえば、そのアップデートは比較的高速です(ただし、アプリストア経由ではないWebアプリほど、アップデートはスピーディではありません)。

単一のソースコードから、フルコンパイルされた真のネイティブアプリを提供するひとつの選択肢は、Delphiを用いることです。FireMonkey(FMX)は、導入されてから9年以上が経過し、最新のオブジェクト指向/コンポーネント指向プログラミングをベースとした非常に柔軟なフレームワークに成熟しています。FireMonkeyは、Android、iOSだけでなく、macOS、Linux、Windowsもターゲットとしてサポートしており、モバイル開発のローコードRADアプローチを実現しています。

ハイブリットアプリとは

Sencha、Angular Mobile、React Native、Cordova、Ionic、PhoneGapなどのハイブリッドアプリは、ネイティブアプリケーションシェル内でホストされるWebテクノロジー(HTML5、CSS、JavaScript)を使用して構築されています。本質的に、これらはスマートフォン上のマイクロWebサーバー内でローカル実行されるWebアプリと言えます。

ハイブリッドアプリ開発のメリットは、単一のソースコードベースから、複数プラットフォームをターゲットにできることです。さらに、ネイティブシェルを使用することで、HTML言語の拡張機能をスマートフォンのハードウェアの一部にまで広げることができます。ただし、この拡張は、ネイティブアプリケーションが実現できるものと比較すると制限があります。ハイブリッドアプリは、ライブ接続なしでオフラインで実行するように設定することもできます(オフライン実行の構成が必要)。

ハイブリッドアプリのデメリットは、依然としてWebページのように見えたり動作する可能性があることです。例えば、コントロールが誤ってUIで複数選択されると言ったこともあり得ます。また、メモリとプロセッサの最適化が不十分であり、リソースを大量に消費してしまうこともよく知られています。

ソースコードは通常、アプリケーションバンドル内でシンプルなテキストとして存在しているため、セキュリティ面も考慮すべき重要なポイントになります。このことは、ハイブリッドアプリを利用する際のセキュリティコンプライアンスを維持することが、極めて難しいという事態を引き起こします。悪意のあるコードインジェクションは、本当に心配です。

これらすべてのハイブリットアプリ開発の選択肢の中で、ネイティブアプリに最も近いのはReact Nativeであり、いくつかのネイティブコントロールを使用するためのアクセス機能を提供します。Facebookなどによって支援を受けている、よいコミュニティもあります。しかし、肝心のFacebookは、機能の制限を回避するためにピュアネイティブアプリのコードを使用していると、よく言われています。React Nativeは、セキュリティが非常に重要となるアプリ(金融系アプリなど)にも、推奨することはできません

ハイブリッドアプリは、LANSA、Mendix、Microsoft PowerApps、Appianなど、多くのローコードソリューションにおいても見ることができます。これらのアプローチでは、追加のバックエンドシステムと統合する方式を採用しています。これらのプラットフォームでは、マーケット投入までの初期段階のスピードで優位にありますが、実現できる機能には依然として制限があり、ユーザー数に応じた価格設定が設けられていることが多いため、実際のランニングコストが高くなる選択肢と考えられます。

Webアプリとは

Webアプリは、モバイルにコンテンツを配信するための便利な方法でもあります。Webアプリはモバイルデバイスにインストールされず(ライブデータ接続が必要になります)、ユーザーが表示/実行する内容をすばやく変更/更新することができます。Webアプリはブラウザ経由で実行されるため、メインとなるコンピュータの能力はリモート実行になります。つまり、モバイルデバイスがWebアプリを実行するために必要とする電力とメモリは、最小限となります。

HTML5には、ローカルデータストレージなど、データの限定的なキャッシュを実現できる強力な機能がいくつか用意されていますが、これは機密データを保存すべき格納場所ではありません。

Webアプリのメリットのひとつは、非常にニッチなモバイルプラットフォームを含め、ほぼ100%のモバイルマーケットをカバーできる点です。

モバイルアプリ開発に最適な選択肢とは

この答えは、皆さんの要件に依存することは間違いありません。

すべての選択肢の中で、真のネイティブ(スピード、パフォーマンス、デバイスアクセス)と単一のコードベースによるクロスプラットフォームサポート(長期的なメンテナンスコストで有利)は、Delphiのみで実現されているものです。Delphiは、他のいくつかのプラットフォームと比較してニッチな製品と見なされるかもしれませんが、開発者(特にC#に精通している人)は簡単にそのスキルセットを流用でき、複数の開発プロジェクトを並列させそれらを日々メンテナンスしていかなければならないアプローチと比較して何分の1かのコストで実現できるのです。また、26年以上にわたる実績、独自のマルチプラットフォームアプローチを提供する9年以上の経験の積み重ねは、間違いなくこの分野でのパイオニアとして数年以上は先行しています。

モバイルバージョンを終了