SlideShare a Scribd company logo
1 of 19
Download to read offline
Building a Lightning Component
with Angular Material Design
​ Patricia Cifra
​ Senior Software Engineer
​ pncifra@spanning.com
​ @pncifra
​ 
​ Lightning Component
•  What is a Lightning Component
•  Basics of creating a Lightning Component
•  Anatomy of a Lightning Component
•  Tools
​ Material Design
•  What is Material Design?
•  Where is it used?
•  Sample patterns
•  Using it in a Lightning App/Component
Overview
•  Component Framework
•  Set of tools for developers and business analysts
•  Build Apps
•  Integrate Data
•  Automate Business Processes
What is Lightning?
•  Lightning Connect: access data from external sources
•  Lightning Component: UI framework for developing web apps for mobile or desktop devices
•  Lightning App Builder: build apps without coding
•  Lightning Process Builder: workflow tool
Overview of Lightning Tools
​ Enable Lightning for your Org.
•  Click Develop à Lightning Components and select “Enable Lightning Components” and “Enable Debug
Mode”
​ Option 1: Create a new Lightning Component via Sublime plugin
​ Option 2: Create a new component from Developer Console in Salesforce
​ View Lightning Components
•  Click Develop à Lightning Components
Setting Up Lightning
​ Component or Application
•  File contains the declarative markup for the component or app
Controller
•  Contains the JavaScript controller methods to handle events fired and components
CSS
•  CSS styles scoped to the component
​ Helper
•  Contains JavaScript methods that can be called from anywhere in the component’s bundle. (very helpful!)
Lightning Files
•  Lightning Components do not allow you to load JavaScript libraries from a source outside of
your Salesforce domain.
•  Upload your resources as a static resource
•  Perform this in the setup view of the Salesforce organization
•  Create a zip archive of those resources
•  Create a package in your organization
•  Verify you can access your resource file
Third Party Dependencies
•  Resource isn’t loaded by the time the application renders
•  New release Spring 15: <ltng: require /> tag allows you to load scripts.
•  RequireJS to load dependencies for Lightning Components
•  Add a Lightning Component dependency to your component that will load RequireJS then fire
a Lightning event that will trigger a controller function in your code that calls a helper function
where you specify third party dependencies
Loading Dependencies - RequireJS
•  aura:id – The id tag enables you to assign a unique id to elements in your Lightning
component.
•  aura:attribute – The attribute tag is how you can define Salesforce data to be stored for a
component. It has been very useful to use the Lightning infrastructure to call an apex
controller that will populate an aura attribute. Then firing a Lightning event enables you to
continue processing the data in your application with the third party library handlers.
•  aura:handler – This tag wires a handler function in your Lightning controller to Lightning
events.
Lightning/Aura Attributes
​ Environment
•  3D World: material environment is 3D Space
•  All Objects have x,y, z dimensions
•  Light and Shadow
•  Shadows cast by two light sources, indicate height, space and positioning
Material Properties
•  Physical properties
•  Transforming properties
Elevation and Shadows
•  Shadows and Object relationships
Material Design
Material Design in the Wild
Depth – Placement and positioning
Material Design
Depth – Use shadows
Material Design
Color Palette
Material Design
•  Create custom ToDo Objects
•  Create Apex class to access custom objects
•  Create Lightning event to notify when custom objects have been loaded
•  Create and load static resources
•  Create Lightning App
•  Controller
•  Helper
•  CSS
•  Component
Putting it all together – ToDo List App Example
​ Sublime Lightning Plugin
•  https://github.com/dcarroll/sublime-lightning
Package Control for Sublime
•  https://packagecontrol.io/installation
ForceCli: work with force.com data from command line
•  https://force-cli.herokuapp.com/
Fix MacPath plugin: Fixes path settings for Sublime
•  In Package Control: Install Plugin: search for “FixMacPath”
Developer Tools
​ Lightning Apps/Components
•  Controller – JavaScript controller methods
•  Component – Declarative markup
•  Helper – JavaScript methods available throughout component bundle
•  Events - App or component level events that you can register and attach handlers for, pass parameters.
Material Design
https://www.google.com/design/spec/material-design/introduction.html
https://material.angularjs.org/latest/#/
Recap
Thank you
Share Your Feedback, and Win a GoPro!
3
Earn a GoPro prize entry for
each completed survey
Tap the bell to take a survey2Enroll in a session1

