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
haranicle
December 20, 2014
Technology
3
2.6k
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.3k
bitFlyer ウォレット リニューアルの裏側
haranicle
0
150
多次元宇宙と画面遷移
haranicle
0
340
ハッピーな開発チームを築くために iOSエンジニアがしたこと
haranicle
5
15k
Playground芸
haranicle
6
1.9k
I💖Xcode Plugins
haranicle
0
130
Xcode6のFramework Templateについて
haranicle
2
2.7k
iOS8の Custom Keyboard について
haranicle
2
1.2k
Other Decks in Technology
See All in Technology
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
13
3.6k
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
310
Jetpack Composeで始めるServer Cache State
ogaclejapan
2
170
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
260
podman_update_2024-12
orimanabu
1
270
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
100
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
150
Storage Browser for Amazon S3
miu_crescent
1
140
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
440
C++26 エラー性動作
faithandbrave
2
720
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
40
7.1k
Documentation Writing (for coders)
carmenintech
66
4.5k
Code Reviewing Like a Champion
maltzj
520
39k
How to Ace a Technical Interview
jacobian
276
23k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
GitHub's CSS Performance
jonrohan
1030
460k
A designer walks into a library…
pauljervisheath
204
24k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Designing Experiences People Love
moore
138
23k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
For a Future-Friendly Web
brad_frost
175
9.4k
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