そもそもXAMLとは? UI用のマークアップ言語ではなくオブジェクトインスタンスの定義言語
今回の「GrapeCity ECHO Tokyo 2017」の幕開けを告げる最初の講演には、日本マイクロソフトの高橋忍氏が登場。「そもそもXAMLとは何か」といった基本的な話題から、今後の進化の可能性に至るまでを紹介した。
「Windows Vistaの時代、2007年に.NET Framework 3.0のリリースとともに登場したXAML(eXtensible Application Markup Language)。それ自体は主にクライアントアプリケーションのGUI部分をXMLベースで記述するための言語ですが、マイクロソフトではこの技術を通して、あらゆるデバイスにおける快適なUX(User eXperience)を提供すべく、2つのことを実現したいと考えました」と高橋氏は語る。
まず、その1つが「UIとコードの分離&非同期処理」。つまりXAMLでは、ユーザーに最適なUXを提供するリッチなUIを、XMLのタグフォーマットによってアイテムを並べていくだけという簡便な記述で実現できるほか、それとは別にバックエンドのロジックをC#などで実装し、それぞれ非同期に動作させることで、レスポンスの向上を図ることができる。
XAMLにおけるもう1つのねらいは、「UI要素の再定義とユーザーへの開放」である。Windows Formsの世界では、ボタンやリストボックスなどのUI要素は、あくまでもOSがコントロールというかたちでアプリケーションに提供するもので、ユーザー(開発者やデザイナ)が相応のカスタマイズを施すことは可能だったが、そこにはやはり限度があった。これに対しXAML(WPF)では、必要なUI要素をユーザーがゼロから作成可能。OSの提供するコントロールに制約されることなく、自分のアプリケーションの世界観に相応しいUI要素を実装できるようになっている。
「とはいえ、XAML自体は決してHTMLのようなUIの記述に特化したマークアップ言語ではありません。あくまでもUIオブジェクトのインスタンス定義を行うための開発言語であり、拡張によってビジネスロジックを記述することも可能であるという点は、ぜひ銘記いただければと思います」と高橋氏は強調する。つまりXAMLは、C#やC++、Visual Basicと同様の開発言語で、Windows Vista以降に登場した、WPFをサポートするWindows 7/8.x、さらには現在のWindows 10のUWPに至るアプリケーションプラットフォームでも継続的に採用されており、これらの環境では既存のスキルを踏襲した開発が可能である。さらに現在では、Xamarin、Xamarin.Formsというライブラリを利用することで、iOSやAndroidに対応したマルチプラットフォーム、マルチデバイスのアプリケーションをXAMLで開発することもできる。
さらにマイクロソフトでは、近年、「Mixed Reality」(MR:複合現実)の領域に関する取り組みを強化しているが、例えば最近各社からリリースされている「Windows Mixed Reality Devices」と呼ばれるヘッドセット製品では、Windows 10のUWP(Universal Windows Platform)アプリケーションをMR環境内で実行することができる。「つまり、XAMLで記述したアプリケーションのターゲットはMRの世界にまで広がっているわけです。XAMLは次世代に向け、マルチプラットフォーム、マルチデバイスのためのアプリケーション開発言語として継続的に進化を遂げていくことになります」と高橋氏は語る。
業務課題の解消に貢献するデザインをアプリに持ち込める唯一無二の選択
続くセッションには、マーベリックの秋葉卓也氏が登壇。同社は、「IT×デザイン」をコンセプトに、デザインの価値を最大限に訴求したシステムの構築で知られるソリューションプロバイダだ。「当社ではかねてより、WPFやSilverlight、UWP、Xamarin.Formsなどによるアプリ開発を数多く手掛けてきており、特にXAMLは我々のデザインの価値を最も効率的に実現できる環境であると考えています」と秋葉氏は語る。セッションでは、そうした、同社がXAMLベースで開発した業務アプリについて、いくつかの開発事例がデモを交えて紹介された。
まず1つめは、大手鉄道事業会社向けに開発されたインシデント共有アプリである。このアプリは、タブレットからの入力情報を元に、どこでどのようなインシデントが発生しており、3~4万人にも上る従業員の誰がどこにいるかといったことを地図上にプロットしてセンターで把握できるようにするというもの。ユーザー間のコミュニケーションを支援する掲示板機能も装備している。「タブレットに表示された地図の操作性やレスポンスを担保するうえで、XAMLの採用が最適であると考えました。Windowsはもちろん、Xamarin.Formsを使ってiOS環境にも容易に展開できる点もXAMLの大きなメリットです」と秋葉氏は紹介する。
2つめは、グローバルに拠点を展開する製造業向けの在庫シミュレーションアプリで、各拠点における在庫の不足や過多の発生を解消するためのリカバリプランの作成を支援するものだ。このアプリでは、ERPのUIをより使いやすいものにするとともに、Surface Hubの大画面上で多人数が情報を共有しながら、画面をダイレクトに操作できる環境、および協議内容を画面上で手書きメモとして残せるといった仕組みを求めるユーザーの要望に応えている。「XAMLの採用理由については、この案件では大画面のSurface Hubの活用が前提で、それに対応するアプリケーションフレームワークはUWPのみであったことに加えて、シミュレーションプランを画像化して、ペンによる手書き入力を行うという仕組みの実装にはXAMLが非常に適していたことがあげられます」と秋葉氏は言う。
そのほかにもセッションでは、マーベリックが大手化粧品メーカーの依頼により開発したワークショップ向けの付箋アプリや、東京都交通局・東京メトロが導入した訪日外国人向け次世代券売機の事例が紹介されたが、いずれもデザインの持つ価値を最大限に生かしたマーベリックならではの優れたUXを提供するユニークなシステムとなっている。「ユーザーの課題に応える業務アプリにおいてこそ、デザインというものが重要。業務アプリの世界に我々が表現したいデザインを持ち込める開発環境として、XAMLはまさに唯一無二の存在です」と秋葉氏は強調する。
Windows FormsアプリケーションのWPFへのマイグレーションを実施
この日3つめのセッションでは、経費精算クラウドサービス「Concur Expense」やSalesforceの導入・保守サービスをはじめ、パッケージ製品や受託開発、コンサルティングなど、幅広いITサービスを提供するエス・ビー・エスの須藤隆一郎氏が講演を実施。もともとVisual Basic 6.0で開発され、その後.NET化されたWindows FormsベースのシステムについてのWPFへのマイグレーション事例を紹介した。
今回、移行の対象となったのは、手書きの帳票をスキャンした結果画像を、OCRで処理して出力されたテキストに含まれる読み違い、例えば“1”と“7”、“l(エル)”と“I(アイ)”といった誤りを検査・訂正してデータベースに格納するアプリケーション。「お客様は、モニターのサイズに依存しないかたちでOCRの処理結果を表示したいというニーズにあわせ、Visual Basic時代に作り込んだスパゲティ状態のコードを新たなフレームワークへの移植により解消したいという要望もお持ちでした」と須藤氏は紹介する。
これに対し、表示をめぐる課題に対してはWPF化を行ってViewBoxコントロールを用いるというアプローチを採用してXAMLによる開発を行うこととした。一方のコードの問題に関しては、MVVM(Model-View-ViewModel)アーキテクチャにより再構築するという方法をとることにした。
具体的な開発プロジェクト構成としては、エス・ビー・エスが標準化チームとして、アプリケーション構成、およびイベント処理や入力チェック、例外処理などの方針、命名規約の策定に当たるとともに、共通処理や例外処理、入力支援の部品などの開発に当たった。また、これもエス・ビー・エスがアプリ開発チームとして実際の移行作業を担当。そのほか、WPFにかかわる技術支援などを行うマイクロソフトのサポートチームも参画してプロジェクトを進めた。
「移行に当たっては、ビューモデルにはプロパティのみを持つかたちとし、バリデーションやワーカーサービスなどの処理を呼び出すところはコードビハインド側に出すという構成をとりました。こうした工夫により、数多くのボタンの実装によってビューモデルの処理が肥大化することを避け、保守性の向上を目指しました」と須藤氏は紹介する。
実際の取り組みにおいては、Windows FormsとWPFの仕様の違いに起因するさまざまな問題に直面することになったが、プロジェクトに参画したマイクロソフトのサポートチームのアドバイスなども得ながら、ユーザーの要件を満たした移行を無事完了することができた。
他社に先駆けてXamarinを採用、クロスプラットフォーム開発を推進
続く講演の壇上には、Webブラウザ「Sleipnir(スレイプニール)」をはじめ、各種スマートフォンアプリの開発・提供で知られるフェンリルの伊藤伸裕氏、太田川洋氏の2名が登場。セッションでは、「デザインと技術にこだわったソフトウェアの開発」を旨とする同社が、Xamarin、Xamarin.Formsの活用により取り組んだ、XAML、C#でのクロスプラットフォーム開発にかかわる紹介を行った。
「当社では、Xamarinを2013年から国内の他の企業に先駆けて本格利用していたという経緯があり、また現在ではXamarin上での開発を経験しているエンジニアも10名以上を数え、日本で最もXamarinを活用している開発会社であると自負しています」と伊藤氏は胸を張る。
同社がXamarinを採用した背景としては、顧客からiOS、Android上に同一のアプリを開発してほしいという依頼がかねてより多く寄せられていたことがあげられる。Xamarinを利用すれば、開発言語に使いやすいC#を利用して両プラットフォーム上のアプリを同時に開発することが可能となる。しかもXamarinではAPIなどもフルにカバーされており、特定のネイティブ機能が使えなくなるといったデメリットもなく、ネイティブ開発と遜色のないパフォーマンスが得られることも大きな魅力だった。
「もっとも、C#とXAMLが使いこなせれば、即座にモバイルアプリの開発ができるというわけではありません。iOS、Androidのフレームワークにかかわる膨大な知識が必要で、XAMLのタグもWPFなどとは異なるといった問題もあります」と伊藤氏は語る。
また同社があわせて利用しているXamarin.Formsでは、本来プラットフォームごとにバラバラであるUIの実装をXAMLによって共通化できる。「iOSやAndroidにとどまらず、Windows Phone 8.xやWindows RT、UWPといった幅広いプラットフォームに対応していることもその大きな魅力で、今後、macOSやLinux、WPF、Taizenなどのサポートが予定されている点にも大いに期待しています」と太田川氏は言う。
同社ではこうしたXamarin.Formsの活用により、UI部分の実装が大幅に省力化でき、例えば通信周りやビジネスロジック等の開発に、より大きな労力と時間を投入できるようになっているほか、ベータ版リリースに関するスピード感もアップしているという。
「Xamarin.Formsの活用については、“あまり頑張らない”のがベストプラクティス。UIフレームワークに依存しきったほうが楽で、逆に頑張りすぎるとコードが汚くなったり、バージョン依存が発生してしまう懸念もあります」と太田川氏は語る。
当日最後のセッションでは、イベントの模様を振り返るラップアップが主催者であるグレープシティの手によって実施された。その中でグレープシティは、今回の「GrapeCity ECHO Tokyo 2017」でXAMLをテーマに据えた理由にも言及。そこにおいて同社では、長年マイクロソフトの基盤技術として使われ続け、今後に向けても適用形態を変えながら継続的にその活用が進んでいくXAMLの重要性を改めて強調し、イベントを締めくくった。