[๐ŸŒŸ] Screen Time API ๊ถŒํ•œ ์„ค์ • ๋„์ „ํ•˜๊ธฐ (6) - TOO MUCH ์˜ˆ์™ธ์ฒ˜๋ฆฌ

Edenยท2025๋…„ 1์›” 30์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
108/132
post-thumbnail

1. ์ƒํ™ฉ

์•ฑ์—์„œ ํ™”๋ฉด ์‹œ๊ฐ„ ๊ถŒํ•œ(Screen Time Permission)์„ ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ, iOS ๋ฒ„์ „์— ๋”ฐ๋ฅธ ์ ์ ˆํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ถŒํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

private func requestScreenTimePermission() {
    if #available(iOS 16.0, *) {
        familyControlsManager.requestAuthorization { [weak self] granted in
            DispatchQueue.main.async {
                if granted {
                    self?.navigateToStarList()
                }
            }
        }
    } else {
    /// iOS 15 ๋ฏธ๋งŒ์ผ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ
    	let alert = UIAlertController(
              title: "์ง€์›๋˜์ง€ ์•Š๋Š” ๋ฒ„์ „",
              message: "์ด ๊ธฐ๋Šฅ์€ iOS 15.0 ์ด์ƒ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.\n์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ์„ธ์š”.",
              preferredStyle: .alert
          )
          alert.addAction(UIAlertAction(title: "ํ™•์ธ", style: .default, handler: { _ in
               self.navigateToStarList()
          }))

          DispatchQueue.main.async {
              self.present(alert, animated: true, completion: nil)
         }
     }
}

2. ๋ฌธ์ œ

iOS Deployment Target์ด 16.0 ์ด์ƒ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด์„œ, iOS 15 ์ดํ•˜์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์•˜๋‹ค.

3. ํ•ด๊ฒฐ

๋ถˆํ•„์š”ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ–ˆ๋‹ค.

private func requestScreenTimePermission() {
    familyControlsManager.requestAuthorization { [weak self] in
        DispatchQueue.main.async {
            self?.navigateToStarList()
        }
    }
}

4. ๋ฐฐ์šด ์ 

Deployment Target์„ ๊ณ ๋ คํ•˜์ž

  • iOS 16 ์ด์ƒ๋งŒ ์ง€์›ํ•˜๋Š” ์•ฑ์—์„œ ๋ถˆํ•„์š”ํ•œ #available ์ฒดํฌ๋ฅผ ํ•˜์ง€ ๋ง์ž.

5. ์ดํ›„ ๊ณ„ํš

  • ์‚ฌ์šฉ์ž ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ •๋ง ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋‹ค์‹œ ์ถ”๊ฐ€ํ• ์ง€ ๊ณ ๋ฏผํ•ด๋ณผ ์˜ˆ์ •.
  • ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ, UX๋ฅผ ๊ณ ๋ คํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ๋‹ค์‹œ ๊ณ ๋ฏผํ•ด๋ณผ ๊ฒƒ.
profile
Frontend ๐ŸŒ and iOS ๏ฃฟ ๐Ÿซถ๐Ÿป

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด