[swift] Reachability를 사용해 인터넷 연결 상태 변경 시 사용자에게 알림 보내기

앱에서 인터넷 연결 상태 변경을 감지하고, 연결 상태에 대한 사용자에게 알림을 보내는 기능은 매우 유용합니다. iOS 앱에서는 Reachability 라이브러리를 사용하여 이 기능을 구현할 수 있습니다.

Reachability 라이브러리 가져오기

우선, Reachability 라이브러리를 프로젝트에 추가해야 합니다. 이 라이브러리는 Cocoapods를 통해 간단하게 가져올 수 있습니다.

  1. 프로젝트의 Podfile에 다음을 추가합니다:

    pod 'ReachabilitySwift'
    
  2. 터미널에서 프로젝트의 디렉토리로 이동한 후, 다음 커맨드를 실행합니다:

    pod install
    
  3. Reachability 라이브러리를 사용하기 위해 Swift 파일에서 다음을 import 합니다:

    import Reachability
    

Reachability 설정 및 사용

Reachability를 사용하여 인터넷 연결 상태 변경을 감지하고 알림을 보내기 위해 다음과 같이 작성할 수 있습니다:

  1. Reachability 인스턴스를 생성합니다:

    let reachability = try! Reachability()
    
  2. Reachability 인스턴스를 시작합니다:

    try! reachability.startNotifier()
    
  3. NotificationCenter를 사용하여 Reachability의 변경 알림을 등록합니다:

    NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged), name: .reachabilityChanged, object: reachability)
    
  4. Reachability의 변경 알림을 처리하는 메소드를 작성합니다:

    @objc func reachabilityChanged(notification: Notification) {
        let reachability = notification.object as! Reachability
           
        if reachability.connection == .wifi {
            // WiFi 연결 상태입니다.
            // 사용자에게 WiFi 연결 알림을 보냅니다.
        } else if reachability.connection == .cellular {
            // 모바일 데이터 연결 상태입니다.
            // 사용자에게 모바일 데이터 연결 알림을 보냅니다.
        } else {
            // 인터넷 연결이 없는 상태입니다.
            // 사용자에게 인터넷 연결 없음 알림을 보냅니다.
        }
    }
    
  5. Reachability의 변경 알림을 해제하는 메소드를 작성합니다:

    deinit {
        NotificationCenter.default.removeObserver(self, name: .reachabilityChanged, object: reachability)
    }
    

이제 Reachability를 사용하여 인터넷 연결 상태 변경을 감지하고, 해당 상태에 따른 알림을 사용자에게 보낼 수 있습니다.

참고 자료