[swift] Reachability를 사용해 네트워크 연결 상태가 변화할 때 알림 받기

목차

Reachability란?

Reachability는 네트워크 연결 상태를 감지하기 위한 라이브러리로, iOS 애플리케이션에서 네트워크 연결 상태가 변화될 때 이를 감지하고 알림을 받을 수 있도록 도와줍니다.

Reachability 통합 프레임워크 설치

Reachability를 사용하기 위해서는 Reachability 통합 프레임워크를 먼저 설치해야 합니다. Reachability 통합 프레임워크는 다양한 플랫폼에서 사용할 수 있도록 구성된 것으로, CocoaPods나 Carthage를 통해 간단히 설치할 수 있습니다.

CocoaPods를 이용한 설치

  1. Podfile에 다음과 같이 Reachability를 추가합니다.
    pod 'Reachability'
    
  2. 터미널을 실행하고 프로젝트가 있는 경로로 이동합니다.
  3. 다음 명령어를 실행하여 Reachability를 설치합니다.
    $ pod install
    

Carthage를 이용한 설치

  1. Cartfile에 다음과 같이 Reachability를 추가합니다.
    github "ashleymills/Reachability.swift"
    
  2. 터미널을 실행하고 프로젝트가 있는 경로로 이동합니다.
  3. 다음 명령어를 실행하여 Reachability를 설치합니다.
    $ carthage update --platform iOS
    

Reachability 사용하기

  1. Reachability 파일을 프로젝트에 추가하고, 필요한 클래스에서 import 합니다.
    import Reachability
    
  2. Reachability 인스턴스를 생성합니다.
    let reachability = try? Reachability()
    
  3. Reachability를 시작합니다.
    try? reachability?.startNotifier()
    
  4. Reachability의 변경 알림을 받고자 하는 곳에 옵저버(observer)를 등록합니다.
    NotificationCenter.default.addObserver(self, selector: #selector(networkStatusChanged(_:)), name: .reachabilityChanged, object: reachability)
    
  5. Reachability가 변경될 때 호출될 메소드를 정의합니다.
    @objc private func networkStatusChanged(_ notification: Notification) {
     guard let reachability = notification.object as? Reachability else {
         return
     }
        
     if reachability.connection != .unavailable {
         // 네트워크 연결 상태가 변경됨
         print("네트워크 연결 상태가 변경되었습니다.")
     }
    }
    
  6. Reachability 사용이 끝나면 옵저버를 제거하고, Reachability를 중지시킵니다.
    NotificationCenter.default.removeObserver(self, name: .reachabilityChanged, object: reachability)
    reachability?.stopNotifier()
    

위의 과정을 따라서 Reachability를 사용하면 네트워크 연결 상태가 변화할 때 알림을 받을 수 있습니다. Reachability를 이용해 사용자에게 네트워크 상태를 알려줌으로써 더 나은 사용자 경험을 제공할 수 있습니다.

참고 자료