ram2 ๐Ÿš—

[swift] ScreenTime API ๋ž€? ๋ณธ๋ฌธ

๐ŸŽ Swift

[swift] ScreenTime API ๋ž€?

coram22 2024. 9. 11. 22:54
728x90
๋ฐ˜์‘ํ˜•

 

์ด์ „์— ๋™์•„๋ฆฌ์—์„œ ์ง„ํ–‰ํ•˜๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ๋ฆฌํŽ™ํ† ๋งํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๊ธฐ๋กœ ํ–ˆ๋‹ค.

์ „์—๋Š” 3์ฃผ๋ผ๋Š” ์งง์€ ์‹œ๊ฐ„๋™์•ˆ ๋ชจ๋‘ ๊ตฌํ˜„์„ ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ํƒ„ํƒ„ํ•˜์ง€ ์•Š์•˜๊ณ , ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‚œ์ƒ ์ฒ˜์Œ ์จ๋ณด๋Š” SwiftUi์™€ ํ˜ผ์šฉํ•ด์•ผ ํ–ˆ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋œฏ์–ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค.

 

SwiftUI๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋˜ ์ด์œ ๋Š”, screenTime API๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋‹น์‹œ์—๋Š” Github์—์„œ ๋ˆ„๊ตฐ๊ฐ€ ์‚ฌ์šฉํ•ด๋‘” screenTime API๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ–ˆ์—ˆ๋Š”๋ฐ, ๊ณต๋ถ€ํ•  ์‹œ๊ฐ„์กฐ์ฐจ ์—†๋‹ค๊ณ  ๋Š๊ปด์กŒ๊ธฐ์— ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ์ฑ„ ํ”„๋กœ์ ํŠธ์— ๋ฐ˜์˜ํ•ด๋ฒ„๋ ธ๋‹ค.

 

์ด๋ฒˆ์—๋Š” ๋‹ค์‹œ ๋” ํƒ„ํƒ„ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š”๋งŒํผ, ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜๊ณ , screenTime API ๋งˆ์Šคํ„ฐ๊ฐ€ ๋ผ์•ผ ๊ฒ ๋‹ค.

 

์˜ค๋Š˜์€ screenTime API๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋ฐ˜์˜ํ•˜๊ธฐ์— ์•ž์„œ, ํ•ด๋‹น API์—๋Š” ๋ฌด์—‡์ด ์žˆ๋Š”์ง€, ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์žˆ๋Š”์ง€, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋“ฑ์„ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

https://developer.apple.com/videos/play/wwdc2021/10123/

 

Meet the Screen Time API - WWDC21 - Videos - Apple Developer

Explore the Screen Time API and learn how you can build apps that support customized parental controls — all while putting privacy first...

developer.apple.com

 

์œ„ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€๋‹ค.

 


 

ScreenTime API๋ž€?

์ž๊พธ ๊ณต์‹๋ฌธ์„œ์—์„œ ๊ฐ•์กฐํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค. 

๋ฐ”๋กœ ๋งž์ถคํ˜• ๋ถ€๋ชจ ํ†ต์ œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋Š”๋ฐ, ํ•ด๋‹น ๋‚ด์šฉ์„ ๊ฐ•์กฐํ•˜๊ณ  ์žˆ๋‹ค.

์ด API๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

 

1. DeviceActivity

2. FamilyControls

3. ManagedSettings

 

์ฐจ๊ทผ์ฐจ๊ทผ ํ•˜๋‚˜์”ฉ ๊ณต๋ถ€ํ•ด๋ณด์ž !

 

 

1. DeviceActivity๋ž€?

https://developer.apple.com/documentation/DeviceActivity

 

DeviceActivity | Apple Developer Documentation

Monitor device activity with your app extension while maintaining user privacy.

developer.apple.com

 

์ด Framework๋Š” ๋ง ๊ทธ๋Œ€๋กœ, ๊ธฐ๊ธฐ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

1. ์‚ฌ์šฉ์ž์˜ ์•ฑ ๋ฐ ์›น์‚ฌ์ดํŠธ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ ,

2. ํ”„๋ผ์ด๋ฒ„์‹œ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

 

๊ตฌ์ฒด์ ์ธ ์ƒํ™ฉ์„ ์˜ˆ๋กœ ๋“ค์–ด๋ณด๋ฉด,

