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
590
0
Share
HealthKitをSwift4でいじってみた
第77回Cocoa勉強会関西
studioshin
April 21, 2018
More Decks by studioshin
See All by studioshin
アドフリくんSDKをSwift4で組み込む
studioshin
0
330
8年前にObjective-Cで書いたアプリをゼロからSwift3で書き直した話
studioshin
0
400
Other Decks in Programming
See All in Programming
飯MCP
yusukebe
0
480
The free-lunch guide to idea circularity
hollycummins
0
410
Coding as Prompting Since 2025
ragingwind
0
680
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
150
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
5
2.5k
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
290
iOS機能開発のAI環境と起きた変化
ryunakayama
0
150
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.5k
Feature Toggle は捨てやすく使おう
gennei
0
410
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
170
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
310
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.5k
WCS-LA-2024
lcolladotor
0
510
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
250
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.4k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
The Cult of Friendly URLs
andyhume
79
6.8k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
430
The Pragmatic Product Professional
lauravandoore
37
7.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
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
͜ΕͰجຊతͳ ४උྃʂ