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
「シェア機能」について考えてみた
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
PKPK-Carnage
October 23, 2019
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「シェア機能」について考えてみた
PKPK-Carnage
October 23, 2019
More Decks by PKPK-Carnage
See All by PKPK-Carnage
iOSアプリを堅牢にデザインするために知っておくべきたった1つのこと
pkpkcarnage
0
520
アプリへの導線の増やし方.pdf
pkpkcarnage
0
750
リリースビルドでのみ起こる謎のバグに見舞われた話
pkpkcarnage
0
230
Any型をprotocolにキャストする時に 気をつけた方がいい話
pkpkcarnage
0
310
今日から使える! Optionalをいい感じに扱うtips
pkpkcarnage
0
1.3k
もっと早く教えて欲しかった画面遷移
pkpkcarnage
0
370
iOSの通信処理を簡潔に書く
pkpkcarnage
0
320
Other Decks in Programming
See All in Programming
5分で問診!Composer セキュリティ健康診断
codmoninc
0
110
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
210
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
2
1.3k
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
250
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.5k
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
460
初めてのKubernetes 本番運用でハマった話
oku053
0
120
関数型プログラミングのメリットって何だろう?
wanko_it
0
170
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
3
340
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.4k
Featured
See All Featured
Mind Mapping
helmedeiros
PRO
1
280
Building an army of robots
kneath
306
46k
Paper Plane
katiecoart
PRO
2
52k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
HDC tutorial
michielstock
2
740
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
460
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
The Cult of Friendly URLs
andyhume
79
6.9k
The Language of Interfaces
destraynor
162
27k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Transcript
ʮγΣΞػೳʯʹ͍ͭͯߟ͑ͯΈͨ 1 2019/9/17 ͋Δ͋ΔLTʙiOSΞϓϦ։ൃΤϯδχΞʙ Vol.7 Tomosuke Okada
About me • Tomosuke Okada • iOSྺ3 • ອըͷΞϓϦΛ࡞ͬͯ·͢ •
SNS • Qiita → @fr0g_fr0g • Github → Frog-Frog • Twitter → @fr0g_fr0g • μϒϧϑϩοά
iOSͰγΣΞػೳͱݴ͑ʁ 3
UIActivityViewController 4
• ࣮͕؆୯ • Πϯετʔϧ͞Ε͍ͯΔΞϓϦ ͕ࣗಈతʹදࣔ͞ΕΔ • ग़͢ΞϓϦΛϢʔβʔ͕Χελ ϚΠζͰ͖Δ UIActivityViewControllerͱɾɾɾ 5
UIActivityViewController͍͢͝ 6
͓͠·͍ 7
͍ɺͪΐͬͱͯ 8
ͦΜͳΛ͠ʹ͖ͨΜ͡Όͳ͍ 9
10 Netflix Spotify
γΣΞࣗ࡞Ͱ࣮ͯ͠Δ 11
12 Netflix Spotify
13 Netflix Spotify
InstagramετʔϦʔζͱɾɾɾʁ • Instagram্ͷߘํ๏ͷҰछ • 24࣌ؒͰߘ͕ফ͑Δ • ߘը໘Ͱଟ࠼ͳฤूΛߦ͑Δ • ςΩετ •
ελϯϓ • ͦͷଞ৭ʑʢΞϯέʔτɺΫΠζɺ࣭ͳͲʣ 14
UIActivityViewController͔ΒγΣΞͰ͖ͳ͍ 15
ͭ·Γɾɾɾʁ • InstagramετʔϦʔζ͔ͳΓࣗ༝͕ߴ͍γΣΞΛߦ͏͜ͱ͕Ͱ͖Δ • NetflixSpotifyͷΑ͏ͳίϯςϯπϏδωεΛߦ͏ୈҰઢͷαʔϏεͰ ɺͦΕΛߦ͏ͨΊʹOSඪ४ͷUIActivityViewControllerΛ͋͑ͯΘͣ ʹࣗ࡞͍ͯ͠Δ • γΣΞ͢ΔࡍͷϢʔβʔମݧΛ্ͤ͞Δ͜ͱ͕ॏཁͩͱߟ͑ΒΕ͍ͯ Δ
16
17
࣮ͯ͠Έͨ 18 final class StoriesSharer { private let urlScheme =
URL(string: "instagram-stories://share")! func share() { guard UIApplication.shared.canOpenURL(self.urlScheme) else { return } let item: [String: Any] = [ "com.instagram.sharedSticker.backgroundImage": UIImage(named: "StoryBackgroundImage")!.pngData()!, "com.instagram.sharedSticker.stickerImage": UIImage(named: "StoryStickerImage")!.pngData()! ] let options = [UIPasteboard.OptionsKey.expirationDate: Date().addingTimeInterval(60 * 5)] UIPasteboard.general.setItems([item], options: options) UIApplication.shared.open(self.urlScheme, options: [:], completionHandler: nil) } }
ΊͪΌͪ͘Ό؆୯ 19
(PPE #BE 20 • ࣗ࡞ͰಋઢΛ࡞Δඞཁ͕͋Δ • എܠɺεςοΧʔͷ४උ͕͍Δ • ετʔϦʔζ͔ΒΞϓϦʹඈ ͢ʹInstagramଆʹਃ͕ඞཁ
• ࣮͕͔ͳΓ؆୯ • ࠓ࣌ͷएऀʹਓؾ • ଞΞϓϦͷγΣΞΑΓࣗ༝͕ߴ͍ • ΞϓϦެࣜΠϯελάϥϜΞΧϯ τͱ͔Γ্͛ΕΔ
·ͱΊ • NetflixSpotifyͷΑ͏ͳίϯςϯπϏδωεͷୈҰઢͷαʔϏεγΣΞͷ ϢʔβʔମݧΛ্ͤ͞ΔͨΊʹInstagramετʔϦʔζΛ׆༻͍ͯ͠Δ • ͦΕΒͷαʔϏε͕ͦͷͨΊʹࣗ࡞ͰγΣΞը໘Λ࣮͢Δ΄Ͳॏཁࢹ͞Ε ͍ͯΔ • ࣮͢Δ͜ͱࣗମͱͯ؆୯ͳͷͰΔՁ͕͋Δ •
γΣΞը໘Λࣗ࡞͢Δ͜ͱ͕ελϯμʔυʹͳΔະདྷ͕དྷΔ͔͠Εͳ͍ 21
͓͠·͍ 22