iOS 26 Liquid Glass λμκΈ°
- #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.
νμ¬ κΈ°μ€μ 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 κ°μ λ ν¨κ» κ²ν ν΄ λκ° μμ μ λλ€. κΈ΄ κΈ μ½μ΄μ£Όμ μ κ°μ¬ν©λλ€.