Slide 1

Slide 1 text

J04Ͱਖ਼͘͠า਺Λऔಘ͢Δ TBUPTIJO!8*5$P-UE

Slide 2

Slide 2 text

৯ࣄه࿥ΞϓϦʮ͚͋͢Μʯ ࣌఺ 
 ໿ສਓ͕ར༻͢Δ ৯ࣄه࿥ʹಛԽͨ͠
 lϔϧεέΞzΞϓϦ

Slide 3

Slide 3 text

৯ࣄه࿥ΞϓϦʮ͚͋͢Μʯ ࣌఺ 
 ໿ສਓ͕ར༻͢Δ ৯ࣄه࿥ʹಛԽͨ͠
 lϔϧεέΞzΞϓϦ า਺͸ॏཁͳࢦඪͷҰͭ

Slide 4

Slide 4 text

า਺ʹର͢Δಈػ෇͚ ! ফඅΧϩϦʔͷՄࢹԽ ϙΠϯτ ϙέϞϯ ͓ۚ

Slide 5

Slide 5 text

J04ʹ͓͚Δา਺ͷऔಘํ๏ w$.1FEPNFUFSΛར༻ w)FBMUI,JUΛར༻

Slide 6

Slide 6 text

J04ʹ͓͚Δา਺ͷऔಘํ๏ w$.1FEPNFUFSΛར༻ w)FBMUI,JUΛར༻

Slide 7

Slide 7 text

$.1FEPNFUFSΛར༻͢Δ w TUBSUdFOE·ͰͷؒͰ୺຤Ͱݕ஌ͨ͠า਺Λऔಘ ‣ "QQMF8BUDIͷ৘ใऔಘ͸8BUDI"QQͰ࣮૷ w औಘͰ͖Δͷ͸աڈ೔෼ let pedometer = CMPedometer() pedometer.queryPedometerData(from: start, to: end) { (data, error) in print(data?.numberOfSteps) }

Slide 8

Slide 8 text

J04ʹ͓͚Δา਺ͷऔಘํ๏ .FUIPEPGHFUUJOHTUFQDPVOUPOJ04 w$.1FEPNFUFSΛར༻ w)FBMUI,JUΛར༻

Slide 9

Slide 9 text