์‚ฌ์šฉ์ž๊ฐ€ ์ž ์ž๋ฆฌ์— ๋“ค์–ด์•ผํ•˜๋Š” ์‹œ๊ฐ„ ๋™์•ˆ ๊ธฐ๊ธฐ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋„๋ก ์ทจ์นจ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ๋” ํ™•์žฅํ•ด๋ณด๋ฉด, ํ™œ๋™ ์ผ์ •์ด ์‹œ์ž‘๋˜๊ฑฐ๋‚˜ ๋๋‚˜๊ธฐ ์ „์—, ํ˜น์€ ํ™œ๋™์ด ๋ฏธ๋ฆฌ ์ •์˜๋œ ํ•œ๊ณ„์— ๋„๋‹ฌํ•  ๋•Œ ๊ฒฝ๊ณ  ํ˜น์€ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Š” ๊ณ„์† ์‚ฌ์šฉ ์‹œ๊ฐ„๊ณผ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ํ•œ๊ณ„์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ๋ฅผ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ, ํŠน์ • ์•ฑ์„ ํŠน์ • ์‹œ๊ฐ„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ์ธ์ง€ํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น framework์˜ ๊ธฐ๋Šฅ์ด ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ํ•„์š”ํ•˜๋‹ค !

 

 

2. FamilyControls๋ž€?

์ด framework๋Š” ๋ง ๊ทธ๋Œ€๋กœ, ์ฒ˜์Œ์— ๊ณ„์† ๊ฐ•์กฐํ–ˆ๋˜ ๋ถ€๋ชจ์˜ ํ†ต์ œ ๊ถŒํ•œ์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.

์ด ๋ถ€๋ถ„์€ ๋‚ด๊ฐ€ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ž๊พธ ๊ฐ•์กฐํ•˜๋‹ˆ ์งง๊ฒŒ๋‚˜๋งˆ ์ •๋ฆฌ๋ฅผ ํ•ด๋ด์•ผ๊ฒ ๋‹ค.

๊ทผ๋ฐ ์ง€๋‚œ ๊ฐœ๋ฐœ์—์„œ๋Š” ์ด framework๋„ ์‚ฌ์šฉํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, screenTime์„ ์„ค์ •ํ•˜๋ ค๋ฉด 1์ฐจ์ ์œผ๋กœ ํ•„์š”ํ•œ framework์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.

์ถ”ํ›„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋‹ค๋ณด๋ฉด ์•Œ๊ฒŒ ๋˜๊ฒ ์ง€?

 

Family Sharing group

์ด framework๋Š” ๋ถ€๋ชจ๊ฐ€ ์ž๋…€์˜ ์•ฑ ์‚ฌ์šฉ์„ ํ†ต์ œํ•˜๊ธฐ ์œ„ํ•จ์ด ๋ชฉ์ ์ด๋‹ค.

์ด๋ฅผ ์œ„ํ•ด์„œ๋Š”, ๋ถ€๋ชจ์˜ ํ†ต์ œ ๊ถŒํ•œ ํ•  ์ˆ˜ ์žˆ๋Š” ์Šน์ธ์ด ํ•„์š”ํ•œ๋ฐ ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ž๋…€๊ณผ ๊ฐ™์€ ๊ฐ€์กฑ ๊ณต์œ  ๊ทธ๋ฃน์— ์†ํ•ด์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ฆ‰, ์ž๋…€์™€ ๋ถ€๋ชจ๊ฐ€ ๊ฐ™์€ ๊ฐ€์กฑ ๊ณต์œ  ๊ทธ๋ฃน(Family Sharing group)์— ์†ํ•ด ์žˆ์–ด์•ผ ๋ถ€๋ชจ๊ฐ€ ์ž๋…€์˜ ์•ฑ ์‚ฌ์šฉ์„ ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด๋Ÿฌํ•œ ์Šน์ธ ๊ณผ์ •์€, ์‹œ์Šคํ…œ์—์„œ ์ž๋…€์˜ ๊ธฐ๊ธฐ์— ์ธ์ฆ sheet๋ฅผ ํ‘œ์‹œํ•˜๊ณ , ๋ถ€๋ชจ๋‚˜ ๋ณดํ˜ธ์ž๊ฐ€ ์ด์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์Šน์ธ ๋˜๋Š” ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์•ฑ์˜ AuthorizationCenter๋กœ ์ „๋‹ฌํ•œ๋‹ค.

 

AuthorizationCenter

์ด framework์—์„œ AuthorizationCenter๋Š” ๊ฝค๋‚˜ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.

๋ถ€๋ชจ๊ฐ€ ๊ถŒํ•œ์„ ์Šน์ธ ๋˜๋Š” ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ์ž(์ฆ‰, ์ž๋…€)์˜ ์Šน์ธ ๋˜ํ•œ ํ•„์š”ํ•œ๋ฐ ์ด ๊ถŒํ•œ ๊ฒฐ๊ณผ ๋˜ํ•œ AuthorizationCenter๋กœ ์ „์†กํ•œ๋‹ค.

 

์ฆ‰, ์ •๋ฆฌํ•˜๋ฉด ์‰ฝ๊ฒŒ ์‚ฌ์šฉ์ž๋ฅผ ๋ถ€๋ชจ์™€ ์ž๋…€๋กœ ๋‚˜๋ˆ ๋ณด์ž.

