[swift] Reachability를 사용해 네트워크 연결 상태에 따른 알림 설정하기

iOS 앱을 개발하다 보면 네트워크 연결 상태에 따라 사용자에게 알림을 보여주는 기능을 구현해야 할 때가 있습니다. 이때 Reachability라는 라이브러리를 사용하면 간편하게 네트워크 연결 상태를 확인할 수 있습니다. 이번 글에서는 Swift 언어로 Reachability를 사용하여 네트워크 상태에 따른 알림 설정하는 방법을 알아보겠습니다.

Reachability 라이브러리 추가하기

먼저 Reachability 라이브러리를 프로젝트에 추가해야 합니다. Reachability는 많은 개발자들이 사용하며 GitHub에서 다운로드 받을 수 있습니다.

Reachability.swift 파일을 프로젝트에 추가한 후, 해당 파일이 포함된 그룹에 잘 추가되었는지 확인해야 합니다.

Reachability 객체 생성하기

Reachability를 사용하기 위해서는 Reachability 객체를 생성해야 합니다. 이 객체를 통해 네트워크 상태를 확인할 수 있습니다.

import Reachability

let reachability = try! Reachability()

위 코드를 통해 Reachability 객체를 생성하고, 간편하게 네트워크 연결 상태를 확인할 수 있습니다.

네트워크 상태 모니터링 시작하기

네트워크 상태를 실시간으로 모니터링하고, 상태 변화에 따른 알림을 설정하려면 Reachability 객체의 startNotifier() 메소드를 호출해야 합니다.

reachability.whenReachable = { reachability in
    DispatchQueue.main.async {
        // 네트워크 연결됨, 사용자에게 알림 설정
        // .....
    }
}

reachability.whenUnreachable = { reachability in
    DispatchQueue.main.async {
        // 네트워크 끊어짐, 사용자에게 알림 설정
        // .....
    }
}

do {
    try reachability.startNotifier()
} catch {
    print("Unable to start notifier")
}

위 코드에서는 Reachability 객체의 whenReachable 속성과 whenUnreachable 속성에 클로저를 할당하여 네트워크 상태 변화에 따른 알림을 설정하는 부분입니다.

whenReachable 속성에 할당한 클로저는 네트워크가 연결됐을 때 호출되며, 네트워크가 끊어지면 whenUnreachable 속성에 할당한 클로저가 호출됩니다. 클로저 내부에는 알림을 설정하는 코드를 작성하면 됩니다.

앱 종료 시 모니터링 종료하기

앱이 종료되면 Reachability 객체의 stopNotifier() 메소드를 호출하여 모니터링을 종료해야 합니다. 이렇게 해야 앱이 백그라운드에서 실행되는 동안 사소한 오버헤드 없이 네트워크 상태를 확인할 수 있습니다.

reachability.stopNotifier()

결론

Reachability 라이브러리를 사용하면 간단하게 네트워크 연결 상태를 확인하고, 상태 변화에 따른 알림을 설정할 수 있습니다. 위에서 소개한 방법을 참고하여 네트워크 상태에 따른 알림 기능을 구현해 보세요.

더 자세한 내용은 Reachability 라이브러리의 공식 GitHub 페이지를 참고해주세요.