ʮ͍ͭʯɺʮԿาʯ͕֨ೲ )FBMUI,JUΛར༻͢Δ b)FBMUI`BQQา਺͢΂ͯͷσʔλΛදࣔ೔෇

Slide 10

Slide 10 text

let store = HKHealthStore() let type = HKSampleType.quantityType(forIdentifier: .stepCount)! let predicate = HKQuery.predicateForSamples(withStart: start, end: end) let query = HKSampleQuery(sampleType: type, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { (query, result, error) in let result = result as! [HKQuantitySample] let sum = result(0) { $0 + $1.quantity.doubleValue(for: .count()) } print(sum) } store.execute(query) )FBMUI,JUΛར༻͢Δ

Slide 11

Slide 11 text

let store = HKHealthStore() let type = HKSampleType.quantityType(forIdentifier: .stepCount)! let predicate = HKQuery.predicateForSamples(withStart: start, end: end) let query = HKSampleQuery(sampleType: type, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { (query, result, error) in let result = result as! [HKQuantitySample] let sum = result(0) { $0 + $1.quantity.doubleValue(for: .count()) } print(sum) } store.execute(query) )FBMUI,JUΛར༻͢Δ า਺Λ ظؒͰ શͯऔಘ ΫΤϦ࣮ߦ DPNQMFUJPOIBOEMFS

Slide 12

Slide 12 text

let store = HKHealthStore() let type = HKSampleType.quantityType(forIdentifier: .stepCount)! let predicate = HKQuery.predicateForSamples(withStart: start, end: end) let query = HKSampleQuery(sampleType: type, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { (query, result, error) in let result = result as! [HKQuantitySample] let sum = result(0) { $0 + $1.quantity.doubleValue(for: .count()) } print(sum) } store.execute(query) )FBMUI,JUΛར༻͢Δ

Slide 13

Slide 13 text

J1IPOF͔Βͷσʔλ "QQMF8BUDI͔Βͷσʔλ )FBMUI,JUΛར༻͢Δ ⚠ॏෳͯ͠Χ΢ϯτ͞ΕΔ J1IPOF͚ͩͰςετ͢Δͱɺ ্ख͍ͬͯͦ͘͏ʹݟ͑ΔͷͰ஫ҙ

Slide 14

Slide 14 text

let store = HKHealthStore() let type = HKSampleType.quantityType(forIdentifier: .stepCount)! let predicate = HKQuery.predicateForSamples(withStart: start, end: end) let query = HKSampleQuery(sampleType: type, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { (query, result, error) in let result = result as! [HKQuantitySample] let sum = result(0) { $0 + $1.quantity.doubleValue(for: .count()) } print(sum) } store.execute(query) )FBMUI,JUΛར༻͢Δ

Slide 15

Slide 15 text

let store = HKHealthStore() let type = HKSampleType.quantityType(forIdentifier: .stepCount)! let predicate = HKQuery.predicateForSamples(withStart: start, end: end) let query = HKSampleQuery(sampleType: type, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { (query, result, error) in let result = result as! [HKQuantitySample] let sum = result(0) { $0 + $1.quantity.doubleValue(for: .count()) } print(sum) } store.execute(query) )FBMUI,JUΛར༻͢Δ HKSampleQuery ɹ৚݅ʹϚον͢Δ ɹݸʑͷ஋Λऔಘ͢Δ

Slide 16

Slide 16 text

let store = HKHealthStore() let type = HKSampleType.quantityType(forIdentifier: .stepCount)! let predicate = HKQuery.predicateForSamples(withStart: start, end: end) let query = HKSampleQuery(sampleType: type, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { (query, result, error) in let result = result as! [HKQuantitySample] let sum = result(0) { $0 + $1.quantity.doubleValue(for: .count()) } print(sum) } store.execute(query) )FBMUI,JUΛར༻͢Δ HKSampleQuery ɹ৚݅ʹϚον͢Δ ɹݸʑͷ஋Λऔಘ͢Δ ɹݸʑͷ஋Ͱ͸ͳ͘ɺ ɹσʔλͷಛ௃͕஌Γ͍ͨ

Slide 17

Slide 17 text

ݸʑͷ஋Λऔಘ͍ͨ͠ HKSampleQuery άϧʔϓͷಛ௃Λऔಘ͍ͨ͠(sum,ave,min,max,latest)
 ɹ HKStatisticsQuery / HKStatisticsCollectionQuery )FBMUI,JUΛར༻͢Δ

Slide 18

Slide 18 text

let store = HKHealthStore() let type = HKSampleType.quantityType(forIdentifier: .stepCount)! let predicate = HKQuery.predicateForSamples(withStart: start, end: end) let query = HKStatisticsQuery(quantityType: type, quantitySamplePredicate: predicate, options: .cumulativeSum) { (query, statistics, error) in print(statistics?.sumQuantity()) } store.execute(query) )FBMUI,JUΛར༻͢Δ ྦྷੵ࿨ ॏෳʹର͍͍ͯ͠ײ͡ʹܭࢉͯ͘͠ΕΔ☺

Slide 19

Slide 19 text

ෆਖ਼ରࡦ )FBMUI,JUΛར༻͢Δ J1IPOFͱ"QQMF8BUDIͷา਺ܭσʔλͷΈΛൈ͖ग़͢ !

Slide 20

Slide 20 text

)FBMUI,JUΛར༻͢Δ

Slide 21

Slide 21 text

)FBMUI,JUΛར༻͢Δ खಈͰ௥ՃͰ͖Δ

Slide 22

Slide 22 text

)FBMUI,JUΛར༻͢Δ )FBMUI"QQDPNBQQMF)FBMUI J1IPOFDPNBQQMFIFBMUI<66*%> ֤߲໨͸ॻ͖ࠐΜͩΞϓϦͷ #VOEMF*EFOUJpFSͷ৘ใΛ࣋ͭ IBT1SFpY lDPNBQQMFIFBMUIz ͰϑΟϧλʔ͢Ε͹0, "QQMF8BUDIDPNBQQMFIFBMUI<66*%>

Slide 23

Slide 23 text

4BNQMFDPEF https://github.com/sato-shin/ios-steps

Slide 24

Slide 24 text

No content