APIStrat 2016 | How to be a courteous guest: providing SDKs to developers (Devin Sevilla)

APIStrat 2016 | How to be a courteous guest: providing SDKs to developers (Devin Sevilla)

Mobile developers are suspicious of including SDKs in their applications. Mobile devices are resource constrained and each application must be a good citizen. It''s easy for SDKs to cause crashes or simply use too many resources, leading to one-star reviews. SDK providers must earn trust and do what they can to protect it. This talk introduces methods to earn the trust of developers and how to manage the fallout from the inevitable bug in your SDK.

Transcript

  1. How to be a courteous guest Providing mobile SDKs Devin

    Sevilla APIStrat Boston 2016
  2. Previously — Engineering Manager, API Currently — Partner API Technical

    Program Manager Credentials
  3. • iOS & Android SDKs • Partners ◦ Shazam ◦

    SoundHound ◦ SoundTracking ◦ Billboard Music Awards ◦ Various music festivals Rdio Developer Program
  4. Will you get invited?

  5. • Provide complete documentation • Share your roadmap • Share

    known issues, limitations Build trust with no surprises
  6. • Closed source feels like less control • They won’t

    look at the source, but it’s nice to know it’s there • Alternative — open source SDK that depends on a minimal closed source library Consider an Open Source SDK
  7. Easy to get started (make it easy to invite you)

    • Dependency management is easier than ever ◦ Maven Central Repository (Android) ◦ CocoaPods (iOS) • Provide a tutorial with how to install and configure
  8. You’re invited! Now what?

  9. • OS and framework versions (deployment target) • External dependencies

    • Permissions • Don’t expect to use the latest features • Expect to drop support for old versions until the last moment Permissions and Versions (Dress code)
  10. Be efficient (Don't eat the whole deli tray) • Battery

    — Don’t keep GPS, radios on • Network — Don’t use too much data • Package size — Keep downloads small
  11. Share resources (Be nice to the other guests) • Let

    them know you're going to take control or release shared resources • Let them say yes or no (the app might already have control)
  12. You spilled a glass of wine

  13. Have a release and support process • Do your partners

    know how to report issues? Do they know what to include in a report? • How quickly can you build, test, and deploy a bug fix? • Make it easy to talk to a human • Provide frequent updates, even if it isn’t fixed yet
  14. Logs • Log enough detail to help you diagnose •

    Don’t leak user information • Log what you’re doing, not the data you’re using
  15. Debug Builds • Your release process should include debug builds

    • Log additional steps and the data you’re using • Use an API proxy for detailed HTTP request logging
  16. Recap

  17. ❏ Document your roadmap, known issues ❏ Consider an open

    source SDK ❏ Host your SDK in a public package repository ❏ Create a tutorial to ease getting started ❏ Implement callbacks for shared resources ❏ Also build a debug version of your SDK Actions
  18. Devin Sevilla • devin.sevilla@adroll.com • devinsevilla.com • @devin_s