[swift] Reachability와 네트워크 경고 표시하기

앱을 개발할 때, 사용자가 인터넷에 연결되어 있는지 확인하고, 연결이 끊어지면 알려주는 기능이 필요할 수 있습니다. 이를 위해 Reachability 클래스를 사용하여 네트워크 상태를 감지하고, 적절한 경고 메시지를 표시할 수 있습니다.

Reachability 클래스 사용하기

Reachability 클래스는 스위프트의 네트워크 감지를 위한 라이브러리입니다. 먼저 Reachability 클래스를 프로젝트에 추가해야 합니다.

  1. Reachability 라이브러리를 다운로드하고 프로젝트에 추가합니다. 일반적으로는 CocoaPods를 사용하여 설치할 수 있습니다. Podfile에 다음과 같이 추가합니다:
pod 'ReachabilitySwift'
  1. Terminal에서 프로젝트의 폴더로 이동한 후, 다음 명령어를 실행하여 라이브러리를 설치합니다:
pod install
  1. Reachability 라이브러리를 import합니다:
import Reachability

네트워크 상태 확인하기

Reachability 객체를 생성하고, 네트워크 변화를 감지할 수 있습니다. 아래는 네트워크를 감지하는 코드 예시입니다:

let reachability = try! Reachability()
    
reachability.whenReachable = { _ in
    print("네트워크 연결됨")
    // 네트워크 연결되었을 때 수행할 동작
}
    
reachability.whenUnreachable = { _ in
    print("네트워크 연결 끊어짐")
    // 네트워크 연결이 끊어졌을 때 수행할 동작
}
    
do {
    try reachability.startNotifier()
} catch {
    print("네트워크 감지 실패")
}

네트워크 경고 표시하기

네트워크 연결이 끊어졌을 때, 앱 사용자에게 경고 메시지를 표시하는 것이 좋습니다. 다음은 경고창을 표시하는 코드 예시입니다:

func showNetworkAlert() {
    let alert = UIAlertController(title: "네트워크 연결 안됨", message: "인터넷 연결을 확인해주세요.", preferredStyle: .alert)
    let okAction = UIAlertAction(title: "확인", style: .default, handler: nil)
    alert.addAction(okAction)
    
    present(alert, animated: true, completion: nil)
}

reachability.whenUnreachable = { _ in
    print("네트워크 연결 끊어짐")
    showNetworkAlert()
}

참고 자료