Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

Mobile SDK: Considerations & Best Practices  Slide 1 Mobile SDK: Considerations & Best Practices  Slide 2 Mobile SDK: Considerations & Best Practices  Slide 3 Mobile SDK: Considerations & Best Practices  Slide 4 Mobile SDK: Considerations & Best Practices  Slide 5 Mobile SDK: Considerations & Best Practices  Slide 6 Mobile SDK: Considerations & Best Practices  Slide 7 Mobile SDK: Considerations & Best Practices  Slide 8 Mobile SDK: Considerations & Best Practices  Slide 9 Mobile SDK: Considerations & Best Practices  Slide 10 Mobile SDK: Considerations & Best Practices  Slide 11 Mobile SDK: Considerations & Best Practices  Slide 12 Mobile SDK: Considerations & Best Practices  Slide 13 Mobile SDK: Considerations & Best Practices  Slide 14 Mobile SDK: Considerations & Best Practices  Slide 15 Mobile SDK: Considerations & Best Practices  Slide 16 Mobile SDK: Considerations & Best Practices  Slide 17 Mobile SDK: Considerations & Best Practices  Slide 18 Mobile SDK: Considerations & Best Practices  Slide 19 Mobile SDK: Considerations & Best Practices  Slide 20 Mobile SDK: Considerations & Best Practices  Slide 21 Mobile SDK: Considerations & Best Practices  Slide 22 Mobile SDK: Considerations & Best Practices  Slide 23 Mobile SDK: Considerations & Best Practices  Slide 24 Mobile SDK: Considerations & Best Practices  Slide 25 Mobile SDK: Considerations & Best Practices  Slide 26 Mobile SDK: Considerations & Best Practices  Slide 27 Mobile SDK: Considerations & Best Practices  Slide 28 Mobile SDK: Considerations & Best Practices  Slide 29 Mobile SDK: Considerations & Best Practices  Slide 30 Mobile SDK: Considerations & Best Practices  Slide 31 Mobile SDK: Considerations & Best Practices  Slide 32 Mobile SDK: Considerations & Best Practices  Slide 33 Mobile SDK: Considerations & Best Practices  Slide 34 Mobile SDK: Considerations & Best Practices  Slide 35 Mobile SDK: Considerations & Best Practices  Slide 36 Mobile SDK: Considerations & Best Practices  Slide 37 Mobile SDK: Considerations & Best Practices  Slide 38 Mobile SDK: Considerations & Best Practices  Slide 39 Mobile SDK: Considerations & Best Practices  Slide 40 Mobile SDK: Considerations & Best Practices  Slide 41 Mobile SDK: Considerations & Best Practices  Slide 42 Mobile SDK: Considerations & Best Practices  Slide 43 Mobile SDK: Considerations & Best Practices  Slide 44 Mobile SDK: Considerations & Best Practices  Slide 45 Mobile SDK: Considerations & Best Practices  Slide 46 Mobile SDK: Considerations & Best Practices  Slide 47 Mobile SDK: Considerations & Best Practices  Slide 48 Mobile SDK: Considerations & Best Practices  Slide 49 Mobile SDK: Considerations & Best Practices  Slide 50 Mobile SDK: Considerations & Best Practices  Slide 51 Mobile SDK: Considerations & Best Practices  Slide 52 Mobile SDK: Considerations & Best Practices  Slide 53 Mobile SDK: Considerations & Best Practices  Slide 54 Mobile SDK: Considerations & Best Practices  Slide 55 Mobile SDK: Considerations & Best Practices  Slide 56 Mobile SDK: Considerations & Best Practices  Slide 57 Mobile SDK: Considerations & Best Practices  Slide 58 Mobile SDK: Considerations & Best Practices  Slide 59 Mobile SDK: Considerations & Best Practices  Slide 60 Mobile SDK: Considerations & Best Practices  Slide 61 Mobile SDK: Considerations & Best Practices  Slide 62 Mobile SDK: Considerations & Best Practices  Slide 63 Mobile SDK: Considerations & Best Practices  Slide 64 Mobile SDK: Considerations & Best Practices  Slide 65 Mobile SDK: Considerations & Best Practices  Slide 66 Mobile SDK: Considerations & Best Practices  Slide 67

YouTube videos are no longer supported on SlideShare

View original on YouTube

Upcoming SlideShare
The Value of Building a Mobile SDK
Next

Share

Mobile SDK: Considerations & Best Practices

Mobile SDKs are a great way to make your service or API easily consumable by the large number of developers out there looking for state of the art tools to make their apps stand out in the competitive marketplaces, but building a stable, compatible and successful SDK is quite a challenge.

In this talk we the technical and design challenges involved in developing an efficient mobile SDK that is highly compatible with its host mobile app, and the various considerations we took into account and the lessons we’ve learned while designing and building LivePerson’s native mobile SDK.

Related Books

Free with a 30 day trial from Scribd

See all

