SlideShare una empresa de Scribd logo
1 de 21
SDKS ARE APIS TOO!
Jeff Brateman
Senior Software Engineer
PayPal
2
BACKGROUND
Software Engineer developing server and client-side APIs for 10+ years
Senior Android SDK developer at PayPal
Lazy developer
3
OUTLINE
 APIs, SDKs, and OAuth2
 PayPal Mobile SDKs
 PayPal Server SDKs
 Releasing
 Support
4
GOALS OF AN API
APIs are an important way for a company, like PayPal, to extend reach
Principles when delivering a great developer experience
 Delightful experience for end users
 Simple, yet complete API design (easy to learn and integrate)
Successful APIs come from
 Familiar API standards
 Good API design process
 Simple and complete developer experience
5
SOME TERMS
API
An application programming interface (API) specifies how some software
components should interact with each other.
Generally, this refers to Web APIs
SDK
A software development kit (SDK or "devkit") is typically a set of
software development tools that allows for the creation of applications
for a certain software package, software framework, hardware platform,
computer system, video game console, operating system, or similar
development platform.
SDKs are just client-side Programming APIs with some plumbing
6
OAUTH2
Token Granting
 Public Clients (no secret)
 Confidential Clients (with secret)
User Approval / Consent
OAuth2 scopes to represent ability for an application to:
 Use certain functionality
 Access and operate on a resource
 E.g, capture funds authorized previously, read financial instrument from
wallet,...
Auth != Security
 Always use SSL
 Data at rest is always encrypted!
7
PAYPAL MOBILE SDKS
8
ANDROID SDK
One tidy package
 Oauth2 tokens, login, and consent
 Confirm
 card.io
Easy to use and configure, because developers are lazy
 One .jar file and some native libs
 No xml or resource files to update
 All configuration is via native Android extras
 Small library footprint
 No external library dependencies
9
ANDROID OPEN SOURCE LIBRARIES
Android Support Library
Spring REST
Async http libraries:
 LoopJ
 RoboSpice
 OkHttp
 Volley
Robotium
MonkeyRunner
10
ANDROID SDK INTEGRATION
1. Add libs
2. Add AndroidManifest.xml entry
3. Copy/paste sample code from GitHub
4. Edit configuration
5. …
6. Profit
Note that there are no layout xml or resource files to update, making
integration and upgrades easy!
card.io Android SDK integration on GitHub
PayPal Android SDK integration on GitHub
11
IOS SDK INTEGRATION
1. Add libs
2. Add some linker options and frameworks
3. Copy/paste sample code from GitHub
4. Edit configuration
5. …
6. Profit
card.io iOS SDK integration on GitHub
PayPal iOS SDK integration on GitHub
12
LINKING TO YOUR APP
e.g. Make a payment via SDK by using Fingerprint Authentication (Samsung S5)
Hook up the SDK to the Wallet App, and release new version of the SDK
On Android, this requires no additional configuration from the application developer
SDK can immediately make use of more authentication mechanisms as they become available –
developer just needs to upgrade their SDK
The Saga of my Crush
on Candy Android App
PayPal Android SDK
PayPal Wallet Android App
13
GITHUB.IO
GitHub has tools to host your docs
Create gh-pages branch to get a pretty, github.io hosted doc page
 http://paypal.github.io/PayPal-Android-SDK/
 http://card-io.github.io/card.io-Android-SDK/
14
PAYPAL SERVER SDKS
Shouldn’t a RESTful API be easy enough to consume without an SDK?
Yes, but PayPal SDKs provide useful benefits:
 Abstract OAuth2 details
 Native language interfaces and objects (e.g., Java POJOs) – easy code gen
 Updates for new APIs
 Community support
 Write/fork your own!
15
OPEN SOURCE?
Pros:
Community contributions
Open and honest
Street cred
Public forks
Cons:
Cannot reveal proprietary information
• Secret APIs or algorithms
• Potentially embarrassing bugs
Cannot control usage
16
BRANCHING, BUILDING, AND TESTING
Git Flow
Android Build Tools:
• Ant
• Gradle
• Buck
CI Tools:
• Jenkins
• TestDroid
• TestFlight
• TravisCI
17
RELEASING
Distribute via:
 GitHub
 Language specific
package manager
(e.g., Sonatype, PyPI)
Semantic versioning + Changelog
Announce over:
 Twitter
 Google Groups
 Blog posts
 Evangelists
 Close open GitHub issues
