[swift] Reachability를 사용해 인터넷 연결 상태 표시하기

앱을 개발하다 보면 사용자에게 인터넷 연결 상태를 표시해야 할 때가 있습니다. 이를 위해 Reachability를 사용할 수 있습니다. Reachability는 네트워크 연결 상태를 모니터링하고, 연결 상태의 변경을 감지하는데 사용됩니다. 이번 튜토리얼에서는 Swift 언어를 사용하여 Reachability를 구현하는 방법에 대해 알아보겠습니다.

Reachability 라이브러리 추가하기

먼저, Reachability를 사용하기 위해 Reachability 라이브러리를 프로젝트에 추가해야 합니다. Cocoapods를 사용한다면, Podfile에 다음과 같은 라인을 추가해주세요.

pod 'ReachabilitySwift'

그리고 터미널에서 pod install 명령어를 실행하여 라이브러리를 다운로드하고, 프로젝트에 적용합니다.

Reachability 클래스 사용하기

Reachability를 사용하기 위해 Reachability 클래스를 생성합니다. 먼저, import ReachabilitySwift 문을 추가해 ReachabilitySwift 모듈을 임포트합니다.

import ReachabilitySwift

그리고, Reachability 변수를 클래스의 프로퍼티로 추가합니다.

let reachability = Reachability()!

Reachability 클래스의 sharedInstance 메서드를 호출하여 싱글톤 인스턴스를 얻습니다. 이 인스턴스를 사용하여 인터넷 연결 상태를 모니터링할 수 있습니다.

Reachability 설정 및 모니터링

Reachability 모니터링을 시작하기 전에, 모니터링하고자 하는 네트워크 유형을 설정해야 합니다. 예를 들어, WiFi 또는 셀룰러 연결 상태를 모니터링하고자 한다면 다음과 같은 코드를 사용할 수 있습니다.

if reachability.isReachableViaWiFi {
    // WiFi 연결 상태
} else if reachability.isReachableViaWWAN {
    // 셀룰러 연결 상태
} else {
    // 인터넷 연결 없음
}

또한, Reachability의 프로퍼티인 whenReachablewhenUnreachable를 사용하여 연결 상태에 대한 알림을 받을 수 있습니다. 아래의 예시 코드를 참고해주세요.

reachability.whenReachable = { reachability in
    // 인터넷 연결 상태로 변경되었을 때 실행되는 코드
    if reachability.isReachableViaWiFi {
        print("WiFi 연결 상태로 변경되었습니다.")
    } else {
        print("셀룰러 연결 상태로 변경되었습니다.")
    }
}

reachability.whenUnreachable = { reachability in
    // 인터넷 연결 없음 상태로 변경되었을 때 실행되는 코드
    print("인터넷 연결 없음 상태로 변경되었습니다.")
}

do {
    try reachability.startNotifier()
} catch {
    print("Reachability 시작에 실패하였습니다.")
}

Reachability 모니터링 중단

Reachability 모니터링이 더 이상 필요하지 않을 때에는, 모니터링을 중단해야 합니다.

reachability.stopNotifier()

위의 코드를 실행하면 Reachability 모니터링이 중단됩니다.

이제, Reachability를 사용하여 앱에서 인터넷 연결 상태를 표시할 수 있습니다. Reachability은 네트워크 연결 상태변화에 따라 알림을 제공하므로, 앱의 사용자에게 정확한 인터넷 연결 상태를 보여줄 수 있습니다.

더 자세한 내용은 다음 문서를 참고해 주세요: ReachabilitySwift