[swift] Reachability를 사용해 인터넷 연결이 불안정한 경우 대응하기

앱을 개발하다보면 사용자의 인터넷 연결이 불안정한 경우에 대응해야 할 때가 있습니다. 이 경우 Reachability 라이브러리를 사용하여 인터넷 연결 상태를 감지하고 적절한 조치를 취할 수 있습니다.

Reachability란?

Reachability는 Apple이 제공하는 네트워크 연결 상태를 확인하는 기능입니다. 이를 사용하면 현재 기기의 인터넷 연결 상태를 감지할 수 있습니다.

Reachability 라이브러리 가져오기

먼저 Reachability 라이브러리를 프로젝트에 추가해야 합니다. 가장 간단한 방법은 CocoaPods를 이용하는 것입니다. Podfile에 다음과 같이 추가하고 pod install 명령어를 실행하세요.

pod 'ReachabilitySwift'

Reachability 사용하기

  1. Reachability 클래스를 import 합니다.
import Reachability
  1. Reachability 클래스의 인스턴스를 생성합니다.
let reachability = try! Reachability()
  1. 네트워크 상태 변경을 감지하기 위해 NotificationCenter에 옵저버를 등록합니다.
NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged(_:)), name: .reachabilityChanged, object: reachability)
  1. reachabilityChanged(_:) 메소드를 정의하여 네트워크 상태가 변경될 때 실행할 로직을 작성합니다.
@objc func reachabilityChanged(_ notification: Notification) {
    let reachability = notification.object as! Reachability
    
    if reachability.connection != .unavailable {
        // 인터넷 연결이 가능한 상태일 때 실행할 로직
    } else {
        // 인터넷 연결이 불가능한 상태일 때 실행할 로직
    }
}
  1. 앱이 처음 실행될 때 또는 화면이 나타날 때 Reachability를 시작하도록 호출합니다.
try? reachability.startNotifier()
  1. 앱이 종료되거나 화면이 사라질 때 Reachability를 중지하도록 호출합니다.
reachability.stopNotifier()

Conclusion

Reachability를 사용하여 인터넷 연결이 불안정한 경우에 대응할 수 있습니다. 이를 통해 사용자에게 네트워크 상태에 따른 적절한 경고 메시지를 보여주거나 일시적인 네트워크 장애에 대비한 처리를 할 수 있습니다. Reachability를 활용하여 사용자 경험을 향상시켜보세요!

References