์ด ๋•Œ, ๊ฐ™์€ ๊ฐ€์กฑ ๊ณต์œ  ๊ทธ๋ฃน์— ์†ํ•œ ๋ถ€๋ชจ์™€ ์ž๋…€๋Š” ๊ฐ๊ฐ ๊ถŒํ•œ์— ๋Œ€ํ•œ ์Šน์ธ์ด ํ•„์š”ํ•˜๋‹ค.

๋ถ€๋ชจ๊ณผ ์ž๋…€๊ฐ€ ๊ถŒํ•œ์„ ์Šน์ธ ๋˜๋Š” ๊ฑฐ๋ถ€ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์‘๋‹ต ๊ฒฐ๊ณผ๊ฐ€ AuthorizationCenter๋กœ ๋ชจ๋‘ ์ „์†ก๋˜์–ด ์ฒ˜๋ฆฌ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

์ฃผ์š” ๊ธฐ๋Šฅ

์ด framework์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ๋ถ€๋ชจ๋‚˜ ๋ณดํ˜ธ์ž๋กœ๋ถ€ํ„ฐ ์ธ์ฆ๋œ ์ž๋…€(์‚ฌ์šฉ์ž)๊ฐ€ ๋ถ€๋ชจ ํ†ต์ œ ์„ค์ •์„ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์„ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉ์ง€ํ•œ๋‹ค.

2. ๊ธฐ๊ธฐ์— ๋ถ€๋ชจ๋‚˜ ๋ณดํ˜ธ์ž๊ฐ€ ์ธ์ฆํ•œ ํ†ต์ œ ์•ฑ์ด ํ•˜๋‚˜ ์ด์ƒ ์žˆ์„ ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๋Š” iCloud์—์„œ ๋กœ๊ทธ์•„์›ƒ ํ•  ์ˆ˜ ์—†๋‹ค.

 

์ฆ‰, ์ž๋…€๋Š” ๋ถ€๋ชจ ํ†ต์ œ ์•„๋ž˜ ์žˆ๋Š” ์•ฑ์„ ์‚ญ์ œํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ํ†ต์ œ๋ฅผ ๋ฒ—์–ด๋‚  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ž๋…€๋“ค์€ ์ •๋ง ์‹ซ์–ดํ• ๋งŒํ•œ framework์ด์ง€๋งŒ, ๋ถ€๋ชจ๋‹˜๋“ค์€ ์ƒ๋‹นํžˆ ์ข‹์•„ํ•˜์‹ค.. ๊ทธ๋Ÿฐ framework์ด๋‹ค.

 

 

3. Manage Settings

Managed Settings๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ๊ธฐ๊ธฐ์—์„œ ํŠน์ • ์„ค์ • ๋ฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ผ์ด๋ฒ„์‹œ ๋ณดํ˜ธ ๋ฐฉ์‹์„ ์ œ๊ณตํ•œ๋‹ค.

์‚ฌ์šฉ์ž์˜ ํ—ˆ๊ฐ€๋ฅผ ๋ฐ›์œผ๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

1. ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ  ํ‘œ์‹œ ์ œํ•œ

2. ์•ฑ ๊ตฌ๋งค ์ œํ•œ

3. ์•”ํ˜ธ ์„ค์ •์„ ์ž ๊ทธ๊ณ , ๋‹ค๋ฅธ ๊ธฐ๊ธฐ ๋™์ž‘์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋˜ํ•œ, ManagedSettingsUI, DeviceActivity, ๊ทธ๋ฆฌ๊ณ  FamilyControls ์ด ์„ธ ๊ฐœ์™€ ํ•จ๊ป˜ ์ž‘๋™๋˜์–ด ๊ธฐ๊ธฐ ์‚ฌ์šฉ์„ ์ œํ•œ, ์Šน์ธ, ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.
 
์ด ๊ถŒํ•œ ์Šน์ธ ๋ฐฉ๋ฒ•์€ FamilyControls,
๊ธฐ๊ธฐ ์‚ฌ์šฉ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ผ์ • ๊ด€๋ฆฌ๋Š”DeviceActivity๋ฅผ ์ž์„ธํžˆ ๋ด์•ผํ•œ๋‹ค !

 


 

์ด์ „์—๋Š” ์ด๋Ÿฌํ•œ ๊ธฐ๋ฐ˜ ์—†์ด ๋Œ€์ถฉ ๋ณด๊ณ  ๊ฐœ๋ฐœํ•ด์„œ ์ด๋ฆ„๋„ ํ—ท๊ฐˆ๋ฆฌ๊ณ , ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ๊ณผ ์—ฐ๊ด€ ๊ด€๊ณ„๋„ ๋„ˆ๋ฌด ํ—ท๊ฐˆ๋ ธ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๋‹ˆ ์กฐ๊ธˆ์€ ์ดํ•ด๊ฐ€ ๋๋‹ค.

 

์ด์ œ ์ง์ ‘ framework๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค !!

728x90
๋ฐ˜์‘ํ˜•