Delphiでのクロスプラットフォームモバイルアプリケーションの開発#1

Delphi for Android ご存知かもしれませんが、今年の9月にEmbarcadero Technologiesは、 DelphiC ++ BuilderHTML5 Builderおよび関連製品を含む開発ツールのセットであるRAD Studioの次のリリースを発表しました。 RAD Studio XE5の主な革新は、Delphiの助けを借りて、現時点で最も人気のあるモバイルプラットフォームであるAndroidのネイティブアプリケーションを開発できるようになったことです。



Delphiの以前のバージョンは、 Mac OS (XE2、XE3、XE4)およびiOS (XE4)の開発をすでにサポートしています。 したがって、クロスプラットフォーム開発がDelphiの新しいバージョンの「ハイライト」になったという事実については、今は話していません。 ただし、アプリケーション開発者に関しては、 Androidは真に民主的なシステムです。 高価な機器(iOSの場合のような)や開発者証明書の購入は必要ありません(GooglePlayでアプリケーションを公開する機能はたった25ドルで、Androidデバイスでデバッグする機能は完全に無料です)。



したがって、 Delphiにある程度のスキルがあれば、今はモバイル開発に挑戦する絶好の機会です。



Delphiについて言えば、 C ++ Builderに言及する必要があります。 通常、これらの製品は両方とも並行して開発されます。 ただし、今回は、スポーツ言語のDelphiが「少し先に進んで」おり、 C ++ Builderユーザーは、開発ツールが「リーダーに向かって引き寄せられる」までしばらく待つ必要があります。



Delphiの経験豊富な開発者の多くは、DelphiをVCLに関連付けています。VCLは、幅広いWindowsアプリケーションを作成するために設計された強力で拡張可能なクラスライブラリです。 ただし、クロスプラットフォームアプリケーションを作成するために、ご存知のように、または推測できたように、使用されるのはVCLではなく、以前はFireMonkeyとして知られていたFMアプリケーションプラットフォームです。



IDE FMの観点から見ると、これはまず第一に、ビジュアルクラス(コントロール)の新しいライブラリです。 その助けにより、ほとんどすべての種類のプログラムに対して高品質のユーザーインターフェイスを作成できます。 同時に、3Dグラフィックスを操作するためのオブジェクトも「ボックス内」で提供されます。これにより、FMを使用して、物理プロセスのモデリング、視覚トレーニングエイドの作成など、いくつかの特定のタスクを解決できます。 FMで紹介されているコンポーネントの多くには、独自のVCLがあります。 しかし、すべてからはほど遠い。



VCLとは異なり、FMは「抽象的な」アプリケーションプラットフォームです。 以前は、ビジュアルクラスライブラリはオペレーティングシステムの対応する要素を処理していました。 たとえば、VCLでは、TButtonコンポーネントはWindowsボタンコントロール(ボタン)のシェルです。 代わりに、FireMonkeyはボタンの抽象的な概念を導入しました。この概念にさまざまなスタイルを適用して、さまざまなプラットフォームでネイティブに見せたり、完全にカスタマイズ可能なユーザーインターフェイススタイルを使用したりできます。



他のライブラリはユーザーインターフェイスを抽象化しますが、FMはネイティブグラフィックライブラリに直接結び付けられ、ターゲットプラットフォームでGPUを使用するという点で最適なソリューションを提供します。



対処すべきもう1つのポイントは、モバイルアプリケーションのコンテキストでの「クロスプラットフォーム」という用語です。 モバイルプラットフォームが特定のコントロールセットを使用してユーザーインターフェイスを整理していることは明らかです。 このため、ほとんどの場合、従来のデスクトップアプリケーションの構築の原則は、モバイル開発には適用されません。



