Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building apps that play nicely with other apps
Search
Bryan Irace
November 21, 2013
Programming
450
1
Share
Building apps that play nicely with other apps
Given at the NYC CocoaPods meetup ("Cocoa Kucha") on November 20, 2013.
Bryan Irace
November 21, 2013
More Decks by Bryan Irace
See All by Bryan Irace
Practical iOS application modularity
irace
1
710
iOS at Tumblr
irace
2
1.5k
Building Tumblr for iOS
irace
0
730
Modularity in mobile applications
irace
0
160
When the iOS SDK says “Jump,” ask “How High?”
irace
7
1.5k
Don't be "an Objective-C" or "a Swift Developer"
irace
5
880
Tumblr iOS architecture
irace
5
660
Node.js for mobile developers
irace
1
180
Introduction to Objective-C and Cocoa Touch
irace
7
800
Other Decks in Programming
See All in Programming
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
660
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
260
10 Tips of AWS ~Gen AI on AWS~
licux
5
540
AIと共に生きる技術選定 2026
sgash708
0
130
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
330
cloudnative conference 2026 flyle
azihsoyn
0
130
20260514 - build with ai 2026 - build LINE Bot with Gemini CLI
line_developers_tw
PRO
0
340
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
1
200
実用!Hono RPC2026
yodaka
2
300
「OSSがあるなら自作するな」は AI時代も正しいか ── Build vs Adopt の新しい判断基準
kumorn5s
7
2.3k
AgentCore Optimizationを始めよう!
licux
3
220
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
150
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
360
The browser strikes back
jonoalderson
0
1k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
140
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
How GitHub (no longer) Works
holman
316
150k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
230
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
370
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
130
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Site-Speed That Sticks
csswizardry
13
1.2k
Transcript
Building apps that play nicely with other apps Bryan Irace
Intents Contracts
…URLs?
URLs have shortcomings Like manually, explicitly defining all interactions between
apps
We can fix some of these shortcomings • Documentation !
• Discovery
We can fix some of these shortcomings • Time spent
writing client code ! • Bugs
CocoaPods
It’s OK to be selfish Provide code that helps others
integrate with you
Tumblr iOS SDK github.com/tumblr/ TMTumblrSDK
x-callback-url.com [scheme]://x-callback-url/ [action]?[x-callback parameters]&[action parameters] Used in Byword, Drafts, Instapaper,
Google Maps, Google Chrome, TextExpander, and many more
Please actually implement the “callback” part
URLs tumblr://x-callback-url/blog? blogName=bryan&postID=43724939726 ! tumblr://x-callback-url/text? title=Title&body=Body&tags=gif&tags=lol Hope others both find
and properly implement them
+ (void)viewBlog:(NSString *)blogName; ! + (void)createTextPost:(NSString *)title body:(NSString *)body tags:(NSArray
*)tags success:(NSURL *)successURL cancel:(NSURL *)cancelURL; pod install TMTumblrSDK
UIActivityViewController
@implementation TMTumblrActivity ! - (NSString *)activityTitle { return @"Tumblr"; }
! - (UIImage *)activityImage { return [UIImage imageNamed:@"UIActivityTumblr"]; } ! - (void)performActivity { // Open Tumblr app or hit API directly } pod install TMTumblrSDK
UIDocumentInteractionController
+ (UIDocumentInteractionController *)presentInteractionControllerWithURL:(NSURL *)URL caption:(NSString *)caption tags:(NSArray *)tags fromBarButtonItem:(UIBarButtonItem *)item
{ UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:URL]; controller.UTI = @"com.tumblr.photo"; controller.annotation = @{ @"TumblrCaption" : caption, @"TumblrTags" : tags }; ! [controller presentOpenInMenuFromBarButtonItem:item animated:YES]; return controller; } pod install TMTumblrSDK
Publish an official API client Every app is different. Make
it easy for developers to hit your API directly if they’d prefer.
Subspecs • TMTumblrSDK/URLSchemes ! • TMTumblrSDK/Activity ! • TMTumblrSDK/DocumentInteraction !
• TMTumblrSDK/APIClient • TMTumblrSDK/APIClient/Authentication Don’t make developers include more code than they want to
Summary You should make it easy for developers to integrate
with your app ! Providing code via CocoaPods is obviously the best way to do so com/jobs