18
A LITTLE HELP?
19
WHAT MAKES A GOOD SDK?
Solves a specific problem above and beyond the API
Minimal handholding
• Documentation
• SDK and code samples
Mock mode (mobile SDKs)
Sandbox
Unit tests
Sandbox tests
20
WHAT IF THINGS GO WRONG?
Developer support (client side problems)
 GitHub issues
 StackOverflow
 Issues sometimes reported long after it was introduced
 Release often, encourage upgrades
 Practice culture of being polite while asking common questions:
• “Are you using the latest SDK?”
• “What environments/devices do you encounter the problem?”
• “Have you tried turning it off and on again?”
Account or server problem
 SDK developers end up being the QA for server side APIs – experts at
what the API ‘really’ does
 Defer or engage Developer Technical Support
THANK YOU
We’re hiring!
Apply online (ebaycareers.com), or send resume, cover letter,
or GitHub id to Deepak Nadig - dn@paypal.com
04/23/2014

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Synapseindia android app programming
Synapseindia android app programmingSynapseindia android app programming
Synapseindia android app programming
 
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
 
Introduction to Android programming
Introduction to Android programmingIntroduction to Android programming
Introduction to Android programming
 
Get Codeigniter Developement Services From Us
 Get Codeigniter Developement Services From Us Get Codeigniter Developement Services From Us
Get Codeigniter Developement Services From Us
 
Building APIs with the OpenApi Spec
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi Spec
 
Dirigible @ Skyscanner
Dirigible @ SkyscannerDirigible @ Skyscanner
Dirigible @ Skyscanner
 
Why react native has become the winning choice for cross platform development
Why react native has become the winning choice for cross platform developmentWhy react native has become the winning choice for cross platform development
Why react native has become the winning choice for cross platform development
 
Extending your apps to wearables - DroidCon Paris 2014
Extending your apps to wearables -  DroidCon Paris 2014Extending your apps to wearables -  DroidCon Paris 2014
Extending your apps to wearables - DroidCon Paris 2014
 
10 Usability Heuristics - IntelliJ IDEA
10 Usability Heuristics - IntelliJ IDEA10 Usability Heuristics - IntelliJ IDEA
10 Usability Heuristics - IntelliJ IDEA
 
OpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerOpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of Swagger
 
Mobile Programming - 1 Introduction
Mobile Programming - 1 IntroductionMobile Programming - 1 Introduction
Mobile Programming - 1 Introduction
 
Intro to Android Programming
Intro to Android ProgrammingIntro to Android Programming
Intro to Android Programming
 
Introduction on Mobile development
Introduction on Mobile developmentIntroduction on Mobile development
Introduction on Mobile development
 
Time to learn flutter or stick to native development
Time to learn flutter or stick to native development Time to learn flutter or stick to native development
Time to learn flutter or stick to native development
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
 
Flutter vs react native head to toe comparison [2021 edition]
Flutter vs react native  head to toe comparison [2021 edition]Flutter vs react native  head to toe comparison [2021 edition]
Flutter vs react native head to toe comparison [2021 edition]
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
 
APIdays Paris 2014 - The State of Web API Languages
APIdays Paris 2014 - The State of Web API LanguagesAPIdays Paris 2014 - The State of Web API Languages
APIdays Paris 2014 - The State of Web API Languages
 
Lessons Learned from Revamping Our Doc Site
Lessons Learned from Revamping Our Doc SiteLessons Learned from Revamping Our Doc Site
Lessons Learned from Revamping Our Doc Site
 
Android studio 4.0 new features preview
Android studio 4.0 new features previewAndroid studio 4.0 new features preview
Android studio 4.0 new features preview
 

Destacado

New microsoft office power point presentation
New microsoft office power point presentationNew microsoft office power point presentation
New microsoft office power point presentation
ranjithkumarbs
 
Rimborsi spese ai tesserati lnd problematiche fiscali
Rimborsi spese ai tesserati lnd   problematiche fiscaliRimborsi spese ai tesserati lnd   problematiche fiscali
Rimborsi spese ai tesserati lnd problematiche fiscali
Francesco Rhodio
 

Destacado (18)

портфоліо оновлене
портфоліо оновленепортфоліо оновлене
портфоліо оновлене
 
Launch of the TomTom Bridge Device - Picup's Experience.
Launch of the TomTom Bridge Device - Picup's Experience.Launch of the TomTom Bridge Device - Picup's Experience.
Launch of the TomTom Bridge Device - Picup's Experience.
 
Как создать успешный бизнес на продвижении мобильных приложений
Как создать успешный бизнес на продвижении мобильных приложенийКак создать успешный бизнес на продвижении мобильных приложений
Как создать успешный бизнес на продвижении мобильных приложений
 
Commissioner Schouten Oct2013 presentation to Washington County community group
Commissioner Schouten Oct2013 presentation to Washington County community groupCommissioner Schouten Oct2013 presentation to Washington County community group
Commissioner Schouten Oct2013 presentation to Washington County community group
 
