iOS 26 Liquid Glass λŒ€μ‘κΈ°

hayeon
  • #iOS
  • #Liquid Glass
  • #Xcode 26
  • #UI/UX
  • #Migration

λ“€μ–΄κ°€λ©°

μ•ˆλ…•ν•˜μ„Έμš”. λ…Έλ¨ΈμŠ€ iOS 개발자 μ΄ν•˜μ—°μž…λ‹ˆλ‹€.

졜근 Apple은 iOS 26κ³Ό ν•¨κ»˜ μƒˆλ‘œμš΄ λ””μžμΈ μ‹œμŠ€ν…œμΈ Liquid Glassλ₯Ό λ„μž…ν•˜λ©° μ•± UI ν™˜κ²½μ— 큰 λ³€ν™”λ₯Ό μ˜ˆκ³ ν–ˆμŠ΅λ‹ˆλ‹€.

κ·Έλ™μ•ˆ μ €ν¬λŠ” κΈ°μ‘΄ λ””μžμΈμ„ μœ μ§€ν•˜κΈ° μœ„ν•΄ Xcode μ—…λ°μ΄νŠΈλ₯Ό μ§€μ—°ν•˜λ©° λŒ€μ‘μ„ μœ μ˜ˆν•΄ μ™”μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ macOS와 App Store Connect의 κ°€μ΄λ“œλΌμΈμ΄ κ°•ν™”λ˜λ©΄μ„œ 더 이상 μ—…λ°μ΄νŠΈλ₯Ό λ―Έλ£° 수 μ—†λŠ” 상황이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이번 κΈ€μ—μ„œλŠ” Liquid Glass λŒ€μ‘μ„ μœ„ν•΄ 사전에 μ§„ν–‰ν•œ 기술 κ²€ν†  과정을 μ€‘μ‹¬μœΌλ‘œ κ³΅μœ ν•˜λ € ν•©λ‹ˆλ‹€.

λŒ€μ‘ λ°°κ²½

Liquid Glass λŒ€μ‘μ„ κ²€ν† ν•˜κ²Œ 된 κ°€μž₯ 큰 κ³„κΈ°λŠ” 개발 ν™˜κ²½μ˜ μ œμ•½μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

기쑴에 μ‚¬μš©ν•˜λ˜ Xcode 16 ν™˜κ²½μ—μ„œλŠ” μ΅œμ‹  기기인 iPhone 17μ—μ„œ 직접 λΉŒλ“œ 및 ν…ŒμŠ€νŠΈκ°€ λΆˆκ°€λŠ₯ν•΄μ‘Œκ³ , μ΅œμ‹  macOS(26.2) ν™˜κ²½μ—μ„œλŠ” Xcode 26으둜의 μ—…λ°μ΄νŠΈκ°€ 사싀상 ν•„μˆ˜ 쑰건이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

여기에 App Store Connectμ—μ„œλŠ” λ‹€μŒκ³Ό 같은 μ•ˆλ‚΄κ°€ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

Starting April 2026, all iOS and iPadOS apps must be built with the iOS 18 SDK or later, and iPhone apps must be built with the iOS 18 SDK or later.

β€” App Store Connect 곡지

ν˜„μž¬ 기쀀은 iOS 18 SDKμ΄μ§€λ§Œ, ν–₯ν›„ iOS 26 ν™˜κ²½κ³Ό μƒˆλ‘œμš΄ λ””μžμΈ μ‹œμŠ€ν…œμΈ Liquid Glassκ°€ 심사 기쀀에 영ν–₯을 쀄 κ°€λŠ₯성을 κ³ λ €ν•˜λ©΄ 사전에 λŒ€μ‘ λ°©ν–₯을 κ²€ν† ν•  ν•„μš”κ°€ μžˆλ‹€κ³  νŒλ‹¨ν–ˆμŠ΅λ‹ˆλ‹€.

Liquid Glassλž€