Mobile SDK: Considerations & Best Practices

  1. 1. Yaron Karasik Mobile SDKs: Considerations and Best Practices Yaron Karasik
  2. 2. Yaron Karasik New York Greenwell Hi, I’m Yaron Karasik
  3. 3. What is a mobile SDK?
  4. 4. Why build a native Mobile SDK?
  5. 5. Offer a mobile specific service Make existing service or API easily usable
  6. 6. App developers are a well defined target market and business model
  7. 7. What do we need to consider when building a SDK?
  8. 8. How much time do you have to hook the developer?
  9. 9. What’s the easiest way for a developer to solve an SDK related issue?
  10. 10. Your SDK is a guest in its host app Creative Commons Image: Liz Mc https://www.flickr.com/photos/11638547@N00/3827808607
  11. 11. Minimum use of resources Easy to integrate and use Maximum compatibility Provide your own UI?
  12. 12. Users know what the app is doing
  13. 13. Users know what the app is doing
  14. 14. Yaron Karasik Don’t kill the battery
  15. 15. Yaron Karasik Be thrifty with cellular data
  16. 16. Not real time? Batch requests
  17. 17. Real time? Use mobile optimized transport and API
  18. 18. Polling Long Polling SSE Websockets
  19. 19. Keep your payloads as small as possible
  20. 20. Memory - Allocations & Leaks
  21. 21. Performance
  22. 22. Instruments
  23. 23. Automated Build Process and Testing Don’t crash the host app
  24. 24. Never ask the user for permissions..
  25. 25. ..but definitely use them if permission has been given Class $CLLocationManager = NSClassFromString(@"CLLocationManager"); if ([CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied) {! ..! }!
  26. 26. Location Services Twitter Facebook Address Book Photos Camera Notifications Microphone Calendars Bluetooth
  27. 27. Again, users know what the app is doing..
  28. 28. Notifications Push requires server side support and developer trust
  29. 29. Notifications Local is very useful if already enabled by developer
  30. 30. App Size
  31. 31. Local Storage & Security • Don’t use local storage it you don’t have to • If you do, take good care of app data • Encrypt sensitive information • Purge it when you’re done • Use SSL for all networking
  32. 32. Should I use open source code in an SDK?
  33. 33. OS Version Compatibility
  34. 34. Architecture Compatibility
  35. 35. When will the developer upgrade the SDK?
  36. 36. Much later than you’d like So design your APIs for the long run
  37. 37. Make it easy to integrate and use
  38. 38. Instant onboarding Free tier (or trial)
  39. 39. Interactive docs are cool
  40. 40. Indicate successful integration
  41. 41. Use CocoaPods.. platform :ios, '7.0'! ! pod 'AFNetworking', '~> 2.1'! pod 'Reachability'! pod 'LivePerson', '~> 1.5.448'! pod 'SocketRocket', '= 0.3.1-beta2'
  42. 42. ..or a minimum integration flow 1. Add required frameworks 2. Add SDK
  43. 43. Simple SDK Launch [[SDKManager shared] initWithAppId:@“XYZ-ABC”];
  44. 44. Developer Logs EcoTest[2051:66030] [LPMobile//info] Loaded. #ios #info! ! EcoTest[2051:66030] [LPMobile// warning] The server has reported an error with your app. This may be caused by a bad configuration - Please contact mobile@liveperson.com for assistance. #ios #warning
  45. 45. Smart callbacks and event reporting Notifications BlocksDelegates
  46. 46. Configuration - Server or Client side?
  47. 47. Help the developer keep the SDK updated Cocoapods + Github
  48. 48. Should your SDK include UI?
  49. 49. Provide UI friendly API, allow developer to use their own UI Plan A
  50. 50. Provide a view controller for the developer to present Plan B
  51. 51. Implement your own UI, automatically integrate with host Plan C
  52. 52. Maintain App Context
  53. 53. Custom Branding
  54. 54. Device and orientation support
  55. 55. OS Version Compatibility
  56. 56. What about assets? • Use flat design when you can • PNG crush required assets • Consider downloading and caching • Download bundle on first launch
  57. 57. Memory Networking Documentation UI Devices OS Versions Battery Permissions Security Storage App Size Performance Summary
  58. 58. Thank You! We are hiring
  59. 59. YouTube.com/LivePersonDev3 Twi5er.com/LivePersonDev3 Facebook.com/LivePersonDev3 Slideshare.net/LivePersonDev3
  • Bitskrieg

    Aug. 17, 2018
  • JiayuJi

    Oct. 22, 2017
  • sishen

    Sep. 3, 2017
  • ahmadpayan

    Jun. 20, 2017
  • JoseCamacho38

    Mar. 16, 2017
  • ShayDarrach

    Dec. 10, 2016
  • juan-lopez

    Dec. 9, 2016
  • LlewellynDawkinsJrMB

    Aug. 16, 2016
  • JerryWu9

    Jul. 28, 2016
  • ihaOnWings

    Jul. 22, 2016
  • kechambe

    Jul. 8, 2016
  • marslovefree

    Apr. 28, 2016
  • NeerajHirani

    Apr. 21, 2016
  • HimanshPal

    Jan. 31, 2016
  • ijsong

    Nov. 27, 2015
  • VinceMansel

    Sep. 23, 2015

Mobile SDKs are a great way to make your service or API easily consumable by the large number of developers out there looking for state of the art tools to make their apps stand out in the competitive marketplaces, but building a stable, compatible and successful SDK is quite a challenge. In this talk we the technical and design challenges involved in developing an efficient mobile SDK that is highly compatible with its host mobile app, and the various considerations we took into account and the lessons we’ve learned while designing and building LivePerson’s native mobile SDK.

Views

Total views

8,200

On Slideshare

0

From embeds

0

Number of embeds

1,254

Actions

Downloads

0

Shares

0

Comments

0

Likes

16

×