티스토리 뷰
반응형
안녕하세요 :) Zedd입니다.
오늘은 제가 정말 인상을 받은....!! 기능(?)
# 앱 종료하기
사실 앱을 직접 종료하는 일은 당연히!!!! 하면 안되는데, 특정 상황에서 앱을 강제종료 시킬 수 있습니다.
(저의) 특정 상황 : 사내 배포용 && 실험실에서 특정 값 바꿈 -> 앱 강제종료 시키고 다시 실행하도록 함
# 앱을 강제종료 시키기
저는 exit(0), exit(1) 밖에 몰랐습니다.
exit(0) : 성공적인 프로그램 종료(Exit Success)
exit(1) : 성공적이지 않은 프로그램 종료(Exit Failure)
(사실 exit(2), exit(-1) 이런식으로 해도 종료가 되는데, 0과 1이 표준이라고 보시면 됩니다.)
보시다시피 앱 사용성에 굉장히 안좋게 종료가 되는데요.
만약 앱 심사 리뷰 중 위와같이 앱이 죽게 되면 리젝사유가 됩니다.
We found that your app includes a UI control for quitting the app. This is not in compliance with the iOS Human Interface Guidelines, as required by the App Store Review Guidelines
# 앱을 💕⭐️💚❤️예쁘게⭐️❤️☀️💙💕종료시키기
UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
위 코드를 이용하는 것입니다.
이렇게 애니메이션과 함께 홈화면으로 돌아가게 됩니다.
UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
하지만 위 gif에서 볼 수 있듯이 단순히 앱 상태를 suspend로 보낸거기 때문에 앱이 종료가 안된 것을 볼 수 있어요.
UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
exit(0) ✅
}
이렇게 해주게 되면
애니메이션과 함께 앱이 정상적으로 잘 종료하는 것을 볼 수 있습니다!
이렇게 예쁘게(?) 종료하면 리젝도 면할 수 있다고 합니다. (참고링크)
저는 일단 앱 종료 키워드를 exit만 알고있어서..이게 당연한 줄 알았는데,
최근에 이런 seamless한 종료를 보면서 많이 감동을.....🥺
그래서 저같이 exit밖에 모르시는 분들을 위해..호다닥...✍️
+ 추가
UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
exit(0) ✅
}
이렇게 dispatchQueue를 돌려서 했지만, didEnterBackgroundNotification obsever를 등록해서 exit(0)하는 방법도!!
참고
반응형
'공부' 카테고리의 다른 글
Swift Package Resource - Copy와 Process의 차이점 (0) | 2021.05.15 |
---|---|
FlexLayout (2) (0) | 2021.05.05 |
FlexLayout 사용해보기 (4) | 2021.05.02 |
extension Reactive (1) | 2021.04.28 |
PinLayout 사용해보기 (0) | 2021.04.21 |
TAG
- swift array
- 제이슨 파싱
- FLUTTER
- np-hard
- ios 13
- actor
- swift 공부
- swift tutorial
- Swift
- WidgetKit
- 피아노
- Combine
- np-complete
- Git
- WKWebView
- fastlane
- Xcode
- github
- WWDC
- 스위프트
- Accessibility
- swift sort
- iOS delegate
- UIBezierPath
- 스위프트 문법
- swift3
- 회고
- swift delegate
- SwiftUI
- IOS
글 보관함
반응형
- Total
- Today
- Yesterday