もちろん、多くの場合、上記のインターフェイスを抽象化するという原則が問題を解決します。 ただし、常にではありません。 また、クロスプラットフォームアプリケーションといえば、さまざまなプラットフォーム用の単一のアプリケーションを意味するものではありません。 さまざまなアプリケーションの単一のコードベースについて話しています。 そして、ここで、アプリケーションアーキテクチャの正しい構築、つまりインターフェイスと論理部分の最大の分離が非常に重要になります。



現在までに、FMプラットフォームは次のオペレーティングシステムをサポートしています: WindowsWin32およびWin64 )、 OSXiOSおよびAndroid



画像iOSおよびAndroid用の )モバイルアプリケーションの開発では、DelphiはいわゆるモジュラーLLVMコンパイラを使用します。 クロスプラットフォーム開発のコンテキストでは、これは否定できない利点をもたらします。 モジュラーコンパイラは、フロントエンドとバックエンドの2つの部分に分かれています。 フロントエンドコンパイラは、特定のプログラムのソースコードを、プラットフォームに依存しない汎用の仮想コード(バイトコード)に変換します。 バックエンドは受信したバイトコードを処理し、特定のプラットフォームのマシンコードに直接変換します。 バックエンドLLVMは、さまざまなプラットフォームをサポートしています。将来的には、 RAD Studioでサポートされるプラットフォームのリストを拡張できるようになります。



ビジネスアプリケーション開発のコンテキストでは、データベースアクセスメカニズムについても言及する必要があります。 実際、データベースでの作業は常にDelphiの長所であり、モバイルDelphiアプリケーションがデスクトップだけでなくデータベースでも機能することを期待するのは当然です。



ごく最近では、今年の春に、 Delphi / RAD Studioのシニアエディションの配信パッケージに、Dmitry Arefievが長年にわたって作成および開発した有名なAnyDACソリューションに基づいて作成された新しいデータアクセスライブラリFireDACが追加されました。 FireDACは、非常に印象的なDBMSのリストへのアクセスをサポートするコンポーネントのユニバーサルセットです。 デスクトップアプリケーションの場合、FireDACを使用するFMプラットフォームは、ほぼすべての一般的なDBMSをサポートしています。 モバイルアプリケーションに関しては、ほとんどのDBMSへのアクセスライブラリがないことに主に関連する特定の制限があります。 したがって、モバイルDelphiアプリケーションはSQLite (iOSとAndroidの両方のネイティブDBMS)とIBLite / IB ToGoサポートします。 ただし、たとえばOracleに直接接続することはできなくなりました。

ファイアダック

ただし、多層DataSnapテクノロジーを使用してモバイルクライアントを作成することは可能です。 この技術は新しいものではなく、開発者の間で非常によく証明されています。



また、データベースの操作に関するトピックに触れたため、FMアプリケーションとVCLアプリケーションの主な違いの1つに言及する必要があります。 VCLでデータを表示するには、通常、特別なコントロール、いわゆるDBコントロールが使用されます。 FMの場合、そのようなコントロールは実装されておらず、従来のコントロールがデータの表示に使用されます。 データとコントロール間の通信は、 ライブバインディングメカニズムを使用して行われます。 Live Bindingは直感的で、習得が容易で、完全に視覚化されていますが、この技術を使用するにはいくつかのスキルが必要です。

画像



前述のことから、Delphiでのモバイル開発は「従来の」モバイル開発とはかなり大きく異なります。 そして今、Delphiでのモバイル開発に特化した技術情報が不足しています。



同様の状況は、原則として、急速に発展している技術の特徴です。



この記事では、Delphiでのモバイルアプリケーションの作成に関する一連の出版物を開きます 。 このサイクルが、新しい開発環境の機能を理解するだけでなく、複雑さを引き起こす可能性のある基本的な技術的な問題を理解するのに役立つことを願っています。



次のパートでは、言葉から行動に移ります。 絶対に実際のタスクが検討のために選択され、異なるプラットフォーム用のFMアプリケーションを作成するプロセスを段階的に検討していきます。



パート2

パート3



All Articles