iOS 26μ—μ„œλŠ” Liquid GlassλΌλŠ” μƒˆλ‘œμš΄ UI λ””μžμΈ μ‹œμŠ€ν…œμ΄ λ„μž…λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

Liquid GlassλŠ” Navigation Barλ‚˜ Tab Bar와 같은 μ‹œμŠ€ν…œ UI에 반투λͺ…ν•œ λ ˆμ΄μ–΄μ™€ λΈ”λŸ¬ 효과λ₯Ό μ μš©ν•΄ 화면에 κΉŠμ΄κ°μ„ μ£ΌλŠ” 것이 νŠΉμ§•μž…λ‹ˆλ‹€.

기쑴의 뢈투λͺ…ν•œ μΈν„°νŽ˜μ΄μŠ€μ™€ 달리 μ½˜ν…μΈ μ™€ UI λ ˆμ΄μ–΄κ°€ μžμ—°μŠ€λŸ½κ²Œ κ²ΉμΉ˜λŠ” ꡬ쑰λ₯Ό 톡해 보닀 μœ μ—°ν•œ μ‹œκ°μ  κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ³€ν™”λŠ” μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈλΏλ§Œ μ•„λ‹ˆλΌ κΈ°μ‘΄ μ•± UI에도 영ν–₯을 쀄 수 있기 λ•Œλ¬Έμ—, μ‹€μ œ μ•± ν™˜κ²½μ—μ„œ μ–΄λ–€ λ¬Έμ œκ°€ λ°œμƒν•˜λŠ”μ§€ 사전 기술 κ²€ν† λ₯Ό μ§„ν–‰ν•˜κΈ°λ‘œ ν–ˆμŠ΅λ‹ˆλ‹€.

사전 κ²€ν† 

ν™”λ©΄ μ „μˆ˜ 쑰사

이에 따라 λ¨Όμ € Liquid Glass ν™˜κ²½μ—μ„œ ν˜„μž¬ μ•± UIκ°€ μ–΄λ–»κ²Œ λ³€ν™”ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” μž‘μ—…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

Xcode 26으둜 개발 ν™˜κ²½μ„ μ—…λ°μ΄νŠΈν•œ λ’€, Liquid Glass νš¨κ³Όκ°€ 적용된 μƒνƒœμ—μ„œ νŒ¬μ•±κ³Ό μ•„ν‹°μ•±μ˜ μ£Όμš” 화면을 μ „μˆ˜ μ‘°μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€.

각 화면을 μΊ‘μ²˜ν•΄ λ””μžμΈνŒ€μ— κ³΅μœ ν•˜κ³ , κΈ°μ‘΄ UI/UX와 좩돌이 λ°œμƒν•˜λŠ” 지점이 μžˆλŠ”μ§€ ν•¨κ»˜ κ²€ν† ν–ˆμŠ΅λ‹ˆλ‹€.

κ²€ν†  κ³Όμ •μ—μ„œ ν™•μΈλœ νŠΉμ§• 쀑 ν•˜λ‚˜λŠ” μ—¬λŸ¬ ν™”λ©΄μ—μ„œ μ»€μŠ€ν…€ κ΅¬ν˜„λœ UIκ°€ μ‘΄μž¬ν•œλ‹€λŠ” μ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

