thank you so much for being great ambassadors great ambassadors for our product a lot of what we do is because of leaders and ambassadors like you thanks a lot before you guys sit down first-timers turn around look because these are the guys who can hook you up with where you can hang out for the next four days thank you thanks a lot so in 30 seconds what what we’re going to do in this session is the problem statement is we’re going to help our customers change their Salesforce one experience with either components that we are going to expose or with components our partners are going to build or components that you guys would build for your specific business needs I’ll show you a demo of the app builder which is the future version of how you can change your experience and in the process I’m going to talk about how we build our components so during the demo I’ll talk about some best practices how we build our components and how that relates to what you want to do so that’s what we’re going to do am i loud enough is this good awesome thanks am I too loud I’ve got a full panel here I’ve got Jason Jesse and Michael they would be part of the QA I’ve got extended QA down there so any questions you have we should be able to get to I’m also going to have skip who is the gentleman who does a lot of the lightening and exposing the component he’s the product manager for that he’s going to join us later so if you have any questions regarding lightening components and how they get exposed and how our partners built and what’s the roadmap for that he should be able to answer that all right before I go any further safe harbor we are a publicly traded company we in this session we will be showing future features and current features any buying decisions you make please make it on currently available features the future features we intend to build them but any buying decisions please make it on current features are there any business leaders or IT leaders here who make buying decisions thank you I’ll jump into the demo all right so what I have here is an emulator a standard Salesforce one out of the box emulator that a lot of you guys would have seen till the you know nothing special nothing different from what you have seen on the background I’m going to show you the lightning app builder how many of you guys have had a chance to check out the Lightning app builder since this morning okay so it’s new for a lot of you guys awesome going to quickly build two things I don’t like the way my view is so I’m going to build my recent views one what you see on the left side is components that we have built and components that our partners have built this is something which they our partners have built in the last month and a half two months so this is still pilot it’s still being worked through but this is our vision our vision is you would have components that Salesforce builds you would have components that our partners build and you’ll have components that you would build available in the same vein and you would be able to drag and drop and build your new Salesforce on experience when I say new Salesforce one experience what I mean is if you just are going to alright a field if you’re going to add a widget or you’re going to change the way the Left panel works or the Left pane the left navigation panel works so all of that is possible I’m going to give you a quick example on what I mean I don’t like the way my recent items work right now so what I’m gonna do is I’m going to

add that so my recent items onto it going to add I’ve got an account in there going to add a contact I’m going to add an opportunity and quickly say okay and I’m going to save that I’m gonna create another page I’m gonna call that my territory one again and what I’m trying to do here is I’ve heard a lot of customers talk about this which is I’m driving I have a territory which is a geographical area I’m driving I’m visiting my territory I see a new company or a new account I want to know if that account already exists in the system and if it does how can I find it so the way we’re trying to solve that problem is I one of our partners has a has a geo now which they have built that’s right here I’m not going to do with the data and the central location what the data URL does is it notes the accounts that are there and then it’s a Jason at this point and then the central location is basically centering around a certain area not going to do that right now and I’m going to add a filter list which is one of our components and all I’m gonna say is my accounts this is I’m doing this on a demo org something which is available now but in a couple of releases you should have this available for for all the arts or if you sign in the goal is if you build your own the components that you see on the left side would be available if you build your own components it will be available on your org or orgs the quick easy way to activate this is instead of my decorator note to self next time I think I should the screen becomes smaller when I do it this way I’m sorry about that all right and I’m gonna at this point nothing has changed do a refresh all right so what we just built I could see it here and this is my recent items I’ve got an opportunity an account and a contact if I go to a new account my recent items would change and same with territory so the the public interface for our components is two things one is attributes and the other is events an example of attributes here is I don’t like that I only see one of the latest item I want to see let’s say three or four of the latest item then I should be able to set it as an attribute and the way the where I should set it up is on the on the builder I should be able to see it on the the Left

