SkyVisualEditor と Salesforce1 Lightning

みなさん、こんにちは。テラスカイで製品開発を統括しています竹澤です。 秋というのはセールスフォース界で生きる我々にとって1年で最も落ち着かない時期なんですね。 それはなぜか。

セールスフォースの最大のイベントDreamforceがあるからです! 今年もテラスカイからは26名がDreamforceに参加しましたが、その中の目玉といえばSalesforce1 Lightning(以下Lightning)の発表でした。

本ブログでもたくさん記事が出ていています([ここ] とか [ここ] とか [ここ] とか [ここ])が、簡単にLightningについておさらいしますと、LightningはLightning ComponentsとLightning App Builder(以下App Builder)というものから構成されています。Lightning Componentsは画面を構成する部品を作るためのフレームワークであり、App Builderはそれをドラッグ&ドロップで配置して画面レイアウトを定義するツールです。

あれ?この組み合わせどこかで聞いたことありません? そうです弊社のSkyVisualEditor(以下SVE)に近いコンセプトですね。 SVEはSalesforce上で世界で初めて自由に画面が作れるツールとして2010年に登場しました。SVEには40種類以上の高機能なコンポーネント(部品)が備わっていて、それをドラッグ&ドロップで配置し、マウスクリックだけで見た目や挙動を変更できます。もし欲しいコンポーネントがなかったら、Visualforce Componentというフレームワークに沿って自作します。(こうして作られたコンポーネントを、AppComponentと呼んでいます。)

LightningはSVEにとって脅威になるでしょうか。 実際、お客様からもそのような質問を受けることがあります。 私の答えとしては明確にNOです。 むしろLightningの登場をとても喜んでいます。それについてもう少し説明させてください。

Lightningをもう少し詳しく

実はAuraというオープンソースのフレームワークがずいぶん前から公開されていて、我々はずっとその動向を見守っていました。 Auraフレームワークではデータを保存する部分は何でもいいよというフレームワークなのですが、Salesforceのオブジェクトに保存するようにしたものがLightningと考えるとイメージしやすいと思います。

AuraもLightningもテキストボックスやボタンなどの基本的なUIコンポーネントはビルトインされていますが、もう少し高機能なコンポーネントについては、セールスフォース社および外部ベンダーも含めてどのようなものが提供されるのかは情報があまりありません。ただし当面はモバイル向けが中心となるようです。ちなみにコンポーネントはHTML/JavaScript/Apexでコードを書いて作ります。

そして、できあがったLightning Componentsをドラッグ&ドロップで配置し、見た目や挙動をマウスで調整するためのツールがApp Builderで、こちらは現在PilotとなっていますからLightning Componentsの正式リリースより後に登場する見込みです。

同じところと違うところ

SVEには標準で提供されるコンポーネントが前述のとおり40以上あり、すぐに利用することができます。またコンポーネントを作成する際にはセールスフォースの標準機能の1つであるVisualforce Componentフレームワークが利用できるので、使い慣れたVisualforce/Apexでコードを書いてコンポーネントを作ることができます。SVEではデスクトップ向け・モバイル向けの両方の画面が作れますが、デスクトップ向けの画面の作成比率が圧倒的に高いようです。 そして、それらのコンポーネントをドラッグ&ドロップで配置するためのStudioというツールも併せて提供されており、見た目や挙動を簡単に調整することができます。配置が終わった各部品は最終的にVisualforce/Apexのソースコードに変換されセールスフォース上で動作します。

また、SVEは欲しい画面をより短時間で実現できるように、高機能なコンポーネント群を数多く揃えることにかなり力を入れています。 たとえば、最も人気が高い「検索レイアウト」というコンポーネントがあります。キーワードや日付の範囲でデータを検索して、検索結果のデータをまとめて変更したり、詳細データを簡単に見ることができる機能です。

「複数行テーブル」というコンポーネントでは、横幅が決まっているが1レコードに多くの項目を表示させたい場合に、1レコードを何段かに分けて表示できるコンポーネントです。人気が高いものとしては、郵便番号から住所を自動入力するコンポーネントなんかもあります。 そして、SVEではピクセル単位でのレイアウトが可能でそこからPDF出力できるコンポーネントがありますので、PDF帳票を作成することもできます。

時代はLightningに進むか

こう見てくると、SVEの方が利便性が高いように見えますが、HTML/JavaScriptベースのLightningの方が、サーバーサイドとの通信が多く発生するVisualforce/Apexベースに比べて軽快に動く(ように作ることができる)というメリットがあります。また、Lightningは当面モバイル向けのコンポーネントが多数リリースされることが予想されておりますので、モバイル上で高機能な画面を作りたい場合には良い選択肢になります。そしてこの先、Lightningについては多くのベンダーがモバイル向けコンポーネントを出してくることが期待できます。

SVEでVisualforce Componentに加え、Lightningコンポーネントも配置できるようになるとどうでしょうか。SVEが備える高機能なコンポーネントに加え、全世界のベンダーが作るモバイル向けコンポーネント群も配置できるようになるので、一気に画面のバリエーションが増えると思いませんか。これこそ私がLightningの登場を喜んでいる理由です。

まとめ

生まれたばかりのLightningはまだ正式リリース前ではありますが、前述のような期待を込めて、Lightning ComponentsをSVE上で使えるようにするなどのいくつかの方法でSVEとLightningの融合を進めているところです。Lighrtningによってより強化されるSVEに、今後もご期待いただければと思います。