Salesforce
Lightning

Lightningアプリケーションを作る価値はあるかどうか

More than 3 years have passed since last update.


tl;dr

コンポーネントですべてやった方が良いです。

(しばらくLightningをいじった方は皆さんそういう結論だろうなとは思うのですが、そのような記事が見当たらなかったので書いておきます)


はじめに

Lightningではコンポーネントとアプリケーションが作れます。コンポーネントも別のコンポーネントを入れ子にすることができますし、どちらも良く似ているように見えますが、微妙にできることが違います。

その中で最も重要なのは、Salesforce1にLightningタブを追加するにある件で、Salesforce1タブに追加するにはLightningコンポーネントである必要があります。


コンポーネントのラップ

コンポーネントをアプリケーションにするには、下記の様に1つラップすれば済むことです。

PCでのプレビュー用に、このようなアプリケーションは1つ作っておくと良いでしょう。


YourPreviewApp.app

<aura:application>

<yournamespace:YourWorkingComponent />
<!--
<yournamespace:YourAnotherDemoComponent />
<yournamespace:YourAnotherDemo2Component />
-->

</aura:application>


YourWorkingComponent.cmp

<aura:component implements="force:appHostable">

<!-- your code goes here -->
</aura:component>

逆に、一度アプリケーションで作ったものを、やはりSalesforce1に入れたくなったり、別のアプリケーションの中に入れたくなった時、コンポーネントに入れ込む作業はかなり大変です。


願望

思うに、ユーザーはアプリケーションを作れる必要はなくて、開発者コンソールでappHostableのコンポーネントを開いた時にPreviewボタンが出ていて、システムが用意したPreview.appで当該コンポーネントを開くようになっていれば良いようにも思います。

ファイルを開く画面でも、appHostableかどうかの色分けがなされていたりするとわかりやすそうです。今のバージョンではアプリケーションとコンポーネントの違いもわからないので、今後のバージョンアップでそういう風になると良いなーと思います。