Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
「シェア機能」について考えてみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
760
リリースビルドでのみ起こる謎のバグに見舞われた話
pkpkcarnage
0
230
Any型をprotocolにキャストする時に 気をつけた方がいい話
pkpkcarnage
0
320
今日から使える! Optionalをいい感じに扱うtips
pkpkcarnage
0
1.3k
もっと早く教えて欲しかった画面遷移
pkpkcarnage
0
370
iOSの通信処理を簡潔に書く
pkpkcarnage
0
330
Other Decks in Programming
See All in Programming
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
210
FreeBSDでZabbixを動かす
kenkino
0
330
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
690
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
2
300
Security issues being discussed on Web Platforms
petamoriken
0
1.3k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
390
setup-vp GitLab対応の裏側
naokihaba
0
140
App Intentsのビルドプロセスを支える技術
kntkymt
0
460
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
320
カツオ、ご期待ください
suneo3476
0
110
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.9k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
160
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.2k
Faster Mobile Websites
deanohume
310
32k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
How STYLIGHT went responsive
nonsquared
100
6.3k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
550
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
300
A better future with KSS
kneath
240
18k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
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