nav and I should be able to set my attribute so that’s one of the reasons why it’s pilot at this point if we are able to set up an attribute here that’s one step closer to being GA a lot of the way our components work is through events so there are two kinds of events general app level even so the referent the Refresh that you saw is a general app level even when you do a refresh it refreshes every component that subscribes to it that’s a general publish/subscribe model or any page up page down that you do on an even on a component or when components talk to another component all those are events so for example in the in the territory example that I gave you earlier if I have a map I’m driving down I see a new account if I expand the map I should have the new list of accounts in my filter list once we are able to hook this up that’s that’s our vision and the way our components are built right now it will completely support that vision and that’s because most the the contract that our components have is evens and attributes the general construct through which salesforce1 is built is you have a left nav which is this central central space central panel and then you have notifications and then you have actions which or pop-ups are messages which can which would come up from the bottom so as long as when we built our components we try to build our components for one of these patterns as long as our ISPs are as long as you built your components adhering to one of these patterns it should seamlessly work inside Salesforce one that’s our goal so I showed you how you can change the Salesforce on XM experience the one of the other things that one of our partners have done is they have also changed they’ve they’ve had a plug-in which would overwrite a field if you notice they probably feel there there’s a little widget which comes up or if you notice the this a political map which is shown for this opportunity or a snapshot that comes up all these are extensions or plugins that were built by our partners in the in the last six weeks so to come back or components are basically a functional unit everything is a component for us whether that’s a button or that lookup or that’s a field or a list everything is a component we reuse a lot of our components and we use theming actively for example if if I take this if I take accounts this is a list if I go to my feed this is a gain a list the only difference is the templating that’s associated to these lists are different so this is all our components basically follow have teaming and the component functionality separate and that’s how we reuse reuse the same components in different parts of the app I’ll give you another easier example this is a menu and so is this both have the basic component is the same but the templating is different that’s the only difference the components we built have supported a

lot of browsers almost all the browsers that are available today add undone criteria for us is if a component goes through a UI aux review the code is design and design and code review there’s accessibility testing that’s on our components almost all our components pass accessibility all of them go through a performance testing there is cross browser and device testing and then we have offline which I can talk about after this most of the cross browser testing is is automated some of it is manual but most of it is automated either as unit testing or end-to-end integration testing I have two things I want to share with you one is regarding accessibility and that’s around menu it’s a very good use case and it also brings out some of the challenges that we faced around making menu accessible Jessie could talk about that yeah okay um who here is familiar with accessibility may know what that is alright so for those of you who are not familiar with accessibility essentially accessibility makes sure that people who have disabilities can use your application of your product one of the clearest giveaways that you have or dealing with an inaccessible application it can be seen in the menus so we knew that was really important for us if you think about in software applications say just a browser or if you use outlook still perhaps that file edit view etc menu who’s ever navigated as using a keyboard may be alt F to open the file once they get up there they are down alt F Q is a quick way to get out things like that who the people who have done that how many times have you tried to use an arrow key or use your keyboard to use a menu in a web-based application and had difficulty there maybe a few and so that’s pretty common so what we wanted to make sure is that when we built these components especially for Salesforce one even if we knew it was mostly at least initially going to be viewed on a mobile device we wanted to make sure that these components were completely accessible so what we did was we used the WCAG specifications and the Aria specifications from soar to of the international standards for accessibility as put out by the World Wide Web Consortium and we uh we built that into that component and some of the difficulties that you actually kind of wanted to oh you wanted me to allude to were making them in such a way that when people kind of extend these components and make them their own ensuring that a lot of that accessibility that we built in remains there when you have a framework that is so componentized you could take any piece you want and we found as a lot of times people took only some of them I’m gonna take the list but I’m not gonna take the button or the trigger I’m gonna take the trigger but I’m not gonna make the list or I want my list to look different and so that was a big evolution that we went through and we really found a good way to keep that together mostly through you know quality testing I really helped us out there anything else you’re looking to add about our menus any questions anybody has about accessibility or accessible components we can do cute okay the two other things that I want to bring about bring out is offline and some of the things that we do for performance so the general offline use case I’ve heard is where customers have a protocol or they go off the grid they should be able to save the micro-moments or the bigger moments and they should be able to access it later what we have done is we have made each of four components offline supported so even they we’ve taken off the server dependency for our component so that they if when you build by taking different components as long as you’re able to cache the record your component would support your offline use case so that’s how we have we have we have and we have solved that problem it’s not DEA at this point but in the next one or two

