この記事は、Atanas PopovによるModernize Your Appsの抄訳です。 |
「モダナイゼーション」は多くのお客様にとって最も重要なトピックのひとつです。Delphiには長い歴史があり、Delphi 7以前のいわゆる「レガシー」アプリケーションがまだ多く存在しています。このことは、Delphiが提供するフレームワークが優秀である証ではありますが、10年以上前のアプリケーションは、やはり「古すぎる」と言えます。私たちの開発者コミュニティでは、最新バージョンへの移行が進んでおり、モダンで魅力的なソフトウェア製品をお客様に提供できるようになっています。弊社内でも、同様の移行作業をRAD Studio製品そのものに対して行ってきました。それは時に容易ではありませんでしたが、努力する価値はあります。その結果、現在では多くの進歩を成し遂げていると思いますので、その教訓のいくつかは、皆さんのシステムにおけるモダナイゼーションの取り組みに役立つのではないかと考えています。
Table of Contents
UIのアップデート
モダナイゼーションプロジェクトで最も困難な箇所は、UIのアップデートに関する説得力のある議論です。例えば、「アイコンの外観が古いことを誰が気にするのか」といったことを主張する一派もいます。また、ルック&フィールについてはあまり気にしていないので、開発者がこの部分に情熱を注ぐのが困難だという側面もあります。しかし、ルック&フィールのアップデートは大きな結果をもたらします。私たちは、過去2年間にわたり、RAD Studioに段階的なアップデートを加えていき、ストアでもいくつかの修正を加えました。アンケートを実施すると、ルック&フィールに対して優先度を上げる人はほとんどいません。エンタープライズソフトウェアのお客様は、「見た目がかわいい」という理由でソフトウェアソリューションを購入することは、まずありません。しかし、一度UIが改善されると、そのインパクトは驚くほど大きくなる傾向にあります。特にDelphiアプリケーションには、「レガシー」というバイアスがかかっていることが多く、これを打破することには意味があります。そして、VCLやFireMonkey(FMX)には、これを容易に実現する機能が備わっています。ぜひ、そのために時間を割いて、改善を試みてください。プロのデザイナーの支援を受けることも重要でしょう(多くの開発者はこの点を重視していません)。高品質な素晴らしいアイコンの影響度を過小評価しないようにしてください。以下は、私たちが10.2.2で使用したアイコンのサンプルです。費用のかからないような選択肢も数多くあります。例えば、www.icons8.com などは私も愛用しています。
モバイル対応
現在のDelphiの大きな利点のひとつはFireMonkey(FMX)です。スマートフォンの普及が進む(2018年までに70%に達する見込み)中、FMXとの関わりが高まってくることでしょう。もしVCLを知っているのであれば、FMXによる開発は比較的容易に始められます。スタイルとビヘイビアに関しての理解が必要だったり、率直に言えばRAD Studioのワークフローをもう少し改善する必要がありますが、その生産性は素晴らしいものがあります。多くの他のアプローチでは、開発チームや開発投資を別々に行う必要があります。これまでの例を見れば、モバイルアプリの開発はパッケージとしてアウトソースされる傾向にありました。しかしこの状況は変化してきています。FMXを用いれば、Delphi開発チームはモバイルアプリの開発に着手できます。FMXで古いアプリケーションを再構築する必要はありませんが、モバイル拡張にはFMXは必須となります。Delphiの技術はモダンで、評価に値するという認識に変わるでしょう。そしてDelphiによる開発チームを編成し、開発を強化できます。チームの強化には、トレーニングをはじめ多くの支援が用意されています。個人的にはDelphiのスタイル機能が好きで、大変整ったカスタムルックを提供できるところが魅力です(以下は、www.delphistyles.comで入手できるFMXスタイルテンプレートの例です)。
多層化する
アーキテクチャは単純ではありません。どれほど能力のある開発者であっても、ソフトウェア開発の領域があまりにも広範であるために、他の分野の知識を持ち合わせていないことがあります。デスクトップアプリケーションから多層化する場合のように、アーキテクチャの変更を伴う場合には、たとえ経験豊富な開発者であっても、経験を積みながら進めていかざるを得ません。学ぶこと、あるいは外部のサポートを受けることは常に素晴らしいことです。私たちは、RAD Serverの多層アーキテクチャサポート機能などにより、アーキテクチャの変更を容易にすることを目指しています。古いアプリケーションを多層化することはそれほど難しい作業ではありませんが、それでも保証があるわけではありません(実際、構築方法によって異なります)。当初は懸念を示していた多くの開発者と話す機会がありましたが、実際に作業に入ってみると、その労力は予想よりもはるかに少ないということが分かったそうです。実際、Javaのような完全に異なる言語を使用してプラットフォームを再構築するのに比べると、そのコストは相当安く抑えられます。そのシンプルなアプローチは、可能な限り小さくモジュール化して始めることです。従来のVCLクライアントを捨てる必要もありません。パフォーマンスが要求されるようなアプリケーションでは、これに代わる方法はないでしょう。私は、VCLアプリケーションをJavaで再構築しようとした数百万ドルの案件をいくつか知っています。でもこれらはユーザーには採用されませんでした。多くの無駄が発生したのです。
Webify(Web化)
「Webify」という言葉はありませんが、意味は分かると思います。Delphiでこれを実現するには、現在、いくつものプローチがあります。理想的には、多層アプリケーションを構築し、独立したWebクライアントを作成するべきです。もちろん、エンバカデロの開発ツールファミリーに加わったSencha Ext JSをお勧めしますが、他にも優れたクライアントWeb開発技術がいくつもあります。迅速なもうひとつのアプローチとしては、UniGuiのようなツールを使う方法もあります。これはVCLライクなアプローチで、Ext JSによるWebクライアントの構築をサポートするものです。すべてに適用できるわけではありませんが、非常に高速で高い生産性が得られます。Delphiで、すばやくアプリケーションモジュールを作成し確認したら、これを即座にWebで実行できるようにします。今日の多くのDelphiアプリケーションに対するWebインターフェイスは、Windows接続を継承しているという理由で.NETで構築されています。これらはもちろん機能しますが、最新の経験と新しいJSテクノロジーを用いれば、よりスピードと柔軟性が得られます。
統合
RAD Studioには、見事に統合されたフレームワークとコンポーネントが用意されています。他のテクノロジーの最も困難な側面は統合で、私たちはそれをすばやく実行できます。弊社が実施した最近の製品調査によれば、多くのお客様がFireDACを採用しています。これは素晴らしいことです。アプリケーションの統合性をより高めるために、新しい方法を見つけ出すことが重要です。ERPで在庫状況を確認したり、変更するにはどうすればよいでしょうか?Enterprise Connectorsは、FireDACフレームワークをベースとし、統合を容易にします。例えば、Salesforceのインスタンスに対するExt JSベースのポータルを作成するために、Enterprise Connectorsをその内部で使用することができます(下図参照)。その開発手法は、驚きそのものです。
イノベーション
Delphi / RAD Studioは、プッシュ通知、ビーコン、Woll 2 Wollモバイルエディタ(www.woll2woll.com/beam)などの多くの新機能をサポートしています。多くのお客様が、Windows 10の新機能をあまり使用していないという事実は驚きです。その中でもビーコンは好きな技術のひとつです。ここに紹介した機能は、いずれもRAD Studio Enterpriseで利用できるものです。モバイルエディタは、ビーコンを用いたモバイルアプリの開発をスピードアップします。内部のDelphiアプリケーションがロケーションデータの取り込みを多く処理してくれ、極めて便利な機能を提供します。そして、Delphiの素晴らしい点は、このようなイノベーションを享受するのに、数十万ドルも必要としないということです。
「レガシー」という認識の克服
これはRAD Studioに関する私たちの取り組みとの関連性はあまり高くありませんが、お客様がそれぞれ克服しなければならないハードルです。Delphiが「レガシー」であるという認識は、それを克服するための最近の進歩にもかかわらず、依然として存在します。最近、少し違ったアプローチをとってきましたが、これは非常に成功しています。Delphiの数多くの強みを守るために深く没頭するのではなく、ちょっとした事実を述べ、それを脇に磨いているだけです。これはうまく機能します。今日のDelphiは、より広範な商用のエコシステムのひとつとなっています。オープンソースの多くは、経済が悪化しサポートが縮小傾向になると、その勢いを失いました。Delphiが迅速かつ容易で、最も機能的な開発ツールであることは言うまでもありません(少し主観的な意見ですが、真実であることは間違いありません)。Windows開発向けのVCLフレームワークは、Microsoft Windowsに対して最もネイティブなサポートの提供を続けていきます。FMXはXamarinよりも優れたネイティブのクロスプラットフォームサポートを提供しており、その人気は、特にAndroid開発向けに急速に拡大しています。私は、テクノロジーリスクを管理したい企業にとって、Delphi+VCLは、トレンドのテクノロジーやフレームワークよりもはるかに安全な選択肢だと考えています。Angularでイテレーションをいくつか経験した人やJavaシステムの膨大な移行作業に従事した人に聞いてみるといいでしょう。フロントエンドとバックエンドの双方で柔軟に動作する、再利用可能な生産性の高い言語のコンビネーションこそが、Delphiが強力な選択肢であるゆえんです。
さて、少し長くなってしまいましたが、モダナイゼーションに関して、おそらく最も困難なポイントがひとつあります。それは、技術ではなく知覚と関係しています。お客様は、熟練したDelphi開発者が不足していることについて引き続き議論しています。残念ながら、他の一般的なテクノロジーと比較した場合、熟練したDelphi開発者が少ないことは、依然として真実です。外注業者は、生産性の向上がビジネスモデルに相反する傾向にあるため、生産性の高いこれらのツールに対して積極的ではないのです。Java開発者を50人あてがうことができる商談で、わざわざDelphi開発者5人で済ませようとするでしょうか?しかし、これこそが商談を獲得するポイントでもあるのです。Delphiならそれほど多くの開発者は必要ないのです。エンバカデロでは、開発者のスキルアップや新しいチーム育成といった需要に対応するために、Embarcadero Academyを用意し、より多くのコンテンツやコースオプションを備えるべく開発を進めています。私たちの経験では、シニアの開発者であれば、Delphiはあっという間にマスターできます。ぜひ、モダンな外観のアプリを開発し、Delphiのテクノロジーに懐疑的な人たちの懸念を吹き飛ばしてしまいましょう!
モダナイゼーションの具体的な手法を知るには…
Delphi / C++Builderアプリケーションのモダナイゼーション手法を学ぶには、2018年3月15日、東京・秋葉原のUDX GALLERY NEXTで開催される「第35回 エンバカデロ・デベロッパーキャンプ」へお越しください。このイベントでは、Delphi / C++Builderを最新のWindows 10プラットフォームに適合させる手法や、Senchaを活用してWeb対応する手法など、実践的な開発技術を紹介する予定です。