mobile pack developer webinar

32
Building Enterprise Apps Rapidly with Salesforce Mobile Packs Pat Patterson, salesforce.com, Principal Developer Evangelist @metadaddy Raja Rao DV, salesforce.com, Developer Evangelist @rajaraodv

Upload: raja-rao-dv

Post on 10-May-2015

590 views

Category:

Technology


3 download

DESCRIPTION

Slides from Salesforce AnglarJS mobile pack webinar.

TRANSCRIPT

Page 1: Mobile pack developer webinar

Building Enterprise Apps Rapidly with Salesforce Mobile PacksBuilding Enterprise Apps Rapidly with Salesforce Mobile PacksPat Patterson, salesforce.com, Principal Developer Evangelist

@metadaddy

Raja Rao DV, salesforce.com, Developer Evangelist

@rajaraodv

Page 2: Mobile pack developer webinar

Join the conversation: #forcewebinar

Safe harborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 3: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Pat PattersonPat Patterson

Principal Developer Evangelist,

@metadaddy

Raja Rao DVRaja Rao DV

Developer Evangelist,@rajaraodv

SpeakersSpeakers

Page 4: Mobile pack developer webinar

Join the conversation: #forcewebinar

Follow Developer Force for the latest news

@forcedotcom / #forcewebinar

Developer Force group

Developer Force – Force.com Community

+Developer Force – Force.com Community

Developer Force

Page 5: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Have questions?

We have an expert support team at the ready to answer your

questions during the webinar.

Ask your questions via the GoToWebinar Questions Pane.

The speaker(s) will choose top questions to answer live at the

end of the webinar.

Please post your questions as we go along!

Only post your question once; we’ll get to it as we go down the

list.

Page 6: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Agenda

Mobile at Salesforce

• Core Apps

• Platform

• Marketplace

Mobile Pack for AngularJS

• AngularJS in 15 Minutes

• Overview of the Mobile Pack

Roundup

Page 7: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Assumptions

This webinar assumes the following:

Some minimal knowledge of the Force.com

platform

Some minimal knowledge of JavaScript

But don’t worry, this is an introduction to Mobile

Packs and AngularJS – we won’t leave you behind!

Page 8: Mobile pack developer webinar

Join the conversation: #forcewebinar

We’re living in the post-PC era

iPhone RevenueQ1 FY12

$24.42 billion

TOTAL Microsoft RevenueQ2 FY12

$20.89 billion

Page 9: Mobile pack developer webinar

Join the conversation: #forcewebinar

Suite of downloadable apps for accessing Salesforce data from a mobile device

Mobile AppExchange for discovering purpose-built apps or vertical solutions by industry

Custom mobile apps designed and built by you or an ISV partner

Salesforce Has The Answer For Every Mobile Need

Page 10: Mobile pack developer webinar

Join the conversation: #forcewebinar

Three Mobile Development Options

Page 11: Mobile pack developer webinar

Join the conversation: #forcewebinar

Salesforce Mobile Packs

The Fastest Path From Idea to Connected Mobile App

Idea

Build App with Modern Frameworks

Connect Customer &

Business Data

ConnectedMobile Apps

Page 12: Mobile pack developer webinar

Join the conversation: #forcewebinar

Mobile Packs

Jumpstart web and hybrid mobile development

Focus on modern JavaScript frameworks

Simplify Salesforce data access

Deploy on the Force.com platform or elsewhere

(e.g. Heroku)

JavaScript based

Quick Starts and tutorials

Page 13: Mobile pack developer webinar

Join the conversation: #forcewebinar

Current Mobile Packs

First of many mobile packs and samples

Open-source and community driven

Page 14: Mobile pack developer webinar

Join the conversation: #forcewebinar

AngularJS In 15mins

Page 15: Mobile pack developer webinar

Join the conversation: #forcewebinar

AngularJS – In 15mins

One of the most popular JavaScript frameworks.

Provides “declarative” MVC framework

Uses several advanced concepts like directives,

services, factories, modules, dependency injection etc. to

help quickly build (& test) production quality apps.

Has vibrant community support and funded by Google.

Page 16: Mobile pack developer webinar

Join the conversation: #forcewebinar

Directives Directives are simply strings on HTML that represent some function (behind-the-scene).

They look like:• <span my-dir="exp"></span> or <span data-my-dir="exp"></span> or <span my-dir></span>

• <span class="my-dir: exp;"></span>

• <my-dir></my-dir> //custom element!

• <!-- directive: my-dir exp --> //Even comments

AngularJS calls and keeps track of directives and associated functions.

AngularJS has tons of built-in directives like ng-model, ng-repeat, ng-click etc.

Example 1: Show Hello <name>! as & when the user types in a field.

Page 17: Mobile pack developer webinar

Join the conversation: #forcewebinar

Directives

Example 2: Show “Hello <username>” as the user types it BUT only if there

is some text.

Page 18: Mobile pack developer webinar

Join the conversation: #forcewebinar

MVC

Page 19: Mobile pack developer webinar

Join the conversation: #forcewebinar

ng-controllers, $scope & $rootScope

sdfsdf

<div ng-controller=“topBarCtrl”>has its own $scope </div><div ng-controller=“topBarCtrl”>has its own $scope </div>

