# マルチプラットフォーム開発環境 「マルチプラットフォーム開発」という言葉をご存じでしょうか? マルチプラットフォーム開発はプラットフォーム(OS)毎にアプリを開発するのではなく、単一のプロジェクトから複数のプラットフォーム用のアプリを製作する手法です。 このマルチプラットフォーム開発に対応した開発環境が「**マルチプラットフォーム開発環境**」です。 通常、Android であれば AndroidStudio を使いアプリを作り、iOS であれば Xcode を使ってアプリを作ります。 マルチプラットフォーム開発においては、ただ1つの開発環境から Android と iOS 両方のアプリを出力できます。 |開発環境|iOS|Android| |---|:---:|:---:| |AndroidStudio|生成できない|○| |Xcode|○|生成できない| |マルチプラットフォーム開発環境|○|○| ## マルチプラットフォーム開発環境の種類 マルチプラットフォーム開発環境と一口に言っても様々な製品があります。 代表的な例をあげます。 ### React Native Meta 社が提供する JavaScript によってアプリを構築できるフレームワーク。 React Native を使えば iOS / Android 両方にアプリを提供できます。 ### .NET Microsoft 社が提供する .NET は .NET 6 によってマルチプラットフォーム対応になり、iOS / Android のみならず Windows / macOS / Linux 向けアプリを生成可能です。 ### Flutter Google 社が提供するマルチプラットフォーム開発環境で Windows / macOS / iOS / Android / Web 向けのアプリを開発できます。 GUI をコードで書かなくていはいけないため直感的ではなく大規模開発には向いていませんでした。 ### Delphi Embarcadero Technologies 社が提供する Delphi は 1995 年の誕生以来ずっと開発が続いている開発環境です。 最新の Delphi では、Windows / macOS/ Linux / iOS / Android 向けアプリを開発できます。 他にもマルチプラットフォーム開発環境はあるのですが、代表的なものはこのぐらいです。 そして、この中から**弊社一推しの Delphi について紹介**します。 # Delphi とは Delphi とは Embarcadero Technologies が開発・販売しているマルチプラットフォーム開発環境です。 Borland 社から 1995 年に Delphi 1.0 が登場し一世を風靡しました。 その後、2008 年に Embarcadero Technologies 社に買収され、現在も開発が続いています。 ![image](https://hackmd.io/_uploads/SkeiORb3p.png) 昔 Delphi を使っていたことがある方もいらっしゃるかも知れません。 その頃は Windows 用のアプリを製作するために使っていたのではないでしょうか? 実は 2011 年に登場する Delphi XE2 まで Delphi は Windows 専用の開発環境でした。 ちょうど .NET が Windows 専用だったのと同じです。 ## Delphi の特徴 Delphi は RAD (Rapid Application Development)と呼ばれるツールの1つで非常に素早くアプリを製作できる開発環境です。 具体的には、コンポーネントをドラッグ&ドロップで配置して繋げるだけで様々な機能を実現できます。例えばデータベースへのアクセスであればノーコードで実現できます。 流行のノーコード開発ツールのように開発することもできれば、Object Pascal と呼ばれるプログラミング言語を使って事細かにコーディングする事もできる、ノーコードツールとプログラミング環境のいいとこ取りをした開発環境となっています。 ### 2つのライブラリ Delphi には現在2つのライブラリが載っています。 VCL と FireMonkey です。 VCL は Windows 専用のライブラリであり Windows のアプリだけを作る場合は FireMonkey よりも適しています。 FireMonkey は、マルチプラットフォーム専用のライブラリで Windows / macOS / Linux / iOS / Android を対象としたアプリを作るための基板ライブラリです。 下図のように FireMonkey が OS をラッピングすることで、単一ソースで複数のプラットフォーム向けのアプリを製作できる仕組みになっています。 ![image](https://hackmd.io/_uploads/SJMkcJz2a.png) ## Delphi の用途 多くの種類のアプリを製作できるのですが、弊社では下記の用途で使っています。 * クライアントアプリケーション * CUI アプリケーション * IoT アプリケーション * 3D アプリケーション * DLL や Dylib の作成 ## Delphi の GUI FireMonkey は全てのプラットフォームで動作するため、OS の部品を使わず自分で画面を描画しています。ちょうどブラウザと同じような思想です。 そのため、一般的なアプリでは難しい滑らかなアニメーションや効果、美麗な見た目を簡単に実現できます。 ### モバイルの例 **天気予報アプリ** <img src="https://hackmd.io/_uploads/Sy28T-jh6.png" height=640><br> **デジタル時計**(1つのアプリで4つの盤面を表示しています) ![clock](https://hackmd.io/_uploads/SJ647Go2a.png) ### デスクトップの例 **QRコードジェネレータ**(アプリの見た目を動的に変更しています) ![desk](https://hackmd.io/_uploads/Bk0NcWm2p.png) ### モバイルとデスクトップの例 **画像加工アプリ** (macOS と iOS で同じアプリを動かしています) ![image](https://hackmd.io/_uploads/SylmGzi2p.png) これらのアプリの開発期間は3~14日程度です。 # 最後に ゲーム開発で培った "気持ちの良い" UI / UX が弊社のアプリの特徴です。 その特徴は Delphi によって実現されています。 弊社は、2000年代初頭からマルチプラットフォーム開発を進めています。 また日本人ただ1人の Delphi MVP も在席しています。 マルチプラットフォームアプリの開発の経験は他にひけを取りません。 アプリ開発は是非シリアルゲームズまでご相談ください。 もちろん、Delphi 以外に Flutter や .NET, React での開発も可能です!