특히 Navigation Barλ‚˜ Tab Bar와 같은 μ˜μ—­μ—μ„œ ν™”λ©΄λ³„λ‘œ λ‹€λ₯Έ λ°©μ‹μ˜ μ»€μŠ€ν„°λ§ˆμ΄μ§•μ΄ μ μš©λ˜μ–΄ μžˆμ—ˆλŠ”λ°, Liquid Glass의 반투λͺ… λ ˆμ΄μ–΄κ°€ μ μš©λ˜λ©΄μ„œ 일뢀 ν™”λ©΄μ—μ„œ μ‹œκ°μ  톡일성이 λ‹€μ†Œ κΉ¨μ Έ λ³΄μ΄λŠ” ν˜„μƒμ΄ ν™•μΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 프둬 λ””μžμΈ κ°€μ΄λ“œλ₯Ό 기반으둜 κ΅¬ν˜„λœ νŒμ—…, λ°”ν…€μ‹œνŠΈ λ“±μ˜ μ»΄ν¬λ„ŒνŠΈ μ—­μ‹œ μ‹œμŠ€ν…œ UI와 ν‘œν˜„ 방식이 달라 보일 수 μžˆμ–΄, μ΄λŸ¬ν•œ μ˜μ—­λ“€μ„ μ€‘μ‹¬μœΌλ‘œ μ–΄λ–»κ²Œ λŒ€μ‘ν•˜λ©΄ 쒋을지 κ²€ν† λ₯Ό μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

이슈 및 λŒ€μ‘ 확인

이 κ³Όμ •μ—μ„œ μ‹œμŠ€ν…œ μ˜΅μ…˜μ„ 톡해 μ œμ–΄κ°€ κ°€λŠ₯ν•œμ§€λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄ Apple의 Liquid Glass κ΄€λ ¨ λ¬Έμ„œμ™€ Appearance APIλ₯Ό ν•¨κ»˜ κ²€ν† ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ€ λ°œκ²¬ν•œ μ£Όμš” μ΄μŠˆμ™€ κ²€ν† ν•œ λŒ€μ‘ λ°©λ²•μž…λ‹ˆλ‹€.

μ˜ˆμ‹œ1) 슀크둀 μ‹œ Navigation Bar 색상 λ°˜μ „

슀크둀 쀑 νŠΉμ • μ˜μ—­μ— λ„λ‹¬ν•˜λ©΄ λ„€λΉ„κ²Œμ΄μ…˜ λ°”μ˜ 색상이 λ°”λ€ŒλŠ” ν˜„μƒμ΄ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 라이트 λͺ¨λ“œμ—μ„œλŠ” κ²€μ •μƒ‰μœΌλ‘œ, 닀크 λͺ¨λ“œμ—μ„œλŠ” ν°μƒ‰μœΌλ‘œ λ°˜μ „λ˜μ–΄ λ³΄μ΄λŠ” λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€.

μ΄λŠ” isTranslucent = false 섀정을 톡해 μ˜λ„ν•˜μ§€ μ•Šμ€ 색상 변경을 λ°©μ§€ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

navigationController?.navigationBar.isTranslucent = false

μ˜ˆμ‹œ2) μ»€μŠ€ν…€ μ»΄ν¬λ„ŒνŠΈμ˜ μ‹œμŠ€ν…œ UI 뢈일치

프둬 λ””μžμΈ κ°€μ΄λ“œλ₯Ό 기반으둜 κ΅¬ν˜„λœ νŒμ—…, λ°”ν…€μ‹œνŠΈ λ“±μ˜ μ»΄ν¬λ„ŒνŠΈκ°€ μ‹œμŠ€ν…œ UI와 λ‹€λ₯Έ μŠ€νƒ€μΌμ„ μ‚¬μš©ν•˜κ³  μžˆμ–΄ μ‹œκ°μ μΈ 차이가 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

iOS 26μ—μ„œ μƒˆλ‘­κ²Œ λ„μž…λœ UIGlassEffectλ₯Ό ν™œμš©ν•΄ μ»€μŠ€ν…€ μ»΄ν¬λ„ŒνŠΈμ—λ„ Liquid Glass 효과λ₯Ό μ μš©ν•˜μ—¬ μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈμ™€ μžμ—°μŠ€λŸ½κ²Œ μ–΄μš°λŸ¬μ§€λ„λ‘ κ°œμ„ ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

