API Design and Enterprise Mobile Apps

2,383 views
2,219 views

Published on

From Renaissance 2014, how to design APIs for enterprise mobile apps, and how to approach the Salesforce platform as native iOS developers.

Published in: Technology

API Design and Enterprise Mobile Apps

  1. 1. API Design, Development and Enterprise Apps RENAISSANCE 2014 SAN FRANCISCO, CA JANUARY 31, 2014 1.31.2014 - WWW.QUBOP.COM
  2. 2. Hello! Evan Kirchhoff COO, Qubop Inc. evan@qubop.com twitter: @theevank www.qubop.com twitter: @qubopinc 1.31.2014 - WWW.QUBOP.COM
  3. 3.
  4. 4. OUTLINE What is Salesforce? Salesforce for native iOS developers API design for enterprise apps 1.31.2014 - WWW.QUBOP.COM
  5. 5. IN A GOOD MOBILE APP, API DESIGN IS DERIVED FROM UI DESIGN 1.31.2014 - WWW.QUBOP.COM
  6. 6. IN MOBILE, YOUR UI DESIGN DETERMINES YOUR BUSINESS MODEL* * SLIGHTLY CONTROVERSIAL TO CLIENTS 1.31.2014 - WWW.QUBOP.COM
  7. 7. What is Salesforce? 1.31.2014 - WWW.QUBOP.COM
  8. 8. = ?! Mobile Back-end as a Service (MBaaS) 1.31.2014 - WWW.QUBOP.COM
  9. 9. The “Big 4” Salesforce elements from a mobile app developer’s point of view (BASED ON MARKETING TERMS THAT YOUR CLIENTS WILL KNOW) 1.31.2014 - WWW.QUBOP.COM
  10. 10. Our job is to “flatten” the platform into a minimal set of APIs 1.31.2014 - WWW.QUBOP.COM
  11. 11. The Salesforce architecture & APIs = 1.31.2014 - WWW.QUBOP.COM Default apps running on a general-purpose database platform with common APIs
  12. 12. The Salesforce architecture & APIs = = 1.31.2014 - WWW.QUBOP.COM Different APIs Different APIs
  13. 13. Example: the Sales Cloud technology stack Lead Objects & Opportunity Objects DATABASE TABLES SOQL QUERY LANGUAGE Apex SERVER MIDDLEWARE CODE VisualForce / HTML5 WEB UI AND PRESENTATION 1.31.2014 - WWW.QUBOP.COM
  14. 14. The Salesforce developer community is primarily a web development community ...and extremely seperate from the iOS developer community 1.31.2014 - WWW.QUBOP.COM
  15. 15. Salesforce for iOS Developers 1.31.2014 - WWW.QUBOP.COM
  16. 16. Typical Salesforce “sales pipeline” model SALES OPPORTUNITY SALES LEAD PROSPECTING (10%) QUALIFICATION (20%) PROPOSAL (50%) NEGOTIATION (80%) WON! or CLOSED 1.31.2014 - WWW.QUBOP.COM
  17. 17. Default Salesforce web paradigm 1.31.2014 - WWW.QUBOP.COM
  18. 18. Does Salesforce 1 (Nov 2013) affect the world of native iOS developers? (NOT THAT MUCH, SO FAR) 1.31.2014 - WWW.QUBOP.COM
  19. 19. The “Salesforce 1 app” (hybrid platform) 3RD PARTY WEB-TECHNOLOGY APPS PLUG INTO THE LEFT SIDE MENU BUILT-IN ACCESS TO STANDARD SALESFORCE DATA TYPES 1.31.2014 - WWW.QUBOP.COM
  20. 20. Salesforce platform: what is interesting to native iOS developers Native SDK (OAuth, communication stack) Rapid back end development Automatic server-side optimization Lots of free general business logic Authentication, security, user roles Valuable clients: $$$ 1.31.2014 - WWW.QUBOP.COM
  21. 21. Sales Organization Manager (live demo) NATIVE IPAD APP USING ALL OF THE “BIG 4” SALESFORCE ELEMENTS 1.31.2014 - WWW.QUBOP.COM
  22. 22. API Design for Enterprise Apps 1.31.2014 - WWW.QUBOP.COM
  23. 23. Design the app UI first! 1.31.2014 - WWW.QUBOP.COM
  24. 24. The world’s smartest dumb terminal EVEN IF BUSINESS LOGIC LIVES ON THE SERVER, THE CLIENT IS “THICK” AND MAY CONTAIN SUBSTANTIAL UI LOGIC 1.31.2014 - WWW.QUBOP.COM
  25. 25. Don’t design the UI based on the data structure THE USER DOESN’T PERCEIVE THE APP THE WAY YOU PERCEIVE THE DATA X ...AND THE SCREEN IS VERY SMALL 1.31.2014 - WWW.QUBOP.COM
  26. 26. Don’t be satisfied with the stock APIs THIS USUALLY MEANS THAT YOU’LL NEED TO WRITE MIDDLEWARE 1.31.2014 - WWW.QUBOP.COM
  27. 27. Sales Organization Manager: our custom API calls from iOS 1.31.2014 - WWW.QUBOP.COM
  28. 28. Example: Opportunities Heatmap UI 1.31.2014 - WWW.QUBOP.COM
  29. 29. Example: Opportunities Heatmap UI 1.31.2014 - WWW.QUBOP.COM
  30. 30. (1) iOS connection to custom Apex endpoint
  31. 31. (2) Apex class written specifically to feed this heatmap UI (MASHES UP LEAD AND OPPORTUNITY OBJECT DATA) 1.31.2014 - WWW.QUBOP.COM
  32. 32. (3) JSON response from Apex, converted to NSDictionary in iOS 1.31.2014 - WWW.QUBOP.COM
  33. 33. (4) Finally: render the circles and columns in iOS “AMOUNT” = NUMBER OF DEALS IN THE COLUMN (DETERMINES CIRCLE RADIUS) 1.31.2014 - WWW.QUBOP.COM
  34. 34. Where should your code live? 1.31.2014 - WWW.QUBOP.COM
  35. 35. Business logic vs. presentation logic? 1.31.2014 - WWW.QUBOP.COM Data vs. documents?
  36. 36. Example: Documents + server-based email = API GOAL: THE SALESPERSON WANTS TO ATTACH COLLATERAL FROM SALESFORCE TO EMAIL 1.31.2014 - WWW.QUBOP.COM
  37. 37. Standard solution: use the iPhone native email client SALESFORCE DOCUMENT STORAGE 1.31.2014 - WWW.QUBOP.COM
  38. 38. Better solution: create an API to send email + attachments from the server SALESFORCE DOCUMENT STORAGE ALLOWS FOR QUEUEING LOGIC, LOW BANDWIDTH, OFFLINE CASE HANDLING 1.31.2014 - WWW.QUBOP.COM
  39. 39. Thanks! Evan Kirchhoff COO, Qubop Inc. evan@qubop.com twitter: @theevank www.qubop.com twitter: @qubopinc 1.31.2014 - WWW.QUBOP.COM

×