From 110e1b1e9a03143bcd7296be1c37dcaad4957c24 Mon Sep 17 00:00:00 2001 From: opficdev Date: Sun, 8 Feb 2026 03:01:18 +0900 Subject: [PATCH 1/2] refactor: View+ -> EnvironmentValues+ --- DevLog/UI/Extension/EnvironmentValues+.swift | 27 +++++++++++++++++++- DevLog/UI/Extension/View+.swift | 22 ---------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/DevLog/UI/Extension/EnvironmentValues+.swift b/DevLog/UI/Extension/EnvironmentValues+.swift index a7fe565..20ead49 100644 --- a/DevLog/UI/Extension/EnvironmentValues+.swift +++ b/DevLog/UI/Extension/EnvironmentValues+.swift @@ -8,11 +8,18 @@ import SwiftUI extension EnvironmentValues { - var safeAreaInsets: EdgeInsets { self[SafeAreaInsetsKey.self] } + var sceneWidth: CGFloat { + self[SceneWidthKey.self] + } + + var sceneHeight: CGFloat { + self[SceneHeightKey.self] + } + private struct SafeAreaInsetsKey: EnvironmentKey { static var defaultValue: EdgeInsets { guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, @@ -22,6 +29,24 @@ extension EnvironmentValues { return window.safeAreaInsets.insets } } + + private struct SceneWidthKey: EnvironmentKey { + static var defaultValue: CGFloat { + guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene else { + return UIScreen.main.bounds.width + } + return windowScene.screen.bounds.width + } + } + + private struct SceneHeightKey: EnvironmentKey { + static var defaultValue: CGFloat { + guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene else { + return UIScreen.main.bounds.height + } + return windowScene.screen.bounds.height + } + } } extension UIEdgeInsets { diff --git a/DevLog/UI/Extension/View+.swift b/DevLog/UI/Extension/View+.swift index de3f12c..a7f6a7d 100644 --- a/DevLog/UI/Extension/View+.swift +++ b/DevLog/UI/Extension/View+.swift @@ -8,28 +8,6 @@ import SwiftUI extension View { - var sceneWidth: CGFloat { - guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene - else { return UIScreen.main.bounds.width } - - return windowScene.screen.bounds.width - } - - var sceneHeight: CGFloat { - guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene - else { return UIScreen.main.bounds.height } - - return windowScene.screen.bounds.height - } - - var safeAreaInsets: UIEdgeInsets { - guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, - let window = windowScene.windows.first - else { return UIEdgeInsets.zero } - - return window.safeAreaInsets - } - @ViewBuilder func adaptiveButtonStyle(_ color: Color? = nil) -> some View { if #available(iOS 26.0, *), color == nil { From d0831318767c13e3ee717a26cb479f0be7720c83 Mon Sep 17 00:00:00 2001 From: opficdev Date: Sun, 8 Feb 2026 03:04:11 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DevLog/UI/Home/HomeView.swift | 1 + DevLog/UI/Home/TodoEditorView.swift | 1 + DevLog/UI/Login/LoginView.swift | 1 + 3 files changed, 3 insertions(+) diff --git a/DevLog/UI/Home/HomeView.swift b/DevLog/UI/Home/HomeView.swift index 855031f..05ce1b5 100644 --- a/DevLog/UI/Home/HomeView.swift +++ b/DevLog/UI/Home/HomeView.swift @@ -9,6 +9,7 @@ import SwiftUI struct HomeView: View { @Environment(\.diContainer) var container: any DIContainer + @Environment(\.sceneWidth) var sceneWidth: CGFloat @StateObject private var router = NavigationRouter() @StateObject var viewModel: HomeViewModel diff --git a/DevLog/UI/Home/TodoEditorView.swift b/DevLog/UI/Home/TodoEditorView.swift index c0a6f48..1d14b98 100644 --- a/DevLog/UI/Home/TodoEditorView.swift +++ b/DevLog/UI/Home/TodoEditorView.swift @@ -11,6 +11,7 @@ import SwiftUI struct TodoEditorView: View { @StateObject var viewModel: TodoEditorViewModel + @Environment(\.safeAreaInsets) private var safeAreaInsets @Environment(\.dismiss) private var dismiss @FocusState private var field: Field? @State private var showDueDatePicker: Bool = false diff --git a/DevLog/UI/Login/LoginView.swift b/DevLog/UI/Login/LoginView.swift index 0e14824..776d6ed 100644 --- a/DevLog/UI/Login/LoginView.swift +++ b/DevLog/UI/Login/LoginView.swift @@ -10,6 +10,7 @@ import SwiftUI struct LoginView: View { @StateObject var viewModel: LoginViewModel @Environment(\.colorScheme) var colorScheme + @Environment(\.sceneWidth) var sceneWidth var body: some View { ZStack {