<div ng-controller=

“LeftBarCtrl”>// has its own

$scope</div>

<div ng-controller=

“LeftBarCtrl”>// has its own

$scope</div>

<div ng-controller=“MainCtrl”> //has it’s own $scope </div>

<div ng-controller=“MainCtrl”> //has it’s own $scope </div>

<html ng-app=“appName”> $rootScope • Use Controller to divide up your app• Every Controller gets its own $scope.• $scope is an empty object w/ AngularJS functions.• $rootScope is a global object.

function toolbarCtrl($rootScope, $scope) { $rootScope.loggedIn = true; //visible to all ctrls $scope.somFunc = function() {}; $scope.contactsList = [{}, {}, {}]; }

function mainCtrl($rootScope, $scope) { if($rootScope.loggedIn) { //use $rootScope //do something } $scope.onItemClick = function() { … } }

Module.controller(‘LeftBarCtr’, function() {});

A tablet app

Page 20: Mobile pack developer webinar

Join the conversation: #forcewebinar

Single page app – ng-view

<div ng-view></div><div ng-view></div>

Contact Edit Page (edit.html)<div ng-controller=“EditCtrl”></div>

Contacts DetailsView Page (view.html)<div ng-controller=“ViewCtrl”></div>

Contacts List Page (list.html)<div ng-controller=“ListCtrl”></div>

Main Page (index.html)<script src=‘bla.js’></script>

<div ng-view> //Directive that allows switching different views

</div>

Page 21: Mobile pack developer webinar

Join the conversation: #forcewebinar

$routeProvider & $location “services” to switch views

Angular provides ‘#’ based routing via $routeProvider.

Configure when some #path is hit, which controller to use and which view to inject.

Use $location to actually change views inside a controller.

Page 22: Mobile pack developer webinar

Join the conversation: #forcewebinar

Modules – Packaging it all up

Modules provides namespace & help divide your app into different pieces.

var myModule = angular.module(‘myModule’, [‘dependentMod1’, ‘dependantMod2’]);

You can create and attach custom “directives”, “controllers”, “services”, “factories” etc to a module.

myModule.directive(…) or myModule.controller(…) etc.

In AngularJS, your app itself is a module.

var myApp = angular.module(‘myAppName’, [depMod1, depMod2]

Note: App name should match ng-app in html!.

<html ng-app=“myAppName”>

</html>

Page 23: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Best places to learn AngularJS..

http://docs.angularjs.org/tutorial/index

• AngularJS Tutorial

http://www.egghead.io/

• Excellent 44 short videos from @johnlindquist

http://www.youtube.com/user/angularjs

• AngularJS Youtube Channel

Page 24: Mobile pack developer webinar

Join the conversation: #forcewebinar

AngularJS MobilePack

Page 25: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Recap & Resources

AngularJS provides “declarative” MVC via directives

• Less code = more quality, quicker development.

• Learn more:

• http://docs.angularjs.org/tutorial/index - AngularJS Tutorial

• http://www.egghead.io/ - 44 short videos from @johnlindquist

• http://www.youtube.com/user/angularjs AngularJS Youtube Channel

Other tools mentioned in the webinar:

• http://gruntjs.com/ - Grunt: JavaScript Task Runner

• http://yeoman.io/ - Yeoman: Workflow for Modern Webapps

Page 26: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Recap & Resources

AngularJS Mobile Pack provides a template to

kickstart your development• https://github.com/developerforce/MobilePack-AngularJS

Github

• http://www2.developerforce.com/mobile/services/mobile-packs

Quick Start

Sign up for a FREE Developer Edition account

• http://developer.force.com/join

Page 27: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Next Steps

Get further acquainted with AngularJS

Run through the Mobile Pack Quick Start(s)

Build your own mobile app!

Page 28: Mobile pack developer webinar

2013 Mobile Dev Challenge

May the best mobile app winCreate your killer app with our New Mobile Packs

$16,000 up for grabs!

http://bit.ly/mobiledevchallenge13

Page 29: Mobile pack developer webinar

Upcoming Online Events

June 13:CodeTalk with James Governor – Developers are the new Kingmakershttp://bit.ly/kingcodetalk-mp

June 26: Mobile SDK 2.0 Webinar(details TBA)

Page 30: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

SurveySurveyYour feedback is crucial to the success of our webinar programs.

Thank you!

Your feedback is crucial to the success of our webinar programs.

Thank you!

http://bit.ly/mobilepacksurveyhttp://bit.ly/mobilepacksurvey

*Look in the GoToWebinar chat

window now for a hyperlink.

*Look in the GoToWebinar chat

window now for a hyperlink.

Page 31: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

Q&AQ&A

Pat PattersonPat Patterson

Principal Developer Evangelist,

@metadaddy

Raja Rao DVRaja Rao DV

Developer Evangelist,@rajaraodv

Page 32: Mobile pack developer webinar

Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

SurveySurveyYour feedback is crucial to the success of our webinar programs.

Thank you!

Your feedback is crucial to the success of our webinar programs.

Thank you!

http://bit.ly/mobilepacksurveyhttp://bit.ly/mobilepacksurvey

*Look in the GoToWebinar chat

window now for a hyperlink.

*Look in the GoToWebinar chat

window now for a hyperlink.