More Related Content

What's hot

Overview of oracle database
Overview of oracle databaseOverview of oracle database
Overview of oracle database
Samar Prasad
 

What's hot (20)

Multimedia phase 1
Multimedia phase 1Multimedia phase 1
Multimedia phase 1
 
iOS Development - A Beginner Guide
iOS Development - A Beginner GuideiOS Development - A Beginner Guide
iOS Development - A Beginner Guide
 
Ibm web sphere application server interview questions
Ibm web sphere application server interview questionsIbm web sphere application server interview questions
Ibm web sphere application server interview questions
 
Paper Presentation of SQL and PL/SQL
Paper Presentation of SQL and PL/SQL Paper Presentation of SQL and PL/SQL
Paper Presentation of SQL and PL/SQL
 
TrendMicro
TrendMicroTrendMicro
TrendMicro
 
Android Internship report presentation
Android Internship report presentationAndroid Internship report presentation
Android Internship report presentation
 
Native Advertising Presentation Slides
Native Advertising Presentation SlidesNative Advertising Presentation Slides
Native Advertising Presentation Slides
 
Modern Java web applications with Spring Boot and Thymeleaf
Modern Java web applications with Spring Boot and ThymeleafModern Java web applications with Spring Boot and Thymeleaf
Modern Java web applications with Spring Boot and Thymeleaf
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
 
Oracle security ols vs vpd
Oracle security ols vs vpdOracle security ols vs vpd
Oracle security ols vs vpd
 
Android async task
Android async taskAndroid async task
Android async task
 
JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union
 
Android SDK Tutorial | Edureka
Android SDK Tutorial | EdurekaAndroid SDK Tutorial | Edureka
Android SDK Tutorial | Edureka
 
JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6
 
Overview of oracle database
Overview of oracle databaseOverview of oracle database
Overview of oracle database
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android Application
 
Android OS & SDK - Getting Started
Android OS & SDK - Getting StartedAndroid OS & SDK - Getting Started
Android OS & SDK - Getting Started
 
Javascript Roadmap - The Basics
Javascript Roadmap - The BasicsJavascript Roadmap - The Basics
Javascript Roadmap - The Basics
 
Introduction to Android, Architecture & Components
Introduction to  Android, Architecture & ComponentsIntroduction to  Android, Architecture & Components
Introduction to Android, Architecture & Components
 
Extjs
ExtjsExtjs
Extjs
 

Viewers also liked

Ragavan Rajan_Angular Material_Certificate
Ragavan Rajan_Angular Material_CertificateRagavan Rajan_Angular Material_Certificate
Ragavan Rajan_Angular Material_Certificate
Ragavan Rajan
 

Viewers also liked (11)

Angular material vs material design light
Angular material vs material design lightAngular material vs material design light
Angular material vs material design light
 
Angular2 + Ng-Lightning + Lightning Design System = Great Apps
Angular2 + Ng-Lightning + Lightning Design System = Great AppsAngular2 + Ng-Lightning + Lightning Design System = Great Apps
Angular2 + Ng-Lightning + Lightning Design System = Great Apps
 
Salesforce Lightning Tips & Tricks
Salesforce Lightning Tips & Tricks Salesforce Lightning Tips & Tricks
Salesforce Lightning Tips & Tricks
 
Ragavan Rajan_Angular Material_Certificate
Ragavan Rajan_Angular Material_CertificateRagavan Rajan_Angular Material_Certificate
Ragavan Rajan_Angular Material_Certificate
 
