Jiwift

[iOS/Swift] 앱의 처음 실행을 판단하기, 최초 실행 로직 본문

iOS Dev/iOS

[iOS/Swift] 앱의 처음 실행을 판단하기, 최초 실행 로직

지위프트 2023. 11. 19. 00:18
반응형

코드 예시

 안녕하세요. 이번에는 iOS 앱의 처음 실행하는 경우에만 실행하는 로직들을 다루기 위한 글을 작성하려고 합니다. 이게 말이 iOS이지 사실 어느 프로그래밍을 하던 사용되는 방식을 비슷할 것이라고 봅니다. 

 

 다양한 방법이 있겠지만, 저는 UserDefatuls를 사용한 방법으로 진행할 것입니다. 

 

// 결과를 저장하는 함수
static func setIsFirstLaunch() {
    // UserDefaults에 값을 저장
    let defaults = UserDefaults.standard
    defaults.set(true, forKey: "isFirstLaunch")
}

// 결과를 받아오는 함수
static func getIsFirstLaunch() -> Bool {
    let defaults = UserDefaults.standard
    // UserDefaults에서 값을 검색
    return !defaults.bool(forKey: "isFirstLaunch")
}

 제가 사용하고 있는 함수입니다. 보시면 결과를 저장하고 받아오는 두 개의 함수로 이루어 저 있습니다. 이렇게까지 함수를 만들지 않아도 되지만 저는 UserDefatuls를 사용하는 부분이 많아서 "AppSettingsUserDefaults"이라는 구조체를 만들어 안에 함수로 정의해서 사용하고 있습니다. 

 

 결과를 받아오는 함수를 보면 return 하는 경우에 "!"를 주어서 결과를 반전시키고 있습니다. UserDefatulsBool 타입은 값을 주지 않은 상태로 불러오게 되면 false를 기본적으로 받아오는데, 함수 이름을 "getIsFirstLaunch"로 했기 때문에 반전을 주어서 truereturn하게 구현했습니다. 사람마다 다르겠지만 저는 사용하는 쪽 if문에서 반전을 주지 않고 바로 사용하고 싶어서 저런 식으로 구현했습니다.

 

 최초 실행 여부를 판단한다는 것은 뭔가 초기에 필요한 작업들이 있기에 로직을 추가하실 것으로 생각이 듭니다. 만약 실행과 상관없이 해당 기능이 딱 한 번만 수행해야 한다면, 위에서 생성한 함수를 다른 이름으로 정의해서 사용하시면 될 것 같습니다.

 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
	
    // 저장된 결과 받아오기 
    if AppSettingsUserDefaults.getIsFirstLaunch() {
        // 처음 실행 여부 값 저장 
        AppSettingsUserDefaults.setIsFirstLaunch()
        
        // 사용자 정보 생성
        
        // 회원가입 절차 수행
    }

    return true
}

 

 저는 앱의 처음 실행 여부를 판단하기 위해서 작성했기 때문에 필요한 절차를 AppDelegate에서 코드를 작성했습니다.

didFinishLaunchingWithOptions 부분에서 선언한 함수를 추가하였습니다. 코드는 간단합니다. if문을 통하여 처음 실행인지 아닌지 여부를 판단하고, 바로 실행 여부 값을 저장하고 원하는 동작들을 수행하게 처리하였습니다. 

 

 

 저는 처음에 이것을 어떻게 구현해야할까 고민을 많이 했으나, 사실 크게 대단한 건 없고 그냥 처음 실행했다는 값만 기억할 수 있으면 되는 것을 알게 되었고 UserDefaults를 사용한 방법을 주로 사용하게되었습니다.

반응형