releases you should be able to see that some of the other things we do for performance is we bash our calls we do wherever possible app logo caching so the newer phones support that level caching we when newer phone is identified we do app level caching some of the rendering we do on the server side and we do on-demand JavaScript rendering or more on the client side when we are adding data we append we don’t create so these are some of the things we do to increase our performance and our components gonna do a time check it’s we’ve got another 15 minutes so what I’m gonna do is I’m gonna throw it open to Q&A but before that we built our components to support a mobile phone and then now we’re supporting a tablet I can’t predict how our UI is going to change I mean we could have a bigger screen we could have something like Minority Report where you know three or four people are working you know accounts and adding contacts and pulling opportunities but I believe if we go to a UI like that or if we go to a wearable UI I believe the way we’re building our components should be able to support those UI those form factors so with this I’m going to throw it open to questions but before we’re going to invite skip or he should be able to answer a lot of the questions on the lightning app builder and how components are exposed if you have questions we do have some mics in the room here as well so that everybody can look in here maybe it was implicit in your description but are the components authored completely in JavaScript are there some apex part to them how is one of the partners once you showed what sort of files make up its implementation I’ll take that um there’s actually a number of files that make up a lightning component bundle so you have a markup file which is a component file itself it’s largely XML or XHTML markup then there’s several JavaScript files that include a controller a helper a renderer and then you can have a style file which is a dot CSS file and then you can have a doc file a dot or a doc file now those make up the client-side component that’s delivered to the client piece there’s also the apex controller so inside of your component you can say you utilize a particular controller and it calls out to that via a lightning action and there you’re going to call actually an apex class call method on that class that’s marked as at are enabled that’s an annotation for it makes it available to aura and what we do is we actually will make the calls to the server and asturian of us mentioned we do some box carring of all the requests that come in within a certain time period so that you know making multiple requests being very chatty then we were turning that back down basically as a JSON representation so what you’re dealing with on the client side is the JSON version of what you see on the apex side but it’s all apex so ever does that answer your question see but all this work into the mobile site and that’s very exciting but is there going to be any support soon for having this on the desktop side so not in the current desktop content there’s future you eyes that will be lightening component-based and most if not all of the current cells for she Waze are being built our lightning component base so if you’ve seen some other sessions they talked about some of the futures that’s where we’re going there but we don’t currently have plans to enable a tab in the classic or lightning component to have excuse me in the classic desktop UI and there are several reasons around that it’s not saying it couldn’t be done technically but it’s not planned to be done but because you think about the what the Lightning Builder was so that demo you saw that the tool that many of us used to build that app a desktop application that is being built using lightning funds and although the focus was on the mobile experience using the lightening components that doesn’t mean that the components aren’t usable on the desktop and kind of as you kind of saw in the browser compatibility tab the components are already being tested across all the major desktop browsers including some of a minor desktop browsers as well and I believe in the current release there are actually desktop places where lightning components are being used instead of as part of the aloha UI does that mean that if we wanted to we could attempt to try to use lightning

components in traditional visualforce pages or only or is that completely cut away from us for the time being again we don’t have any plans right now to let you use an hour component or lightning component directly inside of a visualforce page or in the classic the aloha user interface that’s our safe harbor statement that’s about the best I can say at this point thank you I skip can you speak to the issues with canvas and lightning because we’ve seen a I guess when you enable lightning and warns you about canvas can you clarify certain so the questions around if you go to the quick starts and other sessions where you enable lightning components and you see a warning message saying warning this will disable canvas the reason is is around a security restriction for basically the same domains you’ll notice if you run a one dot app or there are apps it’ll change the URL to be lightning force comm instead of we’re required to run outside of the Salesforce domain for security purposes much in the way that visualforce does as well so whenever you see that URL change that’s so we can allow for these components to have access without getting full access to the domain the canvas applications were written without that anticipation and when they’re suddenly ain’t have the URL changed on them they lose the connection and they lose importantly the connection back via a CID for doing rest calls and so forth back into the server side we’ll be addressing that most likely in the spring 15 release if not in the patch before then but it’s a bigger issue than admit sounds like because it’s not just simply a matter of changing a URL for the iframe that canvas runs and it’s actually at a different level there but it’s something we will make sure it’s a short term type issue when you spoke but offline just trying to get an idea more about caching I mean most developers working with a mobile sdk just use north square land use the backend security on its own and salesforce won last year we’re all wondering would that functionality be over the box itself or so on it’s like and getting closer to that or is it still something that’s being thought of it so is the question that how soon is the offline support available well it’s more than nature the offline we’re talking more about caching that sounds more like you have to have downloaded a record to your phone before you can go offline whereas the Mobile SDK can go off and get you store it locally sure I guess so so you’re thinking of um pre-caching for you I don’t believe right now there’s any pre-caching but they’re working on that and this is different from just the Mobile SDK it would utilize some that technology but the the team building which is called the smart cash is aware of that and the idea is to anticipate things you might want to have and make available to you but right now I’m pretty sure there’s nothing that’s pre-caching like that and this is not a case where the offline is going to load you know lots of Records in fact in the older touch you eyes and so forth there was ability to basically download lots of stuff Austria records and what they found is that very few people actually use that in fact it doesn’t make a lot of sense to have your entire Salesforce experience replicated on the mobile device it’s it’s not practical it’s not as well used but offline will be a way that you can cache things at a more selective level and still do some of the same things but in a way that will work and scale better so from a development management and operations perspective as a team who’s just getting familiar with this what would you suggest we do to start learning what are the tools that are available to us what’s our how does our way of working change going from a Apex visual force force IDE mavens make kind of world into into this world so again you know wouldn’t you look at the safe harbor statements we can’t recommend that you use anything that’s in beta to make your decisions right now our hope is that in the next release or two we’ll be in the GA form it will have it fully available you’ll be able to build things and you know put them on app exchange to share them etc but you can’t make your decisions based upon beta or other forward-looking type things that being said personally I would encourage you to take a look at it it is the way we’re building all of our new you eyes it’s very significant and it has advantages because it’s made four components a very strong component model it’s made for you to build things and share them and interoperate it uses made to be tooled from the start so there’s a lot of things we’ve done to enable these features that’ll be really good for Salesforce customers down the road but today it’s hard for me to say go do it without you know looking at your particular timeframes and timelines and

