Upgrade to Pro — share decks privately, control downloads, hide ads and more …

다리는 걸을 뿐.. 만보기 서비스 개발기

kakao
December 08, 2022

다리는 걸을 뿐.. 만보기 서비스 개발기

#iOS

카카오페이에서 만보기 서비스를 개발하면서 겪었던 이야기들을 소개해 드리려고 합니다

본 세션에서는 만보기 서비스의 소개와 함께 주니어 개발자가 만보기 서비스를 개발하기 위해 어떤 과정을 거쳤는지를 공유하고자 합니다.

발표자 : cado.avo
항상 성장을 하고픈 iOS 개발자 cado입니다.

kakao

December 08, 2022
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1. ݅ࠁӝ ࢲ࠺झܳ ѐߊೞݶࢲ ѻ਷ ੉ঠӝ Copyright 2022. Kakao Corp. All

    rights reserved. Redistribution or public display is not permitted without written permission from Kakao. ׮ܻח Ѧਸ ࡺ.. ݅ࠁӝ ࢲ࠺झ ѐߊӝ ੉അ੤ cado.avo ஠஠য়ಕ੉ if(kakao)2022
  2. 1. ߊ಴੗ ࣗѐ 2. ݅ࠁӝ ࢲ࠺झ ߓ҃ ߂ ࣗѐ 3.

    पઁ ѐߊ ੉ঠӝ 4. ߓ਍ ੼ ߂ ഥҊ
  3. 1. ߊ಴੗ ࣗѐ 2. ݅ࠁӝ ࢲ࠺झ ߓ҃ ߂ ࣗѐ 3.

    पઁ ѐߊ ੉ঠӝ 4. ߓ਍ ੼ ߂ ഥҊ
  4. 1. ߊ಴੗ ࣗѐ 2. ݅ࠁӝ ࢲ࠺झ ߓ҃ ߂ ࣗѐ 3.

    पઁ ѐߊ ੉ঠӝ 4. ߓ਍ ੼ ߂ ഥҊ
  5. 1. ߊ಴੗ ࣗѐ 2. ݅ࠁӝ ࢲ࠺झ ߓ҃ ߂ ࣗѐ 3.

    पઁ ѐߊ ੉ঠӝ 4. ߓ਍ ੼ ߂ ഥҊ
  6. HealthKit vs Core Motion HealthKit Core Motion Main Object HealthKitStore

    CMPedometer Get Data HKQuantityType → query → HKHealthStore startUpdates, queryPedometerData Historic Data Real time
  7. HealthKit vs Core Motion HealthKit Core Motion Main Object HealthKitStore

    CMPedometer Get Data HKQuantityType → query → HKHealthStore startUpdates, queryPedometerData Historic Data No limits 7 Days Real time
  8. HealthKit vs Core Motion HealthKit Core Motion Main Object HealthKitStore

    CMPedometer Get Data HKQuantityType → query → HKHealthStore startUpdates, queryPedometerData Historic Data No limits 7 Days Real time ¦ O
  9. CMPedometer ղࠗ import CoreMotion class CMPedometer : NSObject { open

    func startUpdates( from start: Date, withHandler handler: @escaping CMPedometerHandler ) open func stopUpdates() open func queryPedometerData( from start: Date, to end: Date, withHandler handler: @escaping CMPedometerHandler ) }
  10. CMPedometer ղࠗ import CoreMotion class CMPedometer : NSObject { open

    func startUpdates( from start: Date, withHandler handler: @escaping CMPedometerHandler ) open func stopUpdates() open func queryPedometerData( from start: Date, to end: Date, withHandler handler: @escaping CMPedometerHandler ) } द੘ զ૞
  11. import CoreMotion class CMPedometer : NSObject { open func startUpdates(

    from start: Date, withHandler handler: @escaping CMPedometerHandler ) open func stopUpdates() open func queryPedometerData( from start: Date, to end: Date, withHandler handler: @escaping CMPedometerHandler ) } CMPedometer ղࠗ
  12. CMPedometer ղࠗ import CoreMotion class CMPedometer : NSObject { open

    func startUpdates( from start: Date, withHandler handler: @escaping CMPedometerHandler ) open func stopUpdates() open func queryPedometerData( from start: Date, to end: Date, withHandler handler: @escaping CMPedometerHandler ) } द੘ զ૞, ઙܐ զ૞
  13. - Foreground ੘সਸ Backgroundীࢲ ҅ࣘ೧ঠ ೞח૑ -௼Ҋ য়ې Ѧܻח ੘সੋ૑

    -জ੄ Contentܳ সؘ੉౟ೞח ੘সੋ૑ Backgroundীࢲ ੘স द ੸੺ೠ ੹ۚ ଺ӝ
  14. - Foreground ੘সਸ Backgroundীࢲ ҅ࣘ೧ঠ ೞח૑ -௼Ҋ য়ې Ѧܻח ੘সੋ૑

    -জ੄ Contentܳ সؘ੉౟ೞח ੘সੋ૑ -Backgroundীࢲ জਸ ӵ਋ח ੘সੋ૑ Backgroundীࢲ ੘স द ੸੺ೠ ੹ۚ ଺ӝ
  15. - Foreground ੘সਸ Backgroundীࢲ ҅ࣘ೧ঠ ೞח૑ -௼Ҋ য়ې Ѧܻח ੘সੋ૑

    -জ੄ Contentܳ সؘ੉౟ೞח ੘সੋ૑ -Backgroundীࢲ জਸ ӵ਋ח ੘সੋ૑ -Backgroundীࢲ ੘সਸ ࣻ೯ೞҊ ࢎਊ੗ীѱ ঌܻח ੘সੋ૑ Backgroundীࢲ ੘স द ੸੺ೠ ੹ۚ ଺ӝ
  16. - Foreground ੘সਸ Backgroundীࢲ ҅ࣘ೧ঠ ೞח૑ -௼Ҋ য়ې Ѧܻח ੘সੋ૑

    -জ੄ Contentܳ সؘ੉౟ೞח ੘সੋ૑ -Backgroundীࢲ জਸ ӵ਋ח ੘সੋ૑ -Backgroundীࢲ ੘সਸ ࣻ೯ೞҊ ࢎਊ੗ীѱ ঌܻח ੘সੋ૑ Backgroundীࢲ ੘স द ੸੺ೠ ੹ۚ ଺ӝ
  17. - Foreground ੘সਸ Backgroundীࢲ ҅ࣘ೧ঠ ೞח૑ -௼Ҋ য়ې Ѧܻח ੘সੋ૑

    -জ੄ Contentܳ সؘ੉౟ೞח ੘সੋ૑ -Backgroundীࢲ জਸ ӵ਋ח ੘সੋ૑ -Backgroundীࢲ ੘সਸ ࣻ೯ೞҊ ࢎਊ੗ীѱ ঌܻח ੘সੋ૑ Backgroundীࢲ ੘স द ੸੺ೠ ੹ۚ ଺ӝ Backgroundীࢲ ੘সೞӝ ਤೠ بҳח?
  18. BackgroundTask Test ݺ۸য e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdenti

    fi er:@“Task_identi fi er”] e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateExpirationForTaskWithIdenti fi er:@“Task_identi fi er"]
  19. BackgroundTask Test ݺ۸য e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdenti

    fi er:@“Task_identi fi er”] e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateExpirationForTaskWithIdenti fi er:@“Task_identi fi er"]
  20. BackgroundTask Test ݺ۸য e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdenti

    fi er:@“Task_identi fi er”] e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateExpirationForTaskWithIdenti fi er:@“Task_identi fi er"]
  21. BackgroundTask Test ݺ۸য e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdenti

    fi er:@“Task_identi fi er”] e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateExpirationForTaskWithIdenti fi er:@“Task_identi fi er"]
  22. 1. ߊ಴੗ ࣗѐ 2. ݅ࠁӝ ࢲ࠺झ ߓ҃ ߂ ࣗѐ 3.

    पઁ ѐߊ ੉ঠӝ 4. ߓ਍ ੼ ߂ ഥҊ
  23. -૕ޙ: ݽܰח ࠗ࠙੉ ࢤӟ ҃਋ח ૕ޙೞӝ -ӝദ: झಖਸ ೦࢚ ݢ੷

    ഛੋೞҊ ҳഅೞӝ ߓ਍ ੼ ߂ ഥҊ ӝദ झಖਸ ੘ࢿೠ ֢࣌ ղਊ ੌࠗ
  24. -૕ޙ: ݽܰח ࠗ࠙੉ ࢤӟ ҃਋ח ૕ޙೞӝ -ӝദ: झಖਸ ೦࢚ ݢ੷

    ഛੋೞҊ ҳഅೞӝ -ࢸ҅: ݾ੸ী ݏח ӏݽ৬ ߑߨਸ ੿ೞӝ ߓ਍ ੼ ߂ ഥҊ
  25. -૕ޙ: ݽܰח ࠗ࠙੉ ࢤӟ ҃਋ח ૕ޙೞӝ -ӝദ: झಖਸ ೦࢚ ݢ੷

    ഛੋೞҊ ҳഅೞӝ -ࢸ҅: ݾ੸ী ݏח ӏݽ৬ ߑߨਸ ੿ೞӝ ߓ਍ ੼ ߂ ഥҊ -ܻ࠭: PRী ౱ਗٜ੉ ੘ࢿ೧઱न ܻ࠭ ௏ݭ౟ٜ
  26. -૕ޙ: ݽܰח ࠗ࠙੉ ࢤӟ ҃਋ח ૕ޙೞӝ -ӝദ: झಖਸ ೦࢚ ݢ੷

    ഛੋೞҊ ҳഅೞӝ -ࢸ҅: ݾ੸ী ݏח ӏݽ৬ ߑߨਸ ੿ೞӝ ߓ਍ ੼ ߂ ഥҊ -ܻ࠭: PRী ౱ਗٜ੉ ੘ࢿ೧઱न ܻ࠭ ௏ݭ౟ٜ
  27. -૕ޙ: ݽܰח ࠗ࠙੉ ࢤӟ ҃਋ח ૕ޙೞӝ -ӝദ: झಖਸ ೦࢚ ݢ੷

    ഛੋೞҊ ҳഅೞӝ -ࢸ҅: ݾ੸ী ݏח ӏݽ৬ ߑߨਸ ੿ೞӝ ߓ਍ ੼ ߂ ഥҊ -ܻ࠭: PRী ౱ਗٜ੉ ੘ࢿ೧઱न ܻ࠭ ௏ݭ౟ٜ -੤޷: ࢲ࠺झ ٜ݅ӝ
  28. Reference • Core Motion: https://developer.apple.com/documentation/coremotion • HealthKit: https://developer.apple.com/documentation/healthKit • Background

    Tasks: https://developer.apple.com/documentation/ backgroundtasks
 
 WWDC: https://developer.apple.com/videos/play/wwdc2019/707/
 https://developer.apple.com/videos/play/wwdc2020/10063