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
Apple WatchのGlanceについて
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
haranicle
December 20, 2014
Technology
3
2.7k
Apple WatchのGlanceについて
yidev 第17回勉強会で発表した資料です。
https://atnd.org/events/59014
haranicle
December 20, 2014
Tweet
Share
More Decks by haranicle
See All by haranicle
戦略的手抜きをするためのデザインシステム運用
haranicle
1
3.6k
bitFlyer ウォレット リニューアルの裏側
haranicle
0
180
多次元宇宙と画面遷移
haranicle
0
400
ハッピーな開発チームを築くために iOSエンジニアがしたこと
haranicle
5
15k
Playground芸
haranicle
6
1.9k
I💖Xcode Plugins
haranicle
0
160
Xcode6のFramework Templateについて
haranicle
2
2.7k
iOS8の Custom Keyboard について
haranicle
2
1.3k
Other Decks in Technology
See All in Technology
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
670
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
620
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
160
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
190
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.4k
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
470
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
Cosmos World Foundation Model Platform for Physical AI
takmin
0
930
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
How GitHub (no longer) Works
holman
316
140k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Believing is Seeing
oripsolob
1
56
Amusing Abliteration
ianozsvald
0
100
Tell your own story through comics
letsgokoyo
1
810
The Limits of Empathy - UXLibs8
cassininazir
1
220
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Site-Speed That Sticks
csswizardry
13
1.1k
Transcript
"QQMF8BUDIͷ (MBODFʹ͍ͭͯ !IBSBOJDMF
ࣗݾհ !IBSBOJDMF ݪҰ࢙ ,B[VTIJ)BSB /55ιϑτΣΞגࣜձࣾ J04 "OESPJE (SBJMTʜ
ݸਓͰ࡞ͬͨ"QQT
͓அΓ ͜ͷࢿྉ"QQMFͷ Ұൠެ։ࢿྉΛ ݩʹ࡞͍ͯ͠·͢ EFNPҎ֎ 9DPEFCFUB ࣌ͷใͰ͢ 9DPEF͕Ξοϓσʔτ͞Εͯ ͍Ζ͍ΖมΘͬͨΒ͝ΊΜͳ͍͞
ΞδΣϯμ ✴ (MBODFͱ ✴ (MBODFͷ࡞Γํ ✴ (MBODF*OUFSGBDF(VJEFMJOFT ✴ Ξχϝʔγϣϯ ✴
Ґஔใ ✴ ͓·͚)BOEPGG
(MBODFͱ
]шƅ ŧŽŕ
None
(MBODFͱ ✴ J04Ͱ͍͏௨ηϯλʔͷΑ͏ͳͷ ✴ ֤8BUDI"QQͷॏཁͳใΛදࣔ͢Δ6* ✴ 8BUDI"QQ࠷େͭͷ(MBODFΛ࣋ͭ ✴ جຊతʹૢ࡞Ͱ͖ͳ͍දࣔઐ༻ ✴
8BUDI'BDF ͔Β্ʹεϫΠϓͰදࣔ ✴ (MBODFϖʔδ ը໘શମͰදࣔ ✴ ԣεϫΠϓͰଞͷ(MBODFʹΓସ͑ ✴ λοϓ͢ΔͱରԠ͢Δ8BUDI"QQ͕ىಈ
(MBODFͷಈը ✴ IUUQZPVUVCFT#P&GGQD. UNT ✴ IUUQZPVUVCFSXWX;PD, UNT ✴ IUUQZPVUVCF&WTG,*UY* UN
(MBODFͷ࡞Γํ
(MBODFͷ࡞Γํ Ұ൪؆୯ͳͷʜ 8BUDI"QQͷλʔήοτΛ࡞Δͱ͖ʹ $IPPTFPQUJPOTGPSZPVSOFXUBSHFU ͷը໘Ͱ *ODMVEF(MBODF4DFOFʹ✓
ҎԼ͕࡞͞ΕΔ 8BUDI,JU&YUFOTJPOάϧʔϓʹ (MBODF$POUSPMMFSTXJGU 8BUDI"QQάϧʔϓͷ4UPSZCPBSEʹ (MBODF*OUFSGBDF 8,*OUFSGBDF$POUSPMMFSͷαϒΫϥεͳͷͰجຊతʹ 8BUDI"QQͷը໘ͱͰ͖Δ͜ͱಉ͡ (MBODFͷ࡞Γํ WJBIUUQTEFWFMPQFSBQQMFDPNMJCSBSZQSFSFMFBTF
JPTEPDVNFOUBUJPO(FOFSBM$PODFQUVBM 8BUDI,JU1SPHSBNNJOH(VJEF 5IF(MBODF$POUSPMMFSIUNMBQQMF@SFGEPDVJE 51$)48 ͜ͷάϧʔϓফͤͳ͍ ͜ͷάϧʔϓফͤͳ͍
(MBODF *OUFSGBDF(VJEFMJOFT
(MBODF*OUFSGBDF(VJEFMJOFT ͙͢ʹใΛ͑ΒΕΔΑ͏ʹઃܭ͠·͢ɻ େྔͷจࣈΛද͍͚ࣔͯ͠·ͤΜɻ άϥϑΟοΫεɺ৭ɺΞχϝʔγϣϯΛదʹ ༻͍ͯͩ͘͠͞ɻ ࠷ॏཁͳใʹযΛ͍ͯͯͩ͘͞ɻ (MBODFΞϓϦʹมΘΔͷͰ͋Γ·ͤΜɻ ॏཁͳใͷΈΛτϦϛϯάͯ͠දࣔͯͩ͘͠ ͍͞ɻ ΠϯλϥΫςΟϒͳίϯτϩʔϧΛؚΊͳ͍
Ͱ͍ͩ͘͞ɻ
(MBODF*OUFSGBDF(VJEFMJOFT ςʔϒϧͱϚοϓͷ༻ආ͚ͨ΄͏͕͍͍ Ͱ͢ɻ ېࢭ͞Ε͍ͯ·ͤΜ͕ɺݶΒΕͨεϖʔε ςʔϒϧɺϚοϓ༗༻Ͱ͋Γ·ͤΜɻ දࣔ͢ΔใΛλΠϜϦʔʹ͍ͯͩ͘͠͞ɻ ϢʔβʹใΛఏڙ͢ΔͨΊʹɺ ࣌ࠁҐஔใͳͲར༻Ͱ͖Δͯ͢ͷϦιʔ εΛ༻͍ͯͩ͘͠͞ɻ
ƅшƅ
͑ͬ
Ξχϝʔγϣϯ Ґஔใ
8BUDI,JUͰ Ͱ͖Μͷ
Ξχϝʔγϣϯ
Ξχϝʔγϣϯ ✴ 8,*OUFSGBDF*NBHFͰՄೳ ✴ ύϥύϥອըͰ͔͠ͳ͍ ✴ ͭͷύλʔϯ͕͋Δ ✴ ੩తͳը૾Λ༻͢ΔΞχϝʔγϣϯ ✴
ಈతͳը૾Λ༻͢ΔΞχϝʔγϣϯ
Ξχϝʔγϣϯ ✴ EFNP
੩తͳը૾Λ༻ͨ͠ Ξχϝʔγϣϯ
੩తͳը૾Λ༻ͨ͠Ξχϝʔγϣϯ ✴ 4UPSZCPBSE͚ͩͰ࣮͢Δ߹ ✴ 8BUDI,JU"QQͷάϧʔϓ ✴ *NBHFTYDBTTFUTʹҎԼͷ໊લͷ*NBHF 4FUΛ࡞ )PHF )PHF
)PHF ʜ)PHF/ ✴ 4UPSZCPBSEͰ*NBHFΛஔ ✴ ஔͨ͠*NBHFͷͰҎԼΛઃఆ ✴ *NBHF)PHF ✴ "OJNBUF:FT ✴ %VSBUJPO͖ͳࣈ େ͖͍΄ͲίϚ͕͍ ✴ "OJNBUFPO-PBE✓
✴ ࠶ੜ੍ޚͰ͖Δ ✴ 8,*OUFSGBDF*NBHF ✴ TUBSU"OJNBUJOH ✴ TUBSU"OJNBUJOH8JUI*NBHFT*O3BOHF EVSBUJPOSFQFBU$PVOU ✴
TUPQ"OJNBUJOH ੩తͳը૾Λ༻ͨ͠Ξχϝʔγϣϯ
ಈతͳը૾Λ༻ͨ͠ Ξχϝʔγϣϯ
✴ 8BUDI,JU&YUFOTJPOͰఆظతʹɺ 6**NBHFΛಈతʹੜͯ͠ɺ 8,*OUFSGBDF*NBHFʹTFU*NBHF͢Δ ಈతͳը૾Λ༻ͨ͠Ξχϝʔγϣϯ ఆظతʹ6**NBHFΛੜ 8,*OUFSGBDF*NBHFTFU*NBHF
ಈతͳը૾Λ༻ͨ͠Ξχϝʔγϣϯ func generateImage() -> UIImage { UIGraphicsBeginImageContextWithOptions(CGSizeMake(100, 100), false,
0) let context = UIGraphicsGetCurrentContext() func colorValue() -> CGFloat{ return CGFloat(arc4random_uniform(255)) / 255.0 } CGContextSetRGBFillColor(context, colorValue(), colorValue(), colorValue(), 1) CGContextFillRect(context, CGRectMake(0, 0, 100, 100)) let generatedImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return generatedImage } ಈతʹ6**NBHFΛੜ͢Δ
@IBOutlet weak var dynamicImage: WKInterfaceImage! override func awakeWithContext(context: AnyObject?)
{ super.awakeWithContext(context) var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "updateImage", userInfo: nil, repeats: true) } func updateImage() { dynamicImage.setImage(generateImage()) } ಈతͳը૾Λ༻ͨ͠Ξχϝʔγϣϯ λΠϚʔͰඵ͓͖ʹ8,*OUFSGBDF*NBHFʹ TFU*NBHF͢Δ
Ґஔใ
Ґஔใ ✴ "QQMF8BUDIʹ(14͍͍ͭͯͳ͍ ✴ J1IPOFͷ(14ͰҐஔใΛऔಘ͢Δ ඞཁ͕͋Δ
Ґஔใ ✴ J04ΞϓϦ ✴ *OGPQMJTUʹҎԼΛه ✴ /4-PDBUJPO"MXBZT6TBHF%FTDSJQUJPO ✴ ϢʔβʹҐஔใͷΞΫηεΛ ڐՄͯ͠Β͏
✴ MPDBUJPO.BOBHFSSFRVFTU"MXBZT"VUIPSJ [BUJPO 8BUDI&YUFOTJPO͕J04ͷ όοΫάϥϯυͰಈ͘ͷͰ"MXBZT
Ґஔใ ✴ 8BUDI&YUFOTJPO ✴ $PSF-PDBUJPOͰҐஔใऔಘ ✴ MPDBUJPO.BOBHFSEJE6QEBUF-PDBUJPOTͰ 8BUDI"QQͷ.BQΛߋ৽͢Δ
Ґஔใ ✴ σόοάํ๏ γϛϡϨʔλ ✴ J04ΞϓϦΛىಈ͠ɺҐஔใͷΞΫηε ΛڐՄ ✴ 9DPEFͷϝχϡʔ%FCVH
4JNVMBUF-PDBUJPO͖ͳҬΛબ ✴ (MBODFΛىಈ͢Δ4DIFNFΛ࡞ͯ͠3VO
͓·͚ )BOEPGG
)BOEPGG ✴ (MBODFΛλοϓ͢Δͱɺ8BUDI"QQ͕ىಈ ͢Δ ✴ ىಈ࣌ʹදࣔ͢Δ*OUFSGBDF$POUSPMMFSΛࢦఆ ͢Δ͜ͱ͕Ͱ͖Δ ✴ ҎԼͷॱʹ"DUJWJUZΛड͚͢ J04ΞϓϦˠ(MBODF
ˠ8BUDI"QQͷҙͷը໘
)BOEPGG 8BUDI"QQͷ4UPSZCPBSE͕͜͏ͳ͍ͬͯΔͱ͢Δ
)BOEPGG )BOEPGG͢Δ࣌ͷॲཧͷྲྀΕ
)BOEPGG ✴ EFNP
)BOEPGG (MBODF$POUSPMMFSTXJGU override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) //
Configure interface objects here. NSLog("%@ awakeWithContext", self) updateUserActivity("net.haranicle.watchHandoff.sample", userInfo: ["hoge":"piyo"]) } )BOEPGGͷ"DUJWJUZͷ*% VTFS*OGPૹΕΔ
)BOEPGG 'JSTU*OUFSGBDF$POUSPMMFSTXJGU override func actionForUserActivity(userActivity: [NSObject : AnyObject]?, context:
AutoreleasingUnsafeMutablePointer<AnyObject?>) -> String? { return "secondInterfaceControllerId" } 4FDPOEͷ*%Λ3FUVSO
)BOEPGG 8BUDI"QQˠJ04ΞϓϦʹ"DUJWJUZΛ ड͚͢͜ͱ·ͩͰ͖ͳ͍ ͜Μͳײ͡Ͱಈͣ͘ʜ
·ͱΊ
"QQMF8BUDIͷ(MBODFʹ͍ͭͯ ✴ (MBODFΞϓϦͷॏཁͳใΛදࣔ͢Δ6* ✴ 8BUDI"QQͭͷ(MBODFΛ࣋ͭ͜ͱ͕Ͱ͖Δ ✴ ΞχϝʔγϣϯҐஔใΛ༻͢Δ͜ͱ Ͱ͖Δ ✴ Ξχϝʔγϣϯ੩తը૾PSಈతը૾Ͱ࣮ݱ
Ͱ͖Δ ✴ J1IPOFͷ(14Λ༻ͯ͠ҐஔใΛऔಘ͠ද ࣔ͢Δ͜ͱͰ͖Δ ✴ )BOEPGG Ͱ(MBODFΛλοϓ࣌ʹىಈ͢Δ *OUFSGBDF$POUSPMMFSΛࢦఆ͢Δ͜ͱ͕Ͱ͖Δ
ࢀߟ ✴ "QQMF8BUDI1SPHSBNNJOH(VJEF ✴ IUUQTEFWFMPQFSBQQMFDPNMJCSBSZQSFSFMFBTFJPT EPDVNFOUBUJPO(FOFSBM$PODFQUVBM 8BUDI,JU1SPHSBNNJOH(VJEFJOEFYIUNM ✴ 8BUDI,JU'SBNFXPSL3FGFSFODF ✴
IUUQTEFWFMPQFSBQQMFDPNMJCSBSZQSFSFMFBTFJPT EPDVNFOUBUJPO8BUDI,JU3FGFSFODF 8BUDI,JU@GSBNFXPSLJOEFYIUNM ✴ 8BUDI,JUͰݱࡏҐஔͷਤΛදࣔ͢Δ ✴ IUUQRJJUBDPN@UJE@JUFNT EGFFC ✴ "QQMF8BUDIͰॳΊͯొͨ͠৽6*ʮ(MBODFʯʹ͍ͭͯ ✴ IUUQCMPHIBSBOJDMFOFUHMBODF ✴ 8BUDI,JUͰ)BOEPGG ✴ IUUQCMPHIBSBOJDMFOFUXBUDILJU@IBOEPGG