your own requirements would you mind elaborating a little bit more about it can you hear me now oh yeah okay would you mind elaborating a little bit more about the tools measurements and benchmarks that you guys use in regarding accessibility performance testing that you guys do are those available tools or what tools what yeah yeah what tools what measurements you use to ensure that your components are meeting the performance and accessibility benchmarks that you’re setting that’s a great question thanks so al all those who we actually use our homegrown for example doing talk about accessibility there’s an echo I’ve got accessibility we actually have a JavaScript accessibility test that goes through a lot of the W CAG rules and make sure for example that all anchors have text all buttons have some sort of text as well whether it’s hidden or not some of the performance metrics that we do we have an in-house tool that we actually use to see how how long it takes a component to load rendering script all that good stuff and then we make sure that either we stay at that mark or it’s just a little bit more otherwise us using the component if they go too slow you won’t want to use them it’s that kind of a yield war yeah that’s exactly what I was asking are any of those tools potentially going to be made available to Maya’s fees or developers in general it’s like I paid you to come here it’s amazing didn’t I get the check we can handle it later so the accessible tool is actually within the is with an open source aura um internally we go through everyone who writes it internally anybody who writes a Noricum or we write the component lightning component sorry it ends up being opted into all accessibility tests and we have performance metrics that go through everything make sure that hey this is running slower oh hey this is running faster actually good job guys yet like gold star so currently its internal through open tour it is with open source yeah yeah so like was it out slash or beside that bundle is the accessibility tests I don’t believe they’re currently exposed the platform yeah once again the platform is its beta yeah so anything that’s due to change something which we have on our roadmap but that’s way down to three releases at least two three releases away he can answer one of our other initiators has that on their roadmap but it’s at least two three releases down so it really pains me to ask this but I noticed for the controllers that we had to expose for the JavaScript for the lightning needs a special annotation will that be available for a professional Edition so is the question that will lightning components run all professional edition yeah so right now there is a requirement that you have a namespace in order to build lightning components hence the de restriction to develop additional restriction that’ll be removed in the next release it’s not it’s not actually a limitation it’s just the fact that we didn’t get enough done the last release so right now you have to create a namespace and you can only do that in a de org you can however deploy your lightning components into other orgs and the only real requirement right now is that they’ll be able to run Apex so if you have apex on an org you can use the lightning component base the bundles on there well you say deploy but actually that has caught us a few times because we’ve deployed packages with record types and our web services and that blocks us from install professional edition that’s what I’m worried about I don’t really know if I know the answer for that but the answer is is this this is just a standard package you build it the same way you build other packages so if you can deploy other packages into your you should be able to do so the lighting itself is is treated just as another resource inside of Salesforce right

thanks can take one more question this any all right Thank You England oh sorry the left-hand side of the app builder you’ve got room for about ten components on the left-hand side other people have done is that going to be expanded can we sell components and will not be another party app exchange or is this that where you’re thinking of going so right now we’ve we’ve exposed a fairly small set of components that will be broadened in fact we’ve got several hundred components that are being reviewed right now for exposure out for use by our customers and these range from fine grain components up to very large components that do a lot of cool things that’s in the future if you will hopefully not that far in the future as far as being able to sell components answer is yes you can actually package and deploy these and upload them to app exchange someone else can install them now it’s still new enough that the process of getting component approved for it has not been fully vetted but that’s part of the beta is going to be testing that out so right now you can’t you can’t buy stuff that’s in beta all fabrics change anyway it’s all beta for install but that that will be done by GA so you’ll have a full component marketplace for you to upload install buy sell etc again this is built for force comm it’s it’s even though we started with an open-source framework the RF framework everything we’ve done for lightning components is for force comm support so it fully supports everything you’d expect internally we are going for the process of exposing components all the teams are going through it we’re looking at either the next two releases you should have a larger set of components available that’s the goal all right thanks thanks for I’m going to wrap up with that thanks for thanks for