Angular Material (2) - NgVikingsConf
Angular Material (2) - NgVikingsConfAngular Material (2) - NgVikingsConf
Angular Material (2) - NgVikingsConf
 
An Introduction Into Using Angular’s Material Design
An Introduction Into Using Angular’s Material DesignAn Introduction Into Using Angular’s Material Design
An Introduction Into Using Angular’s Material Design
 
The Tale of the 3 CLIs - jDays2017
The Tale of the 3 CLIs - jDays2017The Tale of the 3 CLIs - jDays2017
The Tale of the 3 CLIs - jDays2017
 
Lightning Components Workshop
Lightning Components WorkshopLightning Components Workshop
Lightning Components Workshop
 
Secure Salesforce: Lightning Components Best Practices
Secure Salesforce: Lightning Components Best PracticesSecure Salesforce: Lightning Components Best Practices
Secure Salesforce: Lightning Components Best Practices
 
Cascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the StreamsCascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the Streams
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
 

Similar to Building a Lightning App with Angular Material Design

Similar to Building a Lightning App with Angular Material Design (20)

Aura Framework Overview
Aura Framework OverviewAura Framework Overview
Aura Framework Overview
 
Lightning Components Explained
Lightning Components ExplainedLightning Components Explained
Lightning Components Explained
 
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormationTear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
Tear It Down, Build It Back Up: Empowering Developers with Amazon CloudFormation
 
Lightning web components - Introduction, component Lifecycle, Events, decorat...
Lightning web components - Introduction, component Lifecycle, Events, decorat...Lightning web components - Introduction, component Lifecycle, Events, decorat...
Lightning web components - Introduction, component Lifecycle, Events, decorat...
 
Lightning web components
Lightning web components Lightning web components
Lightning web components
 
Introduction to angular | Concepts and Environment setup
Introduction to angular | Concepts and Environment setupIntroduction to angular | Concepts and Environment setup
Introduction to angular | Concepts and Environment setup
 
Salesforce Spring 23 Webinar
Salesforce Spring 23 WebinarSalesforce Spring 23 Webinar
Salesforce Spring 23 Webinar
 
Logic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIsLogic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIs
 
Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014 Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014
 
Tutorials building connectors
Tutorials building connectorsTutorials building connectors
Tutorials building connectors
 
aOS Moscow - E4 - PowerApps for enterprise developers - Fabio Franzini
aOS Moscow - E4 - PowerApps for enterprise developers - Fabio FranziniaOS Moscow - E4 - PowerApps for enterprise developers - Fabio Franzini
aOS Moscow - E4 - PowerApps for enterprise developers - Fabio Franzini
 
Lightning connect london'15
Lightning connect london'15Lightning connect london'15
Lightning connect london'15
 
Application Architecture Summit - Monitoring the Dynamic Cloud
Application Architecture Summit - Monitoring the Dynamic Cloud Application Architecture Summit - Monitoring the Dynamic Cloud
Application Architecture Summit - Monitoring the Dynamic Cloud
 
Azure DevOps Tasks.pptx
 Azure DevOps Tasks.pptx Azure DevOps Tasks.pptx
Azure DevOps Tasks.pptx
 
Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1
 
Mastering the Lightning Framework - Part 1
Mastering the Lightning Framework - Part 1Mastering the Lightning Framework - Part 1
Mastering the Lightning Framework - Part 1
 
Ember - introduction
Ember - introductionEmber - introduction
Ember - introduction
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business Toolkit
 
Deep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLiftDeep Dive: Amazon Lumberyard & Amazon GameLift
Deep Dive: Amazon Lumberyard & Amazon GameLift
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 

