
앱의 최초실행을 감지하는 방식은 중요합니다.
첫 실행을 할 때 회원가입을 유도하거나, 유저에 대한 정보를 받아오거나, 도움말을 띄워주는 등의 작업을 수행해야 하기 때문입니다.
유저의 첫 로딩은 UserDefault를 이용해서 감지합니다.
로직은 매우 간단합니다.
bool type의 userDefaults 값은 처음 생성될 때, default로 Flase값을 가지고 있습니다.
생성된 이후에는 이미 가지고 있는 값을 계속 가지고 옵니다.
let launchedBefore = UserDefaults.standard.bool(forKey: "launchedBefore")
이렇게 앱을 실행할때 가장 먼저 실행되는 init page에 다음과 같은 변수를 선언합니다.
이 변수는 "lauchedBefore"이라는 key의 값이 없으면 자동으로 False로 만들어줍니다.
자 이제 앱이 최초 실행일때 실행하고 싶은 특정행동을 지정해줍니다.
저는 viewDidLoad() 단계에서 할 일을 지정해주었습니다.
if launchedBefore == false {
print("firstLoad")
UserDefaults.standard.set(true, forKey: "launchedBefore")
}
처음 실행하고 나서 true 값으로 바꾸어주면, 이제 더 이상 저 if 문에 걸리지 않게 됩니다.
추가
저렇게 처음에 변수로 선언했었지만, 굳이 그렇게 하지 않고, 다음과 같은 방법으로 그냥 사용하면 더 깔끔합니다.
애초에 처음 생성될 때 따로 true로 set 해주지 않으면 False값을 가지기 때문니다.
if UserDefaults.standard.bool(forKey: "launchedBefore") == false {
// 하고 싶은 작업 지정
UserDefaults.standard.set(true, forKey: "launchedBefore")
}
'iOS 개발 > UIKit' 카테고리의 다른 글
[UIGestureRecognizer] tableview와 함께 사용하기 (0) | 2021.11.29 |
---|---|
[UITableView] SwipeAction - cell 삭제 (확인 Alert와 함께) (0) | 2021.11.29 |
[UITextView] 줄 수, 글자 수 제한 (0) | 2021.11.22 |
[UIView] 정말 예쁜 blur Effect (0) | 2021.11.21 |
[Swift] 앱 안에서 메일 보내기 (0) | 2021.11.20 |
[GestureRecognizer] Gesture 잘 사용하기 - 동시에 여러 gesture 사용하기, 주의점 (0) | 2021.11.17 |
[UICollectionView] View를 하나씩 넘기기, 여러개씩 넘기기 (0) | 2021.11.17 |
[UIImageView] image 색 변경하기 (0) | 2021.11.09 |