Exeter Workshop 1 Tim B
Exeter   Workshop 1   Tim BExeter   Workshop 1   Tim B
Exeter Workshop 1 Tim B
 
Mit18 03 s10_ex1
Mit18 03 s10_ex1Mit18 03 s10_ex1
Mit18 03 s10_ex1
 
Myto- PLAIN VIEW OR below -gro und OPERATOR FOR SWING GATES UP TO 1.8 m (6 ft...
Myto- PLAIN VIEW OR below -gro und OPERATOR FOR SWING GATES UP TO 1.8 m (6 ft...Myto- PLAIN VIEW OR below -gro und OPERATOR FOR SWING GATES UP TO 1.8 m (6 ft...
Myto- PLAIN VIEW OR below -gro und OPERATOR FOR SWING GATES UP TO 1.8 m (6 ft...
 
pixantrone abstract chemical data by tanta pharmcist
pixantrone abstract chemical data by tanta pharmcistpixantrone abstract chemical data by tanta pharmcist
pixantrone abstract chemical data by tanta pharmcist
 
Civil Engineer
Civil EngineerCivil Engineer
Civil Engineer
 
Shock anafilactico y septico
Shock anafilactico y septicoShock anafilactico y septico
Shock anafilactico y septico
 
Hội thảo "Để mở Spa thành công"
Hội thảo "Để mở Spa thành công"Hội thảo "Để mở Spa thành công"
Hội thảo "Để mở Spa thành công"
 
Mis actitudes
Mis actitudesMis actitudes
Mis actitudes
 
EL Tutorials 1 to 3
EL Tutorials 1 to 3EL Tutorials 1 to 3
EL Tutorials 1 to 3
 
New microsoft office power point presentation
New microsoft office power point presentationNew microsoft office power point presentation
New microsoft office power point presentation
 
Rimborsi spese ai tesserati lnd problematiche fiscali
Rimborsi spese ai tesserati lnd   problematiche fiscaliRimborsi spese ai tesserati lnd   problematiche fiscali
Rimborsi spese ai tesserati lnd problematiche fiscali
 
Media as level 1 opening sequence analysis
Media as level 1 opening sequence analysisMedia as level 1 opening sequence analysis
Media as level 1 opening sequence analysis
 
2015 GGR Results
2015 GGR Results2015 GGR Results
2015 GGR Results
 
Mu0010 – manpower planning and resourcing
Mu0010 – manpower planning and resourcingMu0010 – manpower planning and resourcing
Mu0010 – manpower planning and resourcing
 

Similar a 2014 austin-api-sdks-are-apis-too

Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
Mizanur Sarker
 

Similar a 2014 austin-api-sdks-are-apis-too (20)

Presentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab SummitPresentation at the 2016 Linux Foundation Collab Summit
Presentation at the 2016 Linux Foundation Collab Summit
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS Apps
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
 
Green flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdfGreen flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdf
 
Android Study Jam - Introduction
Android Study Jam - IntroductionAndroid Study Jam - Introduction
Android Study Jam - Introduction
 
whats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxwhats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptx
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 
Content Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsContent Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortals
 
The Best Python IDEs and Code Editors.pdf
The Best Python IDEs and Code Editors.pdfThe Best Python IDEs and Code Editors.pdf
The Best Python IDEs and Code Editors.pdf
 
You Don't Need SDKs, Wait Maybe You Do?
You Don't Need SDKs, Wait Maybe You Do?You Don't Need SDKs, Wait Maybe You Do?
You Don't Need SDKs, Wait Maybe You Do?
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.x
 
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Introduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API DevelopmentIntroduction to Google Cloud Endpoints: Speed Up Your API Development
Introduction to Google Cloud Endpoints: Speed Up Your API Development
 
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
apidays Paris 2022 - The 12 Facets of the OpenAPI Specification, Steve Sfartz...
 
OpenAPI Generator The Babel Fish of The API World - apidays Live Paris
OpenAPI Generator The Babel Fish of The API World - apidays Live ParisOpenAPI Generator The Babel Fish of The API World - apidays Live Paris
OpenAPI Generator The Babel Fish of The API World - apidays Live Paris
 
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
 
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 

Último

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Último (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

2014 austin-api-sdks-are-apis-too

  • 1. SDKS ARE APIS TOO! Jeff Brateman Senior Software Engineer PayPal
  • 2. 2 BACKGROUND Software Engineer developing server and client-side APIs for 10+ years Senior Android SDK developer at PayPal Lazy developer
  • 3. 3 OUTLINE  APIs, SDKs, and OAuth2  PayPal Mobile SDKs  PayPal Server SDKs  Releasing  Support
  • 4. 4 GOALS OF AN API APIs are an important way for a company, like PayPal, to extend reach Principles when delivering a great developer experience  Delightful experience for end users  Simple, yet complete API design (easy to learn and integrate) Successful APIs come from  Familiar API standards  Good API design process  Simple and complete developer experience
  • 5. 5 SOME TERMS API An application programming interface (API) specifies how some software components should interact with each other. Generally, this refers to Web APIs SDK A software development kit (SDK or "devkit") is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar development platform. SDKs are just client-side Programming APIs with some plumbing
  • 6. 6 OAUTH2 Token Granting  Public Clients (no secret)  Confidential Clients (with secret) User Approval / Consent OAuth2 scopes to represent ability for an application to:  Use certain functionality  Access and operate on a resource  E.g, capture funds authorized previously, read financial instrument from wallet,... Auth != Security  Always use SSL  Data at rest is always encrypted!
  • 8. 8 ANDROID SDK One tidy package  Oauth2 tokens, login, and consent  Confirm  card.io Easy to use and configure, because developers are lazy  One .jar file and some native libs  No xml or resource files to update  All configuration is via native Android extras  Small library footprint  No external library dependencies
  • 9. 9 ANDROID OPEN SOURCE LIBRARIES Android Support Library Spring REST Async http libraries:  LoopJ  RoboSpice  OkHttp  Volley Robotium MonkeyRunner
  • 10. 10 ANDROID SDK INTEGRATION 1. Add libs 2. Add AndroidManifest.xml entry 3. Copy/paste sample code from GitHub 4. Edit configuration 5. … 6. Profit Note that there are no layout xml or resource files to update, making integration and upgrades easy! card.io Android SDK integration on GitHub PayPal Android SDK integration on GitHub
  • 11. 11 IOS SDK INTEGRATION 1. Add libs 2. Add some linker options and frameworks 3. Copy/paste sample code from GitHub 4. Edit configuration 5. … 6. Profit card.io iOS SDK integration on GitHub PayPal iOS SDK integration on GitHub
  • 12. 12 LINKING TO YOUR APP e.g. Make a payment via SDK by using Fingerprint Authentication (Samsung S5) Hook up the SDK to the Wallet App, and release new version of the SDK On Android, this requires no additional configuration from the application developer SDK can immediately make use of more authentication mechanisms as they become available – developer just needs to upgrade their SDK The Saga of my Crush on Candy Android App PayPal Android SDK PayPal Wallet Android App
  • 13. 13 GITHUB.IO GitHub has tools to host your docs Create gh-pages branch to get a pretty, github.io hosted doc page  http://paypal.github.io/PayPal-Android-SDK/  http://card-io.github.io/card.io-Android-SDK/
  • 14. 14 PAYPAL SERVER SDKS Shouldn’t a RESTful API be easy enough to consume without an SDK? Yes, but PayPal SDKs provide useful benefits:  Abstract OAuth2 details  Native language interfaces and objects (e.g., Java POJOs) – easy code gen  Updates for new APIs  Community support  Write/fork your own!
  • 15. 15 OPEN SOURCE? Pros: Community contributions Open and honest Street cred Public forks Cons: Cannot reveal proprietary information • Secret APIs or algorithms • Potentially embarrassing bugs Cannot control usage
  • 16. 16 BRANCHING, BUILDING, AND TESTING Git Flow Android Build Tools: • Ant • Gradle • Buck CI Tools: • Jenkins • TestDroid • TestFlight • TravisCI
  • 17. 17 RELEASING Distribute via:  GitHub  Language specific package manager (e.g., Sonatype, PyPI) Semantic versioning + Changelog Announce over:  Twitter  Google Groups  Blog posts  Evangelists  Close open GitHub issues
  • 19. 19 WHAT MAKES A GOOD SDK? Solves a specific problem above and beyond the API Minimal handholding • Documentation • SDK and code samples Mock mode (mobile SDKs) Sandbox Unit tests Sandbox tests
  • 20. 20 WHAT IF THINGS GO WRONG? Developer support (client side problems)  GitHub issues  StackOverflow  Issues sometimes reported long after it was introduced  Release often, encourage upgrades  Practice culture of being polite while asking common questions: • “Are you using the latest SDK?” • “What environments/devices do you encounter the problem?” • “Have you tried turning it off and on again?” Account or server problem  SDK developers end up being the QA for server side APIs – experts at what the API ‘really’ does  Defer or engage Developer Technical Support
  • 21. THANK YOU We’re hiring! Apply online (ebaycareers.com), or send resume, cover letter, or GitHub id to Deepak Nadig - dn@paypal.com 04/23/2014