26
Introduction to the Salesforce Mobile SDK for Android Joshua Birk, salesforce.com, Developer Evangelist @joshbirk Wolfgang Mathurin, salesforce.com, Software Engineering PMTS

Introduction to the Salesforce Mobile SDK for Android

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Introduction to the Salesforce Mobile SDK for Android

Introduction to the

Salesforce Mobile SDK for Android

Joshua Birk, salesforce.com, Developer Evangelist

@joshbirk

Wolfgang Mathurin, salesforce.com, Software Engineering PMTS

Page 2: Introduction to the Salesforce Mobile SDK for Android

Safe Harbor

Safe 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 l itigation, 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: Introduction to the Salesforce Mobile SDK for Android

Device Growth Is Exploding, Driven By Consumers

Source: Gartner Research; Smartphone, Tablet, and PC Forecast, December 2010.

Page 4: Introduction to the Salesforce Mobile SDK for Android

Info Workers Use Many Devices For Work & Personal

52% of information workers use 3 or more devices

60% of these devices are used for both work and personal use

Source: Forrester Blogs: Why Tablets Will Become Our Primary Computing Device, Frank Gillett, April 23, 2012

Page 5: Introduction to the Salesforce Mobile SDK for Android

Mobile SDK: Accelerate App Development

API Wrappers Interact with Salesforce REST APIs with

popular mobile platform languages

Secure Offline Storage Store business data on a device with

enterprise-class encryption

Push Notifications Dispatch real-time alerts directly to mobile

devices

Tools for building native, hybrid, and HTML5 apps on iOS and Android

OAuth2 Secure authentication and refresh token

management

App Container Embed HTML5 apps inside a container to

access powerful native device functionality

Page 6: Introduction to the Salesforce Mobile SDK for Android

Mobile Application

Building Blocks

Page 7: Introduction to the Salesforce Mobile SDK for Android
Page 8: Introduction to the Salesforce Mobile SDK for Android

OAuth

An industry standard method of validating user credentials

while avoiding password anti-patterns.

Page 9: Introduction to the Salesforce Mobile SDK for Android

OAuth2 Flow

Remote

Application

Force.com

Platform

Sends App Credentials

User logs in

Token sent to Callback

Confirms token

Send access token

Maintain session with

refresh token

Page 10: Introduction to the Salesforce Mobile SDK for Android

REST Explorer

Page 11: Introduction to the Salesforce Mobile SDK for Android

Representational State Transfer (REST) A stateless data transport based on standard HTTP

methods for delivering as JSON or XML

Page 12: Introduction to the Salesforce Mobile SDK for Android

5 Minute Android

Application

Page 13: Introduction to the Salesforce Mobile SDK for Android

Step 0: Setup Dev Environment

Required tools

Git [distributed version control system]

Ant [java based software build system]

Eclipse [integrated development environment]

Android SDK

ADT Plugin [Android Plugin for Eclipse]

Page 14: Introduction to the Salesforce Mobile SDK for Android

Step 1: Install Salesforce Mobile SDK

Clone the repo

$ git clone

https://github.com/forcedotcom/Salesfor

ceMobileSDK-Android.git

Run install script

$ ./install.sh

Page 15: Introduction to the Salesforce Mobile SDK for Android

Step 2: Create New Application

• Run create_native ant target $ ant create_native -Dapp.name=MyFirstNative -

Dtarget.dir=./firstnative -Dpackage.name=com.acme.firstnative

Build and deploy new application $ cd native/SalesforceSDK

$ android update project –p .

$ cd ./firstnative

$ android update project –p .

$ ant clean debug

$ ant installd

Page 16: Introduction to the Salesforce Mobile SDK for Android

In Just Five Minutes…

We have created a new application that leverages the Salesforce

Mobile SDK for Android.

Page 17: Introduction to the Salesforce Mobile SDK for Android

Exploring the code

Page 18: Introduction to the Salesforce Mobile SDK for Android

Key files

Import the project in Eclipse, have a look at:

AndroidManifest.xml

res/values/rest.xml

MainActivity.java

Page 19: Introduction to the Salesforce Mobile SDK for Android

Login/logout

To talk to the Salesforce server you need a RestClient:

clientManager.getRestClient(…)

This call will automatically kick off the login flow if needed.

When you make request to the server using the RestClient,

your access token is automatically refreshed whenever it is

expired.

To log out simply call:

ForceApp..APP.logout(…)

Page 20: Introduction to the Salesforce Mobile SDK for Android

REST calls

REST API (com.salesforce.androidsdk.rest.RestRequest)

getRequestForQuery

getRequestForSearch

getRequestForCreate

getRequestForDelete

getRequestForUpsert

getRequestForUpdate

getRequestForDescribe

Page 21: Introduction to the Salesforce Mobile SDK for Android

Let’s add Search

Page 22: Introduction to the Salesforce Mobile SDK for Android

Modify User Interface

Edit main.xml <EditText android:id="@+id/search_text"

android:layout_height="wrap_content" android:layout_width="200dp"

android:hint="@string/search_hint" android:inputType="text"/>

<Button android:id="@+id/run_search"

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:text="@string/search_button"

android:onClick="onSearchContacts"/>

Edit strings.xml <string name="search_hint">Search contacts</string>

<string name="search_button">Search</string>

Page 23: Introduction to the Salesforce Mobile SDK for Android

Hookup Server Call

Edit MainActivity.java

public void onSearchContacts(View v) {

TextView textView = (TextView) findViewById(R.id.search_text);

String searchText = textView.getText().toString();

String soql = "SELECT Name FROM Contact WHERE Name LIKE

'%" + searchText + "%'";

sendRequest(soql);

}

Page 24: Introduction to the Salesforce Mobile SDK for Android

In Just A Few Minutes…

We have modified our application to do contact search…

Page 25: Introduction to the Salesforce Mobile SDK for Android

Speaker Name

Speaker Title,

@twittername

Speaker Name

Speaker Title,

@twittername

Speaker Name Speaker Name

Speaker Title,

@twittername

Speaker Title,

@twittername

Page 26: Introduction to the Salesforce Mobile SDK for Android