Introduction to Aura

Since Dreamforce ’13 and the launch of Salesforce1, you may have heard “Aura” getting thrown around.

Aura is a UI framework for developing dynamic web apps for mobile and desktop devices, while providing a scalable long-lived lifecycle to support building apps engineered for growth. It supports partitioned multi-tier component development that bridges the client and server.

Source

Josh Kaplan, a Senior Product Manager with Salesforce.com and Doug Chasman, a Distinguished Engineer with Salesforce.com did an amazing session at Dreamforce ’13 titled “Introducing Aura: Rapid Mobile Development with Reusable Components”. I highly suggest watching this session.

On top of that session, there is a slew of different sessions available on Salesforce1, several of which discuss Aura.


So, how is Salesforce1 and Aura related? Well, Salesforce1 is built on Aura. The Salesforce team has actually developed Aura specifically for making the mobile experience better. Aura was actually originally built for Salesforce Touch. Since then, the Aura framework has grown immensely. Now, portions of Chatter, Sales Cloud Opportunity Splits”, Site.com Component Framework, and the Force.com App Builder are all using Aura. Note that this distinction is important. It is being used on both Mobile and Desktop.

Why use Aura?

Aura comes with a rich and extensible component set to kick start building apps. You don’t have to spend your time optimizing your apps for different devices as the components take care of that for you.

The framework intelligently utilizes your server, browser, devices, and network so you can focus on the logic and interactions of your apps.

On top of that, Aura has a bunch of other benefits. Some other interesting things to note about Aura:

  • It is open source
    • Aura lives on GitHub and can be forked/modified at any time. You can even contribute bug fixes or functionality changes!
  • Aura is not native to the Force.com platform
    • Unlike languages like Apex and Visualforce, Aura does not require Salesforce. It was built for Salesforce, but it can be used by any developer.
    • This will open Aura up to a much larger set of developers. In conjunction with it being open source, this framework will grow at a drastic rate
  • Aura is built using object-oriented principles
    • Aura provides the basic constructs of inheritance, polymorphism, and encapsulation from classic object-oriented programming and applies them to presentation layer development.
  • Aura heavily utilizes events to interact with different components
    • It is important to understand to the concept of event-driven programming
    • If you have ever developed with JavaScript or Java Swing, you should be familiar with the idea of event-driven programming. You write handlers that respond to interface events as they occur. The events may or may not have been triggered by user interaction.

In my opinion, Aura is the way of the future. It is going to be a fast, heavily tested mobile-first option. With the ability to quickly transition between desktop and mobile, Aura provides an incredibly powerful framework to create applications for all mediums. Take some time to start learning Aura now and get a head start!

Note: It is important to remember that this is my personal opinion. As with any opinion, it may or may not reflect the opinion of any organization I am associated with.


Note: The idea for this post was inspired by the Salesforce StackExchange. Andy Fawcett provided an excellent answer to how Salesforce1 and Aura are related. This is just another shining example of how contributing to the community, such as the Salesforce StackExchange, can teach you new things. I used Andy’s answer to research Aura even more and I am more excited about the framework than ever. Get involved and be surprised by how much you can learn too!

12 Responses to “Introduction to Aura”

  1. Peter Knolle
    December 23, 2013 at 8:52 am #

    Nice article Jesse. I’ve only played around with Aura a little bit and I can already see how powerful it can be (especially w.r.t. to a component based SWE approach).

    Now when I’m developing/using Salesforce1 in browser at the one/one.app, I find myself looking at the Salesforce1 generated HTML and finding the corresponding component in github, such as the abstractList component(https://github.com/forcedotcom/aura/blob/master/aura-components/src/main/components/ui/abstractList/abstractList.cmp). it’s neat to be able to see the code running things.

    It’s really, really, really cool (enough reallys???) that Salesforce.com open sourced it. I can’t wait to see what Salesforce.com will come up with next for aura OR what clever community members will do with it.

    • December 23, 2013 at 9:28 am #

      I love the fact that they open sourced it. It adds a new element to it that will allow it to grow. It is also pretty awesome that it is not tied specifically to the Salesforce. Adding it to the entire community will allow new and interesting add ons to be built.

      I am really excited for the possibilities here. Aura is going to really change the game and make mobile development easier. I haven’t had enough time to really dig into Aura enough, but once I do I plan on writing some articles on actually developing with Aura.

  2. December 29, 2013 at 12:21 am #

    Jesse,

    Thanks for this brilliant post. I had submitted this question on Salesforce StackExchange. This post clears several of my doubts. Aura is still relatively new and an unchartered territory for most developers so this definitely will help a broader audience of Force.com developers. I too plan on doing some detailed posts on Aura soon

    Once again, thanks – great work!

    • December 30, 2013 at 9:09 am #

      I am glad you enjoyed it and that it was helpful. I enjoyed researching it to be honest.

  3. Dmitriy
    July 11, 2014 at 9:22 am #

    Thank you!
    I installed the Aura Note sample app but still struggle how to connect the app to Salesfoce as it is done in demo. Could you provide a sample how I can use the note application with Salesforce?
    – Salesforce apex class does not understand the annotation @AuraEnabled (sample from tutorial). How to enable it for coding on SF side or to update SF records from note application?
    public with sharing class AuraConnect {
    @AuraEnabled
    public static void updateAnnualRevenue(String accountId, Decimal annualRevenue) {
    Account acct = [SELECT Id, Name, BillingCity FROM Account];
    acct.AnnualRevenue = annualRevenue;
    update acct;
    }
    }
    – Should I use web services for this (get session, token and login in SF from Note app) in order to connect Aura app with SF dev organization (if yes, could you provide a sample as well)?

    • July 11, 2014 at 10:37 am #

      Hi Dmitriy,

      To be honest, I still haven’t had much of a chance to actually use Aura too in depth myself (although I plan on changing that very soon). I don’t believe what you are trying to do is currently available. Aura on the Platform is not something that is generally available just yet so it makes sense that @AuraEnabled doesn’t work. Unfortunately, I don’t think there is a way around that just yet. You will have to use a different backend for Aura for now, but eventually it is coming to the platform.

      • Dmitriy
        July 15, 2014 at 3:06 am #

        Thank you Jesse

  4. Bilal
    July 15, 2014 at 3:48 pm #

    Hi Jesse,

    Thanks for sharing this great stuff. I think this framework is great, especially to develop custom hybrid application. But I’ve few questions:

    1) Will the app. be deployable to multiple platforms(iOS, Android) as installable app. like “Salesforce1” native app as well?

    2) Is there any “Force.com” platform integration timeline from salesforce?

    I’m really excited to use it with platform.

    • July 15, 2014 at 3:59 pm #

      Hi Bilal! In answer to your questions:

      1) That isn’t really how Aura works. Salesforce1 utilizes Aura as part of the application, but from what I understand there is definitely a native Android/iOS wrapper that handles actually running the code on the phone. For instance, something like PhoneGap – http://phonegap.com/ – is most likely used.

      2) I don’t know to be honest.

  5. Shivram
    March 12, 2015 at 2:19 am #

    This article helped a lot to understand the Aura Framework.

  6. Abhishek S. Sharma
    October 6, 2017 at 1:41 am #

    What are prerequisite to learn Aura?

Trackbacks/Pingbacks

  1. What is Salesforce1 Lightning? | Jesse Altman - November 3, 2014

    […] may recall a post I originally wrote about Aura following Dreamforce ’13. The Lightning Framework is the rebrand of Aura on the platform. I said it in my original article, […]

Leave a Comment