private lazy var blurView: UIVisualEffectView = {
    if #available(iOS 26.0, *) {
        let blurEffect = UIGlassEffect(style: .regular)
        let view = UIVisualEffectView(effect: blurEffect)
        view.clipsToBounds = true
        return view
    } else {
        let blurEffect = UIBlurEffect(style: .systemMaterial)
        let view = UIVisualEffectView(effect: blurEffect)
        view.clipsToBounds = true
        return view
    }
}()

μ‹€μ œ 적용 λ°©ν–₯

사전 κ²€ν† λ₯Ό 톡해 Liquid Glass 적용 μ‹œ λ°œμƒν•  수 μžˆλŠ” μ£Όμš” λ³€ν™”λ₯Ό ν™•μΈν•œ λ’€, μ €ν¬λŠ” 전면적인 UI μž¬κ΅¬μ„±λ³΄λ‹€λŠ” μ‹œμŠ€ν…œμ—μ„œ μ œκ³΅ν•˜λŠ” μ˜΅μ…˜μ„ ν™œμš©ν•΄ κΈ°μ‘΄ λ””μžμΈμ„ μ΅œλŒ€ν•œ μœ μ§€ν•˜λŠ” λ°©ν–₯으둜 λŒ€μ‘ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ‹œ1) Navigation Bar와 Tab Bar

특히 Navigation Bar와 Tab Bar와 같은 μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈλŠ” Liquid Glass ν™˜κ²½μ—μ„œ κΈ°λ³Έ λ™μž‘μ΄ λ³€κ²½λ˜κΈ° λ•Œλ¬Έμ—, κ΄€λ ¨ ν”„λ‘œνΌν‹°μ™€ Appearance 섀정을 μ‘°μ •ν•˜μ—¬ μ‚¬μš©μžκ°€ λŠλΌλŠ” μ΄μ§ˆκ°μ„ μ΅œμ†Œν™”ν–ˆμŠ΅λ‹ˆλ‹€.

또 Navigation BarλŠ” iOS 버전에 따라 배경색 처리λ₯Ό λΆ„κΈ°ν–ˆμŠ΅λ‹ˆλ‹€. iOS 26μ—μ„œλŠ” Liquid Glass 효과λ₯Ό κ·ΈλŒ€λ‘œ 살리기 μœ„ν•΄ 배경색을 λͺ…μ‹œμ μœΌλ‘œ μ§€μ •ν•˜μ§€ μ•Šκ³ , 이전 λ²„μ „μ—μ„œλŠ” κΈ°μ‘΄ λ””μžμΈ κ°€μ΄λ“œ 색상을 μœ μ§€ν–ˆμŠ΅λ‹ˆλ‹€.

var navigationBackgroundColor: UIColor? = nil

if #available(iOS 26.0, *) {
    // Liquid Glass 효과 ν™œμš©
} else {
    navigationBackgroundColor = .surface_basic_01
}

appearance.configureWithTransparentBackground()
appearance.backgroundColor = navigationBackgroundColor

Tab Bar도 λ™μΌν•œ λ°©μ‹μœΌλ‘œ λΆ„κΈ°ν–ˆμŠ΅λ‹ˆλ‹€. iOS 26μ—μ„œλŠ” 배경을 투λͺ…μœΌλ‘œ 두어 Liquid Glass 효과λ₯Ό ν™œμš©ν•˜κ³ , 이전 λ²„μ „μ—μ„œλŠ” κΈ°μ‘΄ μ»€μŠ€ν…€ λ°°κ²½κ³Ό ꡬ뢄선을 μœ μ§€ν–ˆμŠ΅λ‹ˆλ‹€.

if #available(iOS 26.0, *) {
    appearance.backgroundColor = .clear
} else {
    appearance.backgroundColor = .surface_modal_01

    let lineView = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 1))
    lineView.backgroundColor = .line_01
    tabBar.addSubview(lineView)
}

μ˜ˆμ‹œ2) μ›Ή μ˜μ—­ 일뢀λ₯Ό λ„€μ΄ν‹°λΈŒλ‘œ μ „ν™˜

