[SwiftUI] 앱이 background 에서 다시 돌아왔을 때 알기

2024. 1. 27. 20:33· → Swift Archive
목차
  1. ScenePhase?
  2. ScenePhase 사용해보기
  3. 슬로우 모션
  4. 결론

ScenePhase?

앱을 만들다보면 앱이 잠깐 백그라운드로 갔을때나 백그라운드에서 다시 돌아왔을때, 시점이 필요할때가 있다. 나같은 경우는 잠깐 앱을 background 상태로 두고 권한을 변경한다면? 이 것을 UI 에 바로 적용시킬 수 없을까? 하는 궁금증에서 찾아보았는데 방법이 있었다! 바로 ScenePhase 를 활용하면 된다.

이렇게 나갔다 들어왔을때 아는 방법이 없을까?

 

공식문서에 정말 친절하게 사용설명이 되어있다.

 

ScenePhase | Apple Developer Documentation

An indication of a scene’s operational state.

developer.apple.com

 

ScenePhase 사용해보기

사용방법은 아주 간단하다. 아래와 같이 @Environment 로 변수를 선언해주고, scenePhase 로 앱의 상태를 판별할 수 있다.

    @Environment(\.scenePhase) private var scenePhase

        // switch case 도 가능하고 if 로 처리 해줘도 된다.
        // 모든 상태를 보여드리기 위해 switch case 를 사용했습니다.
        .onChange(of: scenePhase) { _, phase in
            switch phase {
            case .background:
                print("background")
            case .inactive:
                print("inactive")
            case .active:
                print("active")
            @unknown default:
                print("unknown default")
            }
        }

 

위와 같이 뷰에 위의 코드를 넣어준다면...

처음 뷰가 나왔을때 active, 앱을 올려버리면(?) inactive 가 되면서 background 가 되는 모습을 볼 수 있다. 또한 다시 앱을 키면 inactive, active 가 차례로 나오는 것을 볼 수 있다.

 

슬로우 모션

inactive 가 어떤 조건에서 나타나는 건지 궁금해서 slow motion 으로 빌드를 해보았는데, 아래와 같이 앱이 커지거나 작아지고 있는 순간에는 inactive 가 되고 이것이 완료 되었을때 background, active 가 나타나는데 background 의 경우 active 가 나타나는 타이밍보단 살짝 빠르다.

 

결론

ScenePhase 를 통해 간단하게 앱의 background, inactive, active 상태를 받아올 수 있다! 여기서 주의 할 것은 inactive 상태란 앱이 꺼진 상태가 아닌 앱이 사라지거나 나타나지고 있는 상태를 나타낸다!

'→ Swift Archive' 카테고리의 다른 글

[SwiftUI] TabView 이상한 현상 발견?!  (0) 2024.02.03
[SwiftUI] 앱의 실행, 종료 알기  (1) 2024.01.27
[SwiftUI] 네트워크 연결 확인하기  (1) 2024.01.23
[SwiftUI] 커스텀 글래스모피즘 구현하기  (0) 2024.01.10
[SwiftUI] PolygonChart 만들기  (1) 2023.12.15
  1. ScenePhase?
  2. ScenePhase 사용해보기
  3. 슬로우 모션
  4. 결론
'→ Swift Archive' 카테고리의 다른 글
  • [SwiftUI] TabView 이상한 현상 발견?!
  • [SwiftUI] 앱의 실행, 종료 알기
  • [SwiftUI] 네트워크 연결 확인하기
  • [SwiftUI] 커스텀 글래스모피즘 구현하기
Swift librarian
Swift librarian
Swift librarian
Swift Library
Swift librarian
전체
오늘
어제
  • 분류 전체보기 (231)
    • 📺 Programming (5)
    • → Architecture (2)
    • → Design Pattern (0)
    • → Computer Science (15)
    • ⚙️ Algorithm (0)
    • → 알고리즘 관련 (22)
    • → Problems (104)
    • 🚀 Project (0)
    • → 알쏭달쏭 (0)
    • → Shook (2)
    • → Solver (8)
    • → Taster (7)
    • → Outline (4)
    • → Pointer (2)
    • → Guesser (3)
    • 🦜 Swift (2)
    • → Swift Archive (12)
    • → Swift Study (12)
    • → Xcode (6)
    • 🧰 Framework (0)
    • → Foundation (1)
    • → UIKit (2)
    • → SwiftUI (3)
    • → CoreData (2)
    • → MapKit (1)
    • → CoreHaptic (1)
    • → User Notification (1)
    • → StoreKit (2)
    • 🏛️ Library (0)
    • → TCA (0)
    • 🐈‍⬛ Git (8)
    • → Git의 원리 (2)
    • → Git 심화 (1)
    • 📦 Other (1)
    • 👦🏻 Log (0)

최근 글

hELLO · Designed By 정상우.v4.2.2
Swift librarian
[SwiftUI] 앱이 background 에서 다시 돌아왔을 때 알기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.