SlideShare a Scribd company logo
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

More Related Content

What's hot

Synapseindia android app programming
Synapseindia android app programmingSynapseindia android app programming
Synapseindia android app programming
Tarunsingh198
 
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)
Open API Initiative (OAI)
 
Introduction to Android programming
Introduction to Android programmingIntroduction to Android programming
Introduction to Android programming
Sirwan Afifi
 
Get Codeigniter Developement Services From Us
 Get Codeigniter Developement Services From Us Get Codeigniter Developement Services From Us
Get Codeigniter Developement Services From Us
Joe_Mason
 
Building APIs with the OpenApi Spec
Building APIs with the OpenApi SpecBuilding APIs with the OpenApi Spec
Building APIs with the OpenApi Spec
Pedro J. Molina
 
Dirigible @ Skyscanner
Dirigible @ SkyscannerDirigible @ Skyscanner
Dirigible @ Skyscanner
Jordan Pavlov
 
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
Shelly Megan
 
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
Paris Android User Group
 
10 Usability Heuristics - IntelliJ IDEA
10 Usability Heuristics - IntelliJ IDEA10 Usability Heuristics - IntelliJ IDEA
10 Usability Heuristics - IntelliJ IDEA
Nirodha Perera
 
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
SmartBear
 
Mobile Programming - 1 Introduction
Mobile Programming - 1 IntroductionMobile Programming - 1 Introduction
Mobile Programming - 1 Introduction
AndiNurkholis1
 
Intro to Android Programming
Intro to Android ProgrammingIntro to Android Programming
Intro to Android Programming
Peter van der Linden
 
Introduction on Mobile development
Introduction on Mobile developmentIntroduction on Mobile development
Introduction on Mobile development
Shady Selim
 
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
Concetto Labs
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
Adam Paxton
 
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]
Katy Slemon
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
GoogleDevelopersLeba
 
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
Restlet
 
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
Pronovix
 
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
Concetto Labs
 

What's hot (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
 

Viewers also liked

портфоліо оновлене
портфоліо оновленепортфоліо оновлене
портфоліо оновлене
NataliaRomanyuk
 
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.
Antonio Bruni
 
Как создать успешный бизнес на продвижении мобильных приложений
Как создать успешный бизнес на продвижении мобильных приложенийКак создать успешный бизнес на продвижении мобильных приложений
Как создать успешный бизнес на продвижении мобильных приложений
Евгений Адамович
 
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
washingtoncountycpo
 
Exeter Workshop 1 Tim B
Exeter   Workshop 1   Tim BExeter   Workshop 1   Tim B
Exeter Workshop 1 Tim B
nyasocialmedia
 
Mit18 03 s10_ex1
Mit18 03 s10_ex1Mit18 03 s10_ex1
Mit18 03 s10_ex1
alighobadi20
 
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...
CAME India Automation Solutions Pvt.Ltd.
 
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
Mostapha Ibrahim
 
Shock anafilactico y septico
Shock anafilactico y septicoShock anafilactico y septico
Shock anafilactico y septico
Gise Estefania
 
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"
Vien My Trading And Service Co.,Ltd
 
Mis actitudes
Mis actitudesMis actitudes
Mis actitudes
joseracastillo
 
EL Tutorials 1 to 3
EL Tutorials 1 to 3EL Tutorials 1 to 3
EL Tutorials 1 to 3
mustlikely
 
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 fiscaliFrancesco Rhodio
 
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
christinemedia
 
Mu0010 – manpower planning and resourcing
Mu0010 – manpower planning and resourcingMu0010 – manpower planning and resourcing
Mu0010 – manpower planning and resourcing
smumbahelp
 

Viewers also liked (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 to 2014 austin-api-sdks-are-apis-too

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
Open API Initiative (OAI)
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS Apps
Shashikant Jagtap
 
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)
Tom Johnson
 
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
GoogleDeveloperStude22
 
Android Study Jam - Introduction
Android Study Jam - IntroductionAndroid Study Jam - Introduction
Android Study Jam - Introduction
HitanshDoshi
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
EidTahir
 
whats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxwhats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptx
GabrielSoche
 
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
Axway
 
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
Appdeveloper10
 
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?
Nordic APIs
 
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
Geertjan Wielenga
 
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
Erik Gur
 
[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
WSO2
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
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
Colin Su
 
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...
apidays
 
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
Cliffano Subagio
 
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...
Tom Johnson
 
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...
Heiko Voigt
 
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 StudioMizanur Sarker
 

Similar to 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
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 
whats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxwhats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptx
 
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
 

Recently uploaded

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 

Recently uploaded (20)

Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 

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