RAD Studio 12.1 Athens リリース!詳細はこちら

Webinar: What's New in RAD Studio 12.1 Athens リプレイを見る

Behind the Build: The new C++Builder Clang Toolchain! リプレイを見る

New IBLite Edition and IBToGo Subscription Offer 詳細はこちら

Python、C++、VC。新ツール登場!詳細はこちら

製品利用の情報はサポートナレッジベース

Delphi / C++Builder Community Edition 10.4.2

RX_Logo_76x76px

クロスプラットフォーム アプリケーション開発をスマートに:

シングルコードベースとネイティブアプリケーション

近年、スマートフォンやタブレット型端末は、個人利用においてもビジネス環境においても、急速に普及が進んでいます。そのターゲットプラットフォームであるiOS とAndroid は、技術的にはかなり異なっています。しかしながら、そうした差異を越えて、共通のコードベースから双方のシステムに対応するアプリを構築できることは理想です。

モバイルアプリ開発、第4のアプローチ「クロス開発」

第1のアプローチ:ネイティブアプリ開発

AndroidとiOSのいずれのOSについても、各ベンダー(GoogleおよびApple)が推奨するネイティブアプリの構築方法があります。Android向けのネイティブアプリ開発は、JavaまたはKotlinが用いられ、開発環境としてAndroid Studioを使用します。iOS向けネイティブアプリ開発には、プログラミング言語としてSwiftやObjective-C、開発環境としてXcodeが用いられます。

これらの構築方法を用いれば、デバイスのハードウェアで提供される機能へのアクセスという観点では、制限はありません。ユーザーインターフェース(UI)は、システムアーキテクチャへシームレスに統合されます。作成されたアプリは、標準で組み込まれているアプリストアを経由しての配布が可能です。

しかし、AndroidとiOSの開発手法は、言語も開発環境も異なり、使用するフレームワークやAPIもまったく異なります。つまり、両方のOS向けのアプリケーションを構築したい開発者は、まったく異なる開発手法によって、2種類のアプリケーションを構築しなければならないのです。

第2のアプローチ:Webアプリ開発

Webアプリもモバイルデバイスで実行されるアプリケーションを構築する手法のひとつです。Webアプリの場合、ネイティブアプリとは異なり、モバイルデバイスのブラウザ内で完結し、HTML5、CSS3、JavaScriptといったモダンなインターネットテクノロジーを使用します。AndroidとiOSといった複数のOSであっても、アプリの開発は一度で済みます。

しかし、Webアプリはアプリストア経由で配布することはできません。その操作性も、ネイティブアプリに近いものを実現することはできますが、個々のシステムの仕様や挙動を完全にサポートすることはできません。また、デバイスのシステム機能やデータへのアクセスも限定的です。そして、Webアプリはリモートサーバー上で動作するサーバーサイドのコンポーネントが必要であり、オフライン環境では実行できません。

第3のアプローチ:ハイブリットアプリ開発

ネイティブアプリとWebアプリを組み合わせたハイブリッドアプリであれば、Webアプリの制限を取り除き、ネイティブアプリ開発の複雑性を軽減できます。ハイブリットアプリは、Web技術によって実現されるUIを「WebView」コンテナ内で動作させるもので、OS上ではネイティブアプリのように振舞います。従って、ハイブリッドアプリはアプリストア経由で配布できます。

ただし、そのパフォーマンスは通常、ネイティブアプリよりも劣ります。ハイブリッドアプリ開発フレームワークは、Apache Software Foundation のCordova(PhoneGap)やAppcelerator Titanium Mobile等、多数存在します。UIをすべてのターゲットシステムにどの程度最適化できるかは、ハイブリッドアプローチで採用するフレームワーク次第です。デバイスのハードウェア機能へのアクセスはプラグインによっても可能となります。

第4のアプローチ:ネイティブ「クロス」開発

ネイティブアプリ開発のアプローチが、デバイス機能を最大限活用した制限のないアプリ開発を可能にすることは間違いありません。これを超えるものはありません。しかし、限られたリソースと限られた時間の中で、効率的にモバイルアプリを提供するには、もっとシンプルなアプローチが必要です。

クロスプラットフォーム、またはクロスデバイスプログラミングと呼ばれる技術は、これを解決する第4のアプローチですが、ネイティブによる「クロス」開発を実現することが、ベンダー推奨のプラットフォーム固有のネイティブ開発を超えた能力を発揮する要件となります。

第4のアプローチの詳細は下記よりホワイトペーパーをダウンロードしてお読みください。

その他のホワイトペーパーはこちらよりご参照ください