Slide 1

Slide 1 text

ൃ೤͔ΒJ1IPOFΛकΔ ߐຊޫ੖ ϞόνΩʙ.PCJMF5JQTڞ༗ձʙ  1

Slide 2

Slide 2 text

ࣗݾ঺հ w ͑΋ͱΈͭ͸Δ w גࣜձࣾΏΊΈJ04ςοΫϦʔυ w ݬͷϞόνΩͷൃදऀͰ͢ w ΤϯδχΞΧϑΣʹ)),#4UVEJPΛݟʹདྷ·ͨ͠ 2

Slide 3

Slide 3 text

એ఻ w ٕज़ॻయٕॻതʹͯɺٕज़ಉਓࢽʮΏ ΊΈେٕྛ`  ʯΛແྉ഑෍͠·͢ʂ w ࢲ͸ʰ3FEVY4BHBGPS4XJGUʱΛॻ͖·ͨ͠ w ʢ೔ʣͷٕज़ॻయΦϑϥΠϯ։࠵ ʢ஑ାʣͷϒʔεʢ͞ʣʹډΔͷͰɺݱ஍ ࢀՃ͞ΕΔํ͸͓ؾܰʹͲ͏ͧ w ΦϯϥΠϯ։࠵Ͱ΋ɺిࢠ൛͕͋ΔͷͰੋඇ 3

Slide 4

Slide 4 text

J1IPOFγϦʔζ͕ൃച͞Ε͕ͨ w J1IPOFγϦʔζ J04Ͱൃ೤໰୊͕ൃੜʂ w "4$**KQɿΞοϓϧɺʮJ1IPOF1SPʯ͕ҟৗൃ೤͢ΔݪҼ͸J04 ͷόάͳͲͩͱίϝϯτIUUQTBTDJJKQFMFN  w ʮJ1IPOFʯγϦʔζͷʮ༧૝ΑΓ೤͘ͳΔʯ໰୊ɺʮJ04ʯͰ ղফ͢Δͱ"QQMF*5NFEJB/&84IUUQTXXXJUNFEJBDPKQ OFXTBSUJDMFTOFXTIUNM 4

Slide 5

Slide 5 text

ࠓճ͚ͩ͡Όͳ͍ɺ਎ۙͳൃ೤໰୊ w ߴෛՙͳॲཧͳͲΛߦ͍ଓ͚ͯɺJ1IPOFͷຊମԹ౓ ͕͋Δఔ౓Λ௒͑ΔͱɺߴԹ஫ҙͷܯࠂ͕දࣔ͞ΕΔ w ௕࣌ؒͷ,ࡱӨͰߴԹ஫ҙ͕දࣔ͞ΕͨɺͳͲ w ೥ͷهࣄ w ߴԹ஫ҙʂɹJ1IPOF͕೤͘ͳΔݪҼͱରॲ๏ *5NFEJB.PCJMFIUUQTXXXJUNFEJBDPKQ NPCJMFBSUJDMFTOFXTIUNM IUUQTXXXJUNFEJBDPKQNPCJMF BSUJDMFTOFXTIUNM 5

Slide 6

Slide 6 text

͞Βʹଞࣾ·ͰऔΓ্͛ͯ͘Δ w ઌ೔ͷ9JBPNJͷൃදձʹͯɺ4OBQESBHO(FOͱԹ౓ൺֱ͞ΕΔ IUUQTUXJUUFSDPNZVLJDDIJ@XPSMETUBUVT 6

Slide 7

Slide 7 text

ൃ೤͕΋ͨΒ͢Өڹ w ຊମͷج൘΍όοςϦʔʹμϝʔδΛ༩͑Δ w ಛʹϦν΢ϜΠΦϯి஑͸Թ౓ʹݫ͘͠ɺՐࡂ΍രൃͷՄೳੑ͕͋Δ w ਪ঑Թ౓dˆ࢖༻Թ౓dˆอ؅Թ౓dˆ w αʔϚϧεϩοτϦϯάͰʢຊମϨϕϧͰʣΫϥογϡ͢Δ w ྫྷ٫ϑΝϯ΋ͳ͍͠ɺਅՆͷ໺֎Ͱ͸࢖͑ͳ͍ 㱯✱A㱯  7 †IUUQTDPOTVNFSIVBXFJDPNKQTVQQPSUCBUUFSZDIBSHJOH †

Slide 8

Slide 8 text

ൃ೤໰୊ͷղফʹऔΓ૊Ή w ௿ϑϨʔϜϨʔτ΍ܭࢉෛՙ͕௿͍ɺ௿ػೳͳॲཧΛߦ͏ w ͱ͸͍͑ɺҰ཯ʹϦονͳදݱ΍ॲཧ͕࢖͑ͳ͍ͷ͸Ͳ͏ͳͷ͔ʁ w ໰୊ղܾͱ͍͑͹ʮਪଌ͢ΔͳɺܭଌͤΑʯ w J1IPOFͷൃ೤Λܭଌͯ͠ɺൃ೤ঢ়ଶʹԠͯ͡ॲཧΛ੾Γସ͑Δʁ w ࠓճ͸͜ͷܭଌΛऔΓѻ͍·͢ 8

Slide 9

Slide 9 text

J1IPOFͷൃ೤Λௐ΂Δํ๏ w *OTUSVNFOUT w 4ZTUFN5SBDFͰ5IFSNBM4UBUFΛ֬ೝͰ͖Δ w ʢ༨ஊʣ9DPEF͸ਖ਼͘͠ܭଌͰ͖ͳ͍ͷͰɺΛ࢖͍·͠ΐ͏ w ൃ೤ঢ়ଶΛ"1*͔Βঢ়ଶΛऔಘɾߪಡ͢Δ w ݱঢ়͸̎छྨͷऔಘํ๏͕͋ΓɺͦΕΒΛ঺հ͠·͢ w ʢ༨ஊʣ"1*Λௐ΂ΔͱɺΧϝϥͷ৭Թ౓΍8FBUIFS,JUͷؾԹ͕͋Δ 9

Slide 10

Slide 10 text

 1SPDFTT*OGP w ར༻୺຤ͷ৘ใऔಘ͢Δ"1* w /PUJ fi DBUJPO$FOUFSͰൃ೤ঢ়ଶͷมԽΛݕ஌Ͱ͖Δ NotificationCenter.default.addObserver( self, selector: #selector(monitorState), name: ProcessInfo.thermalStateDidChangeNotification, object: nil ) 10

Slide 11

Slide 11 text

5IFSNBM4UBUF nominal 😀 ೤ঢ়ଶ͸ਖ਼ৗൣғ಺Ͱ͢ fair 😅 ೤ঢ়ଶ͸΍΍ߴΊͰ͢ serious 🥵 ೤ঢ়ଶ͸ߴΊͰ͢ critical 🔥 ೤ঢ়ଶ͸γεςϜͷੑೳʹେ͖ͳӨڹΛٴ΅͓ͯ͠ΓɺσόΠεΛ ྫྷ٫͢Δඞཁ͕͋Γ·͢ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOGPVOEBUJPOQSPDFTTJOGPUIFSNBMTUBUF let state = ProcessInfo.processInfo.thermalState ˞ֆจࣈ͸ࢲ͕Πϝʔδͨ͠୺຤ͷൃ೤ঢ়ଶ 11

Slide 12

Slide 12 text

 "7$BQUVSF%FWJDF w ϥΠϒϏϡʔͳͲ"7$IBQUVSF4FTTJPOͰར༻͞ΕΔ૷ஔ͔Βऔಘ͢Δ w ੲͳ͕Βͷ,70Ͱ஋มԽΛ؂ࢹ͢Δ @objc private dynamic var videoDeviceInput: AVCaptureDeviceInput! … videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice!) observe(\.videoDeviceInput.device.systemPressureState, options:.new){ [weak self] object, change in guard let self, let state = change.newValue else { return } self.monitorSystemPressureState(systemPressureState: state) } 12

Slide 13

Slide 13 text

4ZTUFN1SFTTVSF4UBUF-FWFM nominal 😀 γεςϜѹྗ͸ਖ਼ৗͰ͢ fair 😅 γεςϜѹྗ͕Θ͔ͣʹ্ঢ͍ͯ͠Δ serious 🥵 γεςϜѹྗ͕ඇৗʹߴ͘ͳ͍ͬͯΔ critical 🔥 γεςϜѹྗ͕ஶ্͘͠ঢ͍ͯ͠Δ shutdown ☠ γεςϜѹྗ͕ݶքΛ௒͍͑ͯΔͨΊɺΩϟϓ νϟγεςϜ͸γϟοτμ΢ϯ͍ͯ͠Δ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOBWGPVOEBUJPOBWDBQUVSFEFWJDFTZTUFNQSFTTVSFTUBUFMFWFM let level = systemPressureState.level ˞ֆจࣈ͸ࢲ͕Πϝʔδͨ͠୺຤ͷൃ೤ঢ়ଶ 13 w ѹྗʢෛՙʣ͸ɺԹ౓΍ ిྗྔͳͲ༷ʑͳ֎෦ཁ Ҽʹࠨӈ͞ΕΔ w ిؾճ࿏ʹ͓͍ͯɺҰൠ తʹʮෛՙ೤ʯͱߟ͑ ͯ໰୊ͳ͍Ͱ͢

Slide 14

Slide 14 text

4ZTUFN1SFTTVSF4UBUF'BDUPST w ཁҼ͸ݸผʹऔಘͰ͖Δ w CJUNBTL 0QUJPO4FU Ͱ ఆٛ͞ΕΔͷͰɺෳ߹త ͳཁҼΛऔಘͰ͖Δ w 1SPTTFTT*OGPʹ΋ཁҼ ͕ཉ͍͠ʂ // bitmask of values indicating the factors // contributing to the current system pressure level. let factors = systemPressureState.factors if (factors == [.systemTemperature]) { // γεςϜશମͷߴ೤ͳෛՙ } if (factors == [.peakPower]) { // γεςϜͷϐʔΫిྗཁ͕݅όοςϦʔͷిྲྀ༰ྔΛ௒ա } if (factors == [.depthModuleTemperature]) { // ਂ౓৘ใΛऔಘ͢ΔϞδϡʔϧ͕ߴԹͰಈ࡞ } if (factors == [.cameraTemperature]) { // ΧϝϥϞδϡʔϧ͕ߴԹͰಈ࡞ʢiOS 17 Ҏ্ͷΈʣ } 14 IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOBWGPVOEBUJPO BWDBQUVSFEFWJDFTZTUFNQSFTTVSFTUBUFGBDUPST

Slide 15

Slide 15 text

ൃ೤ঢ়ଶͷςετ͸Ͳ͏΍ͬͯʁ w ࣮ػͰൃ೤ςετΛ΍Γ͗͢Δ ͱɺϦν΢ϜΠΦϯి஑͕๲Β ΜͰɺނো͢Δ w 9DPEF͔Β࣮ػͷൃ೤Λγ ϛϡϨʔτͰ͖Δ w ͨͩ͠ɺ"7$BQUVSF%FWJDFͷ ൃ೤γϛϡϨʔτ͸ະରԠʜ 15

Slide 16

Slide 16 text

·ͱΊ w ෛՙ͕ߴ͍ΞϓϦΛ࡞Δ৔߹͸ɺൃ೤ঢ়ଶͷ؅ཧ΋͠·͠ΐ͏ w ൃ೤͕ݪҼͰΫϥογϡͨ͠৔߹͸ɺΫϥογϡϨϙʔτ͕ڍ͕Βͳ͍ ͜ͱ͕͋Γɺ։ൃऀ͸ࣄ৅೺Ѳ΍ݪҼڀ໌͕Ͱ͖ͳ͍ w ετΞͰʮΫϥογϡͨ͠ͷͰ੕̍Ͱ͢ʯ͕૿͑Δ͔΋ w ࠓճ঺հͨ͠ίʔυ͸(JU)VCʹ·ͱΊ͍ͯ·͢ w IUUQTHJUIVCDPNNJUTVIBSV5IFSNBM.POJUPS4BNQMF 16

Slide 17

Slide 17 text

ʢ͓·͚ʣ௥Ճ"1*͔Βͷߟ࡯ w J04 WJTJPO04 ͔ΒཁҼʹDBNFSB5FNQFSBUVSF͕௥Ճ͞Εͨ w "QQMF7JTJPO1SPʹ޲͚ͨ४උʁͱ༧૝͍ͯ͠·͢ w ຊମਖ਼໘ͷΧϝϥɺ֎෇͚ͷόοςϦʔͱ෺ཧతʹ೤ݯ͕཭Εͨ w ൃ೤ࣄނ͕ىͬͨ͜Βେ໰୊ʢ௨ৗͰ΋໰୊͕ͩɺಛʹ7JTJPO1SP͸಄ ʹ૷ண͢ΔͷͰʣͳͷͰɺൃ೤ରࡦ͸ͱͯ΋େ੾ʂ w ಄ͷۙ͘ʹ೤ݯ͕͋Δͱ਎ମʹӨڹ͋Γͦ͏ͳͷͰ஫ҙ͠ͳ͍ͱ 17