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
1
400
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
Tweet
Share
More Decks by Bryan Irace
See All by Bryan Irace
Practical iOS application modularity
irace
1
660
iOS at Tumblr
irace
2
1.5k
Building Tumblr for iOS
irace
0
700
Modularity in mobile applications
irace
0
140
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
840
Tumblr iOS architecture
irace
5
600
Node.js for mobile developers
irace
1
160
Introduction to Objective-C and Cocoa Touch
irace
7
730
Other Decks in Programming
See All in Programming
Kiroで始めるAI-DLC
kaonash
2
580
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
100
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
5.7k
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
130
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
290
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.8k
1から理解するWeb Push
dora1998
7
1.9k
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
390
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
150
Swift Updates - Learn Languages 2025
koher
2
470
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.4k
Putting The Genie in the Bottle - A Crash Course on running LLMs on Android
iurysza
0
140
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.6k
Docker and Python
trallard
45
3.6k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Embracing the Ebb and Flow
colly
87
4.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Being A Developer After 40
akosma
90
590k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
KATA
mclloyd
32
14k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
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