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
HealthKitをSwift4でいじってみた
Search
studioshin
April 21, 2018
Programming
0
570
HealthKitをSwift4でいじってみた
第77回Cocoa勉強会関西
studioshin
April 21, 2018
Tweet
Share
More Decks by studioshin
See All by studioshin
アドフリくんSDKをSwift4で組み込む
studioshin
0
320
8年前にObjective-Cで書いたアプリをゼロからSwift3で書き直した話
studioshin
0
390
Other Decks in Programming
See All in Programming
ふつうの技術スタックでアート作品を作ってみる
akira888
0
150
Team operations that are not burdened by SRE
kazatohiei
1
260
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
110
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
230
VS Code Update for GitHub Copilot
74th
1
420
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
250
XP, Testing and ninja testing
m_seki
3
200
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1.1k
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
20
3.7k
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
220
Select API from Kotlin Coroutine
jmatsu
1
190
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
580
Featured
See All Featured
Speed Design
sergeychernyshev
32
1k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Facilitating Awesome Meetings
lara
54
6.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Why You Should Never Use an ORM
jnunemaker
PRO
57
9.4k
How GitHub (no longer) Works
holman
314
140k
How to Ace a Technical Interview
jacobian
277
23k
Statistics for Hackers
jakevdp
799
220k
4 Signs Your Business is Dying
shpigford
184
22k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
KATA
mclloyd
29
14k
Become a Pro
speakerdeck
PRO
28
5.4k
Transcript
HealthKitΛ Swift4Ͱ͍ͬͯ͡Έͨ ୈ77ճ Cocoaษڧձؔ 20184݄14 @studioshin
ࣗݾհ ϑϦʔͰiOS/MacΞϓϦ։ൃͬͯ·͢ ଜ ਅೋ STUDIO SHIN @studioshin Twitter: Cocoaษڧձؔɹද
͜ΜͳຊΛॻ͍ͯ·͢ɻ
)FBMUI,JUͱʁ J04͔ΒՃ͞Εͨɺ݈߁ؔ࿈ͷσʔλΛ औΓѻ͏ϑϨʔϜϫʔΫɻ ʰϔϧεέΞʱΞϓϦΛத৺ʹɺϢʔβʔͷ ɺମॏɺาɺΞΫςϏςΟɺফඅΧϩ ϦʔͳͲΛऔΓ·ͱΊΔσʔλϕʔεɻ σʔλʹαʔυύʔςΟΞϓϦ͔ΒΞΫ ηεՄೳɻʢରԠΞϓϦʹϓϥΠόγʔϙ Ϧγʔͷද͕͚ࣔٛΒΕΔʣ
)FBMUI,JUͬͯΈΑ͏ͱࢥͬͨཧ༝ ࣄͰ)FBMUI,JUରԠΞϓϦΛ࡞Δ͜ͱʹͳͬͨɻ ࣌ؒͳ͔ͬͨͷͰɺӳޠͷυΩϡϝϯτಡΈ ࠐ·ͳ͍ͰຊޠهࣄΛάάͬͯΈͨɻ ৽نΞϓϦͳͷͰɺવJ04 9DPEF 4XJGUͰ࡞Δɻ ৽͍͠Ϋϥεܕ͕ΊͬͪΌଟ͍ͧʂʁ ?@? ղઆهࣄJ04ͱ͔4XJGU͕ଟ͍ʂ
IUUQTEFWDMBTTNFUIPEKQSFGFSFODFTJPTIFBMUILJUBQQ ओʹࢀߟʹ͍ͤͯͨ͞هࣄͪ͜Βɻ
)FBMUI,JUͷ֓ཁ "QQ )FBMUI,JU )FBMUI,JUͷσʔλ͕ཉ͍͠ʂ
)FBMUI,JUͷ֓ཁ "QQ )FBMUI,JU ),)FBMUI4UPSF )FBMUI,JU͞·ʹɺ Θ͠Λ௨ͯ͠Λ͢Δͷ͡Όʂ ྑ͖ʹ͔Β͑
)FBMUI,JUͷ֓ཁ "QQ )FBMUI,JU ),)FBMUI4UPSF ॻ͖ࠐΈ ಡΈࠐΈ σʔλΛ ಡΈࠐΈ͍ͨʂ ॻ͖ࠐΈ͍ͨʂ
)FBMUI,JUͷ֓ཁ "QQ )FBMUI,JU ),)FBMUI4UPSF ॻ͖ࠐΈ ಡΈࠐΈ Ϣʔβʔ༷ɺ ͍͔͕͍ͨ͠·͔͢ʁ Ϣʔβʔ
)FBMUI,JUͷ֓ཁ "QQ )FBMUI,JU ),)FBMUI4UPSF ॻ͖ࠐΈ ಡΈࠐΈ Ϣʔβʔ ڐՄ ! ͍͍Αʂ
)FBMUI,JUͷ֓ཁ "QQ )FBMUI,JU ॻ͖ࠐΈ ಡΈࠐΈ ),)FBMUI4UPSF
)FBMUI,JUͷ֓ཁ "QQ )FBMUI,JU ॻ͖ࠐΈ ಡΈࠐΈ ),)FBMUI4UPSF ),2VFSZ ),4BNQMF
)FBMUI,JUͷ֓ཁ "QQ )FBMUI,JU ॻ͖ࠐΈ ಡΈࠐΈ ),)FBMUI4UPSF ),0CKFDU ),0CKFDU ඇಉظ
)FBMUI,JUͰѻ͑Δओͳσʔλ ˙Ϣʔβʔͷମσʔλ )FBMUI,JUͷ֓ཁ ˙ଌఆσʔλ ˙ΧςΰϦʔσʔλ ݂ӷܕɺੜ݄ɺੑผɺഽɺंҜࢠ༻ ɺମॏɺาɺ݂ѹɺͳͲʜ ਭɺελϯυ࣌ؒɺੑߦҝɹͳͲʜ
),)FBMUI4UPSF )FBMUI,JUͷอޢྖҬͷΞΫηεΛհ͢ ΔΫϥεɻ σʔλΞΫηεͷڐՄɺಡΈॻ͖͜ͷ ΫϥεΛ௨ͯ͡ߦ͏ɻ )FBMUI,JUͷ֓ཁ
),0CKFDU )FBMUI,JUͱσʔλΛΓऔΓ͢ΔͨΊͷΫ ϥεɻ ಡΈॻ͖ʹԠ͍͔ͯͭ͘͡ͷαϒΫϥε͕ ͋ΓɺͦͷαϒΫϥεΛ௨ͯ͡)FBMUI,JUͱ σʔλΛΓऔΓ͢Δɻ )FBMUI,JUͷ֓ཁ
),0CKFDUͷαϒΫϥε )FBMUI,JU͔ΒσʔλΛಡΈࠐΉࡍʹ༻͢ ΔΫϥεɻσʔλͷछྨʹԠ͍͔ͯͭ͘͡ ͷαϒΫϥε͕͋Δɻ )FBMUI,JUͷ֓ཁ ),2VFSZ
),0CKFDUͷαϒΫϥε ),)FBMUI4UPSFʹσʔλΛ͍߹ΘͤΔΫϥεɻ )FBMUI,JUͷ֓ཁ ),2VFSZͷओͳαϒΫϥε ),4BNQMF2VFSZ ),4UBUJTUJDT2VFSZ ౷ܭσʔλΛऔಘ͢ΔͨΊͷΫϥεɻ ),4UBUJTUJDT$PMMFDUJPO2VFSZ ࿈ଓͨ͠౷ܭσʔλΛऔಘ͢ΔͨΊͷΫϥεɻ
),0CKFDUͷαϒΫϥε )FBMUI,JUʹσʔλΛॻ͖ࠐΉࡍʹ࡞͢Δ ΫϥεɻσʔλͷछྨʹԠ͍͔ͯͭ͘͡ͷ αϒΫϥε͕͋Δɻ )FBMUI,JUͷ֓ཁ ),4BNQMF
),0CKFDUͷαϒΫϥε ྔͰද͞ΕΔσʔλΛѻ͏ɻ )FBMUI,JUͷ֓ཁ ),4BNQMFͷओͳαϒΫϥε ),2VBOUJUZ4BNQMF ),$BUFHPSZ4BNQMF ΧςΰϦʔͰද͞ΕΔσʔλΛѻ͏ɻ
),6OJU ୯ҐΛද͢Ϋϥεɻ ηϯνϝʔτϧɺάϥϜɺΧϩϦʔɹͳͲʜ )FBMUI,JUͷ֓ཁ ),0CKFDU5ZQF σʔλͷछྨΛද͢Ϋϥεɻ ɺମॏɺڑɺาɹͳͲʜ ͜ΕΒͷΫϥεɺαϒΫϥεͰѻ͏σʔλΛ ಛఆ͢Δɻ
)FBMUI,JUରԠΞϓϦͷ࡞Γํ "QQ*%༗ޮαʔϏεͰ)FBMUI,JUʹνΣοΫΛೖΕΔɻ
)FBMUI,JUରԠΞϓϦͷ࡞Γํ $BQBCJMJUJFTͰ)FBMUI,JUΛ0/ʹ͢Δɻ શͯʹνΣοΫ͕͘ ͷΛ֬ೝʂ
)FBMUI,JUରԠΞϓϦͷ࡞Γํ ιʔείʔυʹ)FBMUI,JUΛΠϯϙʔτ͢Δɻ import UIKit import HealthKit class ViewController: UIViewController {
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
)FBMUI,JUରԠΞϓϦͷ࡞Γํ *OGPQMJTUʹ)FBMUI,JUͷΩʔΛه͢Δɻ LFZ/4)FBMUI4IBSF6TBHF%FTDSJQUJPOLFZTUSJOH6TF)FBMUI,JUTUSJOH LFZ/4)FBMUI6QEBUF6TBHF%FTDSJQUJPOLFZTUSJOH6TF)FBMUI,JUTUSJOH
͜ΕͰجຊతͳ ४උྃʂ