SlideShare a Scribd company logo
Lightning Componentと
Lightning Design System
カスタムページを作ってみました
2015/10/29
NORIKO IWAI
© 2015 Appirio, Inc. - Confidential
Agenda
Lightning Componentの期待と実際
Lightning Design Systemの期待と実際
意外に使えたAuraJS
まとめ
自己紹介
• 岩井 法子
• 株式会社アピリオ
• SFDCの開発とか色々
• SFDC歴3ヶ月
• それまでは
l JavaとかC#とか・・・
l jQueryとかBackbone.jsとかNode.jsとか・・・
3
資格制度変わっちゃいましたが
今回作ったアプリ
4
• Lightning ComponentとLightning Design Systemと
AuraJSだけで頑張ってみた。
※開発環境はSublime Text 3 + MavensMate V7 beta
Lightning Componentに対する自分の理解
5
• クライアント - サーバのWebアプリケーションを開発する
ためのフレームワーク
• クライアントサイドはHTML + JavaScript(Auraフレーム
ワーク)、サーバサイドはApex
• シングルページアプリケーション(SPA)の開発に特化
• コンポーネント同士を組み合わせて階層的に利用すること
が可能
• Lightning Design SystemはSalesforce Lightningの外観
に合わせたカスタムCSS、アイコン、ベストプラクティス
のガイドなどのUI補助ツール集
Lightning Componentに期待していたこと
6
• HTML/JavaScriptの知識があれば学習コストが低く抑えら
れる。
ほぼ期待通り
• ApexのメソッドをJavaScriptからシームレスに利用できる。
• コードの見通しが良くなる。
• 便利な標準コンポーネントが最初から揃っている。
• 再利用性が高い。
Lightning Design Systemに期待していたこと
7
• Twitter Bootstrapみたいに簡単・便利なコンポーネントが
たくさん使える。
なんかちがった
• 少ない工数でリッチなUIがすぐに作れる。
• モダンなアニメーション効果を手軽に実現できる。
• Lightning Componentと親和性が高い。
Lightning Design Systemの実際
8
• Twitter Bootstrapみたいに簡単・便利なコンポーネントが
たくさん使える。
→ 提供されているのはHTMLサンプルだけ
→ カレンダーすら要自作
→ 提供されているのはHTMLサンプルだけ
→ カレンダーすら要自作
Lightning Design Systemの実際
9
• 少ない工数でリッチなUIがすぐに作れる。
show: function(component, event, helper) {
var element = component.get(‘modal’).getElement();
$A.util.toggleClass(element, 'slds-show');
$A.util.toggleClass(element, 'slds-hide');
}
<!-- Modal -->
<div aura:id=“modal”
class="slds-hide”>
…
</div>
CONTROLLER
COMPONENT
→ CSSだけならまだしも動きまで表現するとなると要自作
Lightning Design Systemの実際
10
• モダンなアニメーション効果を手軽に実現できる。
.THIS .transition-font-size {
-webkit-transition: 0.2s font-size linear;
transition: 0.2s font-size linear;
}
.THIS .transition-font-size.on {
font-size: 1.5em;
}
<li class=“transition-font-size"
onclick="{!c.selectMemberType}"
onmouseover="{!c.toggleFontSize}"
onmouseout="{!c.toggleFontSize}">
…
</li>
STYLE
COMPONENT
→ LightningのフレームワークではなくCSS3で要自作
Lightning Design Systemの実際
11
• Lightning Componentと親和性が高い。
例)
aura:inputDate の標準アイコン
STYLEで位置を調整しないと
テキストボックスを飛び出す
→ 表示がおかしくなってしまう標準コンポーネントもあった
そんな中で・・・
意外に使えたAuraJS
※ https://github.com/forcedotcom/aura のソースから抜粋
jQueryでおなじみクラス操作系
13
• $A.util.toggleClass
• $A.util.addClass
• $A.util.removeClass
• $A.util.hasClass
• $A.util.swapClass
var element = component.find("member-type-modal").getElement();
$A.util.toggleClass(element, 'slds-show');
$A.util.toggleClass(element, 'slds-hide');
便利な配列操作
14
• $A.util.forEach
• $A.util.every
• $A.util.map
• $A.util.filter
var Name = $A.util.filter(
component.get("v.memberTypes"), function(obj, index) {
if (obj.Id === id) {
return true;
}
return false;
})[0].Name;
データ操作もOK
15
• $A.util.getDataAttribute
• $A.util.setDataAttribute
• $A.util.hasDataAttribute
var id = $A.util.getDataAttribute(event.currentTarget, "id");
<aura:iteration items="{!v.memberTypes}" var="memberType">
<li data-id="{!memberType.Id}”>
<a href="#" role="option">
{!memberType.Name}
</a>
</li>
</aura:iteration>
まとめ(1)
16
• 当初期待していたような「少ない工数」「簡単でリッチな
UI」実現は難しい。
• フロントエンドのUIに限って言えば、通常のWebアプリを
一から作るのと労力は変わらない。同じ機能を実装するな
ら、Visualforceベースの方がはるかに簡単。
• 生産性、保守性ともに良いとは言えないため、現状はSIの
ようなカスタム・アプリ開発の現場でLightning Design
Systemをそのまま使うのは難しいと思われる。
• もう少しLightning Design Systemが成熟する or 別の方
法が提示されるまで待った方が良さそう。
まとめ(2)
17
• 自作コンポーネントが溜まってくれば、開発工数はかなり
抑えられる(はず。App Builder環境に期待)。
• 依存度が低く組み合わせの自由度が高いので、開発者ごと、
開発会社ごとの色が出やすくなった。
• AuraJSの豊富な機能を見ていると、今後Lightning
ComponentとLightning Design Systemのつなぎになるよ
うな標準機能やベストプラクティスがもっと増えるのでは
ないか。
以上です