또 κΈ°μ‘΄μ—λŠ” μ›ΉμœΌλ‘œ κ΅¬ν˜„λ˜μ–΄ Liquid Glass μ‹œμŠ€ν…œ 효과λ₯Ό λ°›μ§€ λͺ»ν•˜λ˜ μ˜μ—­λ“€μ„ λ””μžμΈ 톡일성을 μœ„ν•΄ λ„€μ΄ν‹°λΈŒλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λ©΄μ„œ, μ›Ήκ³Ό μ•± μ‚¬μ΄μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ‹€μ‹œ μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€λ§Œ μ΄λŸ¬ν•œ λ³€κ²½ 사항듀은 λ‹¨μˆœν•œ μŠ€νƒ€μΌ μ‘°μ •λΏλ§Œ μ•„λ‹ˆλΌ μ›Ήκ³Ό μ•± κ°„ μΈν„°νŽ˜μ΄μŠ€ ꡬ쑰에도 영ν–₯을 μ£ΌλŠ” μž‘μ—…μ΄μ—ˆκΈ° λ•Œλ¬Έμ—, λ‹¨κ³„μ μœΌλ‘œ 적용 λ²”μœ„λ₯Ό λ„“ν˜€κ°€λ©° μ•ˆμ •μ„±μ„ ν™•μΈν•˜λŠ” λ°©μ‹μœΌλ‘œ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

λ§ˆλ¬΄λ¦¬ν•˜λ©°

이번 λŒ€μ‘μ€ λ‹¨μˆœνžˆ OS 버전을 μ—…λ°μ΄νŠΈν•˜λŠ” μž‘μ—…μ„ λ„˜μ–΄, λ³€ν™”ν•˜λŠ” Apple λ””μžμΈ μ‹œμŠ€ν…œμ— 맞좰 κΈ°μ‘΄ μ•± UIλ₯Ό μ–΄λ–»κ²Œ μ•ˆμ •μ μœΌλ‘œ λŒ€μ‘ν•  것인지λ₯Ό κ³ λ―Όν•˜λŠ” κ³Όμ •μ΄μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  μ˜μ—­μ„ ν•œ λ²ˆμ— λ³€κ²½ν•˜κΈ°λ³΄λ‹€λŠ” 심사 기쀀에 직접적인 영ν–₯을 쀄 수 μžˆλŠ” μ˜μ—­μ„ λ¨Όμ € λŒ€μ‘ν•˜κ³ , 이후 μ μ§„μ μœΌλ‘œ 적용 λ²”μœ„λ₯Ό ν™•λŒ€ν•˜λŠ” μ „λž΅μ„ μ„ νƒν–ˆμŠ΅λ‹ˆλ‹€.

μš°μ„ μ μœΌλ‘œ λŒ€μ‘ν•œ μ˜μ—­μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • Navigation Bar
  • Tab Bar
  • App Icon

λ‹¨κΈ°μ μœΌλ‘œλŠ” μ•± 심사 기쀀을 μΆ©μ‘±ν•˜λŠ” μ•ˆμ •μ μΈ λŒ€μ‘μ„ λͺ©ν‘œλ‘œ ν•˜κ³ , 쀑μž₯κΈ°μ μœΌλ‘œλŠ” Liquid Glass의 νŠΉμ„±μ„ μ‚΄λ¦° UI κ°œμ„ λ„ ν•¨κ»˜ κ²€ν† ν•΄ λ‚˜κ°ˆ μ˜ˆμ •μž…λ‹ˆλ‹€. κΈ΄ κΈ€ μ½μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

참고자료

← λͺ©λ‘μœΌλ‘œ λŒμ•„κ°€κΈ°

Art Changes Life

λ…Έλ¨ΈμŠ€μ™€ ν•¨κ»˜ μ—”ν„°ν…Œν¬ 산업을 ν˜μ‹ ν•΄λ‚˜κ°ˆ 멀버λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.

μ±„μš© 쀑인 곡고 보기