More from Salesforce Developers

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Building a Lightning App with Angular Material Design

  • 1. Building a Lightning Component with Angular Material Design ​ Patricia Cifra ​ Senior Software Engineer ​ pncifra@spanning.com ​ @pncifra ​ 
  • 2. ​ Lightning Component •  What is a Lightning Component •  Basics of creating a Lightning Component •  Anatomy of a Lightning Component •  Tools ​ Material Design •  What is Material Design? •  Where is it used? •  Sample patterns •  Using it in a Lightning App/Component Overview
  • 3. •  Component Framework •  Set of tools for developers and business analysts •  Build Apps •  Integrate Data •  Automate Business Processes What is Lightning?
  • 4. •  Lightning Connect: access data from external sources •  Lightning Component: UI framework for developing web apps for mobile or desktop devices •  Lightning App Builder: build apps without coding •  Lightning Process Builder: workflow tool Overview of Lightning Tools
  • 5. ​ Enable Lightning for your Org. •  Click Develop à Lightning Components and select “Enable Lightning Components” and “Enable Debug Mode” ​ Option 1: Create a new Lightning Component via Sublime plugin ​ Option 2: Create a new component from Developer Console in Salesforce ​ View Lightning Components •  Click Develop à Lightning Components Setting Up Lightning
  • 6. ​ Component or Application •  File contains the declarative markup for the component or app Controller •  Contains the JavaScript controller methods to handle events fired and components CSS •  CSS styles scoped to the component ​ Helper •  Contains JavaScript methods that can be called from anywhere in the component’s bundle. (very helpful!) Lightning Files
  • 7. •  Lightning Components do not allow you to load JavaScript libraries from a source outside of your Salesforce domain. •  Upload your resources as a static resource •  Perform this in the setup view of the Salesforce organization •  Create a zip archive of those resources •  Create a package in your organization •  Verify you can access your resource file Third Party Dependencies
  • 8. •  Resource isn’t loaded by the time the application renders •  New release Spring 15: <ltng: require /> tag allows you to load scripts. •  RequireJS to load dependencies for Lightning Components •  Add a Lightning Component dependency to your component that will load RequireJS then fire a Lightning event that will trigger a controller function in your code that calls a helper function where you specify third party dependencies Loading Dependencies - RequireJS
  • 9. •  aura:id – The id tag enables you to assign a unique id to elements in your Lightning component. •  aura:attribute – The attribute tag is how you can define Salesforce data to be stored for a component. It has been very useful to use the Lightning infrastructure to call an apex controller that will populate an aura attribute. Then firing a Lightning event enables you to continue processing the data in your application with the third party library handlers. •  aura:handler – This tag wires a handler function in your Lightning controller to Lightning events. Lightning/Aura Attributes
  • 10. ​ Environment •  3D World: material environment is 3D Space •  All Objects have x,y, z dimensions •  Light and Shadow •  Shadows cast by two light sources, indicate height, space and positioning Material Properties •  Physical properties •  Transforming properties Elevation and Shadows •  Shadows and Object relationships Material Design
  • 11. Material Design in the Wild
  • 12. Depth – Placement and positioning Material Design
  • 13. Depth – Use shadows Material Design
  • 15. •  Create custom ToDo Objects •  Create Apex class to access custom objects •  Create Lightning event to notify when custom objects have been loaded •  Create and load static resources •  Create Lightning App •  Controller •  Helper •  CSS •  Component Putting it all together – ToDo List App Example
  • 16. ​ Sublime Lightning Plugin •  https://github.com/dcarroll/sublime-lightning Package Control for Sublime •  https://packagecontrol.io/installation ForceCli: work with force.com data from command line •  https://force-cli.herokuapp.com/ Fix MacPath plugin: Fixes path settings for Sublime •  In Package Control: Install Plugin: search for “FixMacPath” Developer Tools
  • 17. ​ Lightning Apps/Components •  Controller – JavaScript controller methods •  Component – Declarative markup •  Helper – JavaScript methods available throughout component bundle •  Events - App or component level events that you can register and attach handlers for, pass parameters. Material Design https://www.google.com/design/spec/material-design/introduction.html https://material.angularjs.org/latest/#/ Recap
  • 19. Share Your Feedback, and Win a GoPro! 3 Earn a GoPro prize entry for each completed survey Tap the bell to take a survey2Enroll in a session1