More Related Content

PDF
Lightning Component × Lightning Design System
PDF
VisualforceへのSalesforce Lightning Design System (SLDS) 適用はどうします?
PPTX
SWTT2017 - Lightningアプリケーション開発現場で 実践しているノウハウ
PDF
Salesforce Lightning をやってみてあれこれ
PPTX
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
PDF
4 power night2014_yoshikawa
PDF
Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~
PPTX
Lightingコンポーネントベーシック開発
Lightning Component × Lightning Design System
VisualforceへのSalesforce Lightning Design System (SLDS) 適用はどうします?
SWTT2017 - Lightningアプリケーション開発現場で 実践しているノウハウ
Salesforce Lightning をやってみてあれこれ
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
4 power night2014_yoshikawa
Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~
Lightingコンポーネントベーシック開発

What's hot (20)

PDF
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
PDF
Angular2
PPTX
APIモック3分クッキング
PDF
Angular 4がやってくる!? 新機能ダイジェスト
PPTX
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
PDF
Salesforce dug [tokyo] meetup 2016 新年会
PDF
Lightning componentの研究ポイントあるいは…
PDF
第13回 jpsps in 大阪 share pointerのためのクラウドビジネスアプリのすすめ
PDF
俺とAngular JS 2
PDF
Angular1&2
PDF
カスタマイズされた SharePoint のアップグレードを考える
PPTX
AWS to Salesforce 活用例 ~SSL Termination試してみました~
PDF
Angularモダンweb開発セミナー紹介 20170923
PDF
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
PPTX
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
PDF
イマドキのフロントエンドエンジニアの道具箱
PPTX
SharePoint 開発入門
PDF
Enterprise x AngularJS
PPTX
20140127 riaに代わる技術 実用的spa
PDF
サーバ管理はサーバレスで
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
Angular2
APIモック3分クッキング
Angular 4がやってくる!? 新機能ダイジェスト
VSUGDAY2012 - ASP.NET MVC 4 Deveoper Preview による モバイルWEBアプリケーション開発
Salesforce dug [tokyo] meetup 2016 新年会
Lightning componentの研究ポイントあるいは…
第13回 jpsps in 大阪 share pointerのためのクラウドビジネスアプリのすすめ
俺とAngular JS 2
Angular1&2
カスタマイズされた SharePoint のアップグレードを考える
AWS to Salesforce 活用例 ~SSL Termination試してみました~
Angularモダンweb開発セミナー紹介 20170923
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
イマドキのフロントエンドエンジニアの道具箱
SharePoint 開発入門
Enterprise x AngularJS
20140127 riaに代わる技術 実用的spa
サーバ管理はサーバレスで
Ad

Similar to Lightning componentとlightning design system (20)

PDF
Intalio japan special cloud workshop
PDF
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
PDF
OWIN って何?
PDF
Angularreflex20141210
PDF
最近のWeb関連技術の動向あれこれ
PDF
Spring.project
PPTX
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
PDF
現場開発者視点で答えるWindows Azure
PPTX
WebIntentsにより拓かれる次のWeb
PDF
今なぜサーバーレスなのか
PPTX
オレたちとVisual Studioとの関係を話そう
PDF
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
PPTX
Robotium を使った UI テスト
PDF
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
PDF
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
PDF
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
PDF
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
PDF
Sharoid Service Menu
PDF
Eight meets AWS
PDF
Scala: Mobile Backend on AWS
Intalio japan special cloud workshop
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
OWIN って何?
Angularreflex20141210
最近のWeb関連技術の動向あれこれ
Spring.project
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
現場開発者視点で答えるWindows Azure
WebIntentsにより拓かれる次のWeb
今なぜサーバーレスなのか
オレたちとVisual Studioとの関係を話そう
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Robotium を使った UI テスト
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Sharoid Service Menu
Eight meets AWS
Scala: Mobile Backend on AWS
Ad

Lightning componentとlightning design system

Editor's Notes