Painless Mobile AppDevelopmentShawna WolvertonDirector, Product Management@shawnawolTom GersicSenior Technical Architect@t...
Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation maycontain ...
@forcedotcom / #forcewebinarDeveloper Force Groupfacebook.com/forcedotcomDeveloper Force – Force.comCommunity   Follow us ...
Agenda App Demo Database.com Setup Mobile SDK overview Building the app Q&A                     Follow us @forcedotcom
Moguls Need Mobile Apps  Crump Real Estate Holdings needs an app to track service requests from their tenants            ...
What we’re going to build today   http://www.github.com/tomgersic/CrumpRealEstate                     Follow us @forcedotcom
Database.comBuilt-in Services Accelerate Mobile Development Integrated services, no external app server needed!  •    Inte...
Force.com Workbench  SOQL – Query language for Force.com and   Database.com  Very much like SQL, but has some difference...
Salesforce Mobile SDK                 Follow us @forcedotcom
Force.com Mobile SDK                Follow us @forcedotcom
Three Options: Which One Is Right For You?Advanced UI interactions                            Web developer skillsFastest ...
Hybrid Mobile App Development                 Follow us @forcedotcom
Force.com Mobile SDK             http://developer.force.com/mobile                    Follow us @forcedotcom
Force.com Mobile SDK              https://github.com/forcedotcom                  Follow us @forcedotcom
Follow us @forcedotcom
OAuthAn industry standard method of validating usercredentials while avoiding password anti-patterns.                   Fo...
Follow us @forcedotcom
OAuth 2.0 Flows Available  User-Agent Flow  Username-Password Flow  SAML Bearer Assertion Flow  Refresh Token Flow  J...
OAuth 2.0 Flows Available  User-Agent Flow  Username-Password Flow  SAML Bearer Assertion Flow  Refresh Token Flow  J...
OAuth 2.0 User-Agent Flow                 Follow us @forcedotcom
OAuth 2.0 User-Agent Flow                 Follow us @forcedotcom
OAuth 2.0 Refresh Token Flow                 Follow us @forcedotcom
Oauth 2.0 and the Mobile SDK                  Follow us @forcedotcom
Code Demo 1: Initial Setup   http://www.github.com/tomgersic/CrumpRealEstate                     Follow us @forcedotcom
Representational State Transfer (REST)A stateless data transport based on standard HTTPmethods for delivering data as JSON...
REST API  HEAD is used to retrieve resource metadata.  GET is used to retrieve information, such as SOQL   Queries using...
REST API Returns a JSON Response /services/data/v24.0/query/?q=select+Id,+Name,+Address__c,+Agreed_ Selling_Price__c+from+...
Code Demo 4 – SOQL Query and View Layer Stuff  SFRestAPI singleton  SFRestDelegate  UITableViewDataSource  UITableView...
Salesforce.com Mobile SDK SmartStore  SQLite ORM wrapper for Native and Hybrid apps built on   the SFDC Mobile SDK  NoSQ...
SmartStore Stack                   Follow us @forcedotcom
Smartstore Security  Only cross-platform NoSQL mobile database technology   on the market that comes with encryption buil...
WebSQL         http://caniuse.com/#search=websql               Follow us @forcedotcom
IndexedDB            http://caniuse.com/#search=indexeddb                Follow us @forcedotcom
PhoneGap Storage Class                Follow us @forcedotcom
Terminology Soup – is a database table used to store JSON  documents with index columns. Soups are held in Stores, which...
Step 1 – Register a Soup - (BOOL)registerSoup:(NSString*)soupName withIndexSpecs:(NSArray*)indexSpecs  soupName is whatev...
Step 2 – Upsert Soup Record - (NSArray*)upsertEntries:(NSArray*)entries toSoup:(NSString*)soupName withExternalIdPath:(NSS...
Code Demo 5 – SmartStore Register and Upsert  Create a Store  Define some indexes  Register a Soup using those indexes ...
Querying the Soup – Query Specs  Three types of query spec:    – kQuerySpecTypeExact       • kQuerySpecParamMatchKey    –...
Code Demo 6 – Querying the Soup - (SFSoupCursor *)querySoup:(NSString*)soupName withQuerySpec:(NSDictionary *)spec  Soup ...
ResourcesMobile SDK and Database.com Resources  – Salesforce.com Mobile SDK    http://developer.force.com/mobile  – iOS Sa...
http://bit.ly/mobiledev-mw      Follow us @forcedotcom
Q&APlease complete our survey    http://bit.ly/  mobileappsurvey       Follow us @forcedotcom
Upcoming SlideShare
Loading in …5
×

Painless Mobile App Development Webinar

2,102 views
2,025 views

Published on

Gartner predicts that by 2015, mobile app projects will outnumber PC app projects 4-to-1. Learn how to quickly build and efficiently maintain native mobile apps that scale on-demand by powering them with cloud technology.

In this webinar, you'll learn how to:

:: Create a cloud database for your app, one that's automatically scalable and configured for disaster recovery, all in a matter of minutes without ever leaving your browser
:: Build a native mobile app that leverages the database's open standards-based APIs for authentication and data persistence
:: Code and use a custom REST API for your app to encapsulate unique business logic and improve the efficiency of your app's performance
:: Securely store data offline to support situations when the app cannot access the cloud database

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,102
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
161
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Painless Mobile App Development Webinar

  1. 1. Painless Mobile AppDevelopmentShawna WolvertonDirector, Product Management@shawnawolTom GersicSenior Technical Architect@tomgersic Follow us @forcedotcom
  2. 2. Safe HarborSafe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation maycontain forward-looking statements that involve risks, uncertainties, and assumptions. If any suchuncertainties 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. Allstatements other than statements of historical fact could be deemed forward-looking, including anyprojections of subscriber growth, earnings, revenues, or other financial items and any statements regardingstrategies or plans of management for future operations, statements of belief, any statements concerningnew, planned, or upgraded services or technology developments and customer contracts or use of ourservices.The risks and uncertainties referred to above include – but are not limited to – risks associated withdeveloping and delivering new functionality for our service, our new business model, our past operatinglosses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Webhosting, breach of our security measures, the immature market in which we operate, our relatively limitedoperating history, our ability to expand, retain, and motivate our employees and manage our growth, newreleases of our service and successful customer deployment, and utilization and selling to larger enterprisecustomers. Further information on potential factors that could affect the financial results of salesforce.com,inc. is included in our annual report on Form 10-K filed on April 30, 2008 and in other filings with theSecurities and Exchange Commission. These documents are available on the SEC Filings section of theInvestor Information section of our Web site.Any unreleased services or features referenced in this or other press releases or public statements are notcurrently available and may not be delivered on time or at all. Customers who purchase our services shouldmake 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.
  3. 3. @forcedotcom / #forcewebinarDeveloper Force Groupfacebook.com/forcedotcomDeveloper Force – Force.comCommunity Follow us @forcedotcom
  4. 4. Agenda App Demo Database.com Setup Mobile SDK overview Building the app Q&A Follow us @forcedotcom
  5. 5. Moguls Need Mobile Apps  Crump Real Estate Holdings needs an app to track service requests from their tenants Follow us @forcedotcom
  6. 6. What we’re going to build today http://www.github.com/tomgersic/CrumpRealEstate Follow us @forcedotcom
  7. 7. Database.comBuilt-in Services Accelerate Mobile Development Integrated services, no external app server needed! • Integrated user management and security • Custom APIs to maximize performance • Social data feeds are ideal for mobile interfaces • Mobile SDKs simplify client app development Follow us @forcedotcom
  8. 8. Force.com Workbench  SOQL – Query language for Force.com and Database.com  Very much like SQL, but has some differences Follow us @forcedotcom
  9. 9. Salesforce Mobile SDK Follow us @forcedotcom
  10. 10. Force.com Mobile SDK Follow us @forcedotcom
  11. 11. Three Options: Which One Is Right For You?Advanced UI interactions Web developer skillsFastest performance Access to native platformApp store distribution App store distribution Web developer skills Instant updates Unrestricted distribution Follow us @forcedotcom
  12. 12. Hybrid Mobile App Development Follow us @forcedotcom
  13. 13. Force.com Mobile SDK http://developer.force.com/mobile Follow us @forcedotcom
  14. 14. Force.com Mobile SDK https://github.com/forcedotcom Follow us @forcedotcom
  15. 15. Follow us @forcedotcom
  16. 16. OAuthAn industry standard method of validating usercredentials while avoiding password anti-patterns. Follow us @forcedotcom
  17. 17. Follow us @forcedotcom
  18. 18. OAuth 2.0 Flows Available  User-Agent Flow  Username-Password Flow  SAML Bearer Assertion Flow  Refresh Token Flow  JWT Bearer Token Flow  Web Server Authentication Flow Follow us @forcedotcom
  19. 19. OAuth 2.0 Flows Available  User-Agent Flow  Username-Password Flow  SAML Bearer Assertion Flow  Refresh Token Flow  JWT Bearer Token Flow  Web Server Authentication Flow Follow us @forcedotcom
  20. 20. OAuth 2.0 User-Agent Flow Follow us @forcedotcom
  21. 21. OAuth 2.0 User-Agent Flow Follow us @forcedotcom
  22. 22. OAuth 2.0 Refresh Token Flow Follow us @forcedotcom
  23. 23. Oauth 2.0 and the Mobile SDK Follow us @forcedotcom
  24. 24. Code Demo 1: Initial Setup http://www.github.com/tomgersic/CrumpRealEstate Follow us @forcedotcom
  25. 25. Representational State Transfer (REST)A stateless data transport based on standard HTTPmethods for delivering data as JSON or XML Follow us @forcedotcom
  26. 26. REST API  HEAD is used to retrieve resource metadata.  GET is used to retrieve information, such as SOQL Queries using SELECT.  POST is used to create a new record.  PATCH is used to update or upsert a record.  DELETE is used to delete a record.HTTP GET:/services/data/v24.0/query/?q=SELECT+Id,+Name,+Address__c,+Agreed_Selling_Price__c+FROM+Property__c Follow us @forcedotcom
  27. 27. REST API Returns a JSON Response /services/data/v24.0/query/?q=select+Id,+Name,+Address__c,+Agreed_ Selling_Price__c+from+Property__c Follow us @forcedotcom
  28. 28. Code Demo 4 – SOQL Query and View Layer Stuff  SFRestAPI singleton  SFRestDelegate  UITableViewDataSource  UITableViewDelegate Follow us @forcedotcom
  29. 29. Salesforce.com Mobile SDK SmartStore  SQLite ORM wrapper for Native and Hybrid apps built on the SFDC Mobile SDK  NoSQL style JSON-based document store Follow us @forcedotcom
  30. 30. SmartStore Stack Follow us @forcedotcom
  31. 31. Smartstore Security  Only cross-platform NoSQL mobile database technology on the market that comes with encryption built right in.  And if you’re doing a hybrid (Phonegap) app… Follow us @forcedotcom
  32. 32. WebSQL http://caniuse.com/#search=websql Follow us @forcedotcom
  33. 33. IndexedDB http://caniuse.com/#search=indexeddb Follow us @forcedotcom
  34. 34. PhoneGap Storage Class Follow us @forcedotcom
  35. 35. Terminology Soup – is a database table used to store JSON documents with index columns. Soups are held in Stores, which are SQLite database files. This is all Apple Newton terminology – It had no real filesystem, so data was stored in database entries called “soups” – For the interested: • http://en.wikipedia.org/wiki/Soup_(Apple) • http://www.canicula.com/newton/prog/soups.htm Follow us @forcedotcom
  36. 36. Step 1 – Register a Soup - (BOOL)registerSoup:(NSString*)soupName withIndexSpecs:(NSArray*)indexSpecs  soupName is whatever you want it to be.  Indexes are defined as arrays of objects, and are needed if you want to search or sort by that field. Follow us @forcedotcom
  37. 37. Step 2 – Upsert Soup Record - (NSArray*)upsertEntries:(NSArray*)entries toSoup:(NSString*)soupName withExternalIdPath:(NSString *)externalIdPath error:(NSError **)error  entries is an array of records to upsert  soupName identifies the soup you registered earlier  externalIdPath is used by upsert to determine insert/update  NSError error handling Follow us @forcedotcom
  38. 38. Code Demo 5 – SmartStore Register and Upsert  Create a Store  Define some indexes  Register a Soup using those indexes  Upsert DBDC response data into the Soup Follow us @forcedotcom
  39. 39. Querying the Soup – Query Specs  Three types of query spec: – kQuerySpecTypeExact • kQuerySpecParamMatchKey – kQuerySpecTypeRange • kQuerySpecParamBeginKey • kQuerySpecParamEndKey – kQuerySpecTypeLike • kQuerySpecParamLikeKey  Parameters: – kQuerySpecParamOrder – kQuerySpecParamIndexPath – kQuerySpecParamPageSize Follow us @forcedotcom
  40. 40. Code Demo 6 – Querying the Soup - (SFSoupCursor *)querySoup:(NSString*)soupName withQuerySpec:(NSDictionary *)spec  Soup Name  Query Spec reference Follow us @forcedotcom
  41. 41. ResourcesMobile SDK and Database.com Resources – Salesforce.com Mobile SDK http://developer.force.com/mobile – iOS Salesforce Mobile SDK on Github https://github.com/forcedotcom/SalesforceMobileSDK-iOS – Free Database.com Developer Instance http://database.com/ – Crump Real Estate Source Code https://github.com/tomgersic/CrumpRealEstate Follow us @forcedotcom
  42. 42. http://bit.ly/mobiledev-mw Follow us @forcedotcom
  43. 43. Q&APlease complete our survey http://bit.ly/ mobileappsurvey Follow us @forcedotcom

×