[swift] Reachability를 사용해 인터넷 연결이 불안정한 경우 대응하기
앱을 개발하다보면 사용자의 인터넷 연결이 불안정한 경우에 대응해야 할 때가 있습니다. 이 경우 Reachability 라이브러리를 사용하여 인터넷 연결 상태를 감지하고 적절한 조치를 취할 수 있습니다.
Reachability란?
Reachability는 Apple이 제공하는 네트워크 연결 상태를 확인하는 기능입니다. 이를 사용하면 현재 기기의 인터넷 연결 상태를 감지할 수 있습니다.
Reachability 라이브러리 가져오기
먼저 Reachability 라이브러리를 프로젝트에 추가해야 합니다. 가장 간단한 방법은 CocoaPods를 이용하는 것입니다. Podfile
에 다음과 같이 추가하고 pod install
명령어를 실행하세요.
pod 'ReachabilitySwift'
Reachability 사용하기
Reachability
클래스를 import 합니다.
import Reachability
Reachability
클래스의 인스턴스를 생성합니다.
let reachability = try! Reachability()
- 네트워크 상태 변경을 감지하기 위해
NotificationCenter
에 옵저버를 등록합니다.
NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged(_:)), name: .reachabilityChanged, object: reachability)
reachabilityChanged(_:)
메소드를 정의하여 네트워크 상태가 변경될 때 실행할 로직을 작성합니다.
@objc func reachabilityChanged(_ notification: Notification) {
let reachability = notification.object as! Reachability
if reachability.connection != .unavailable {
// 인터넷 연결이 가능한 상태일 때 실행할 로직
} else {
// 인터넷 연결이 불가능한 상태일 때 실행할 로직
}
}
- 앱이 처음 실행될 때 또는 화면이 나타날 때 Reachability를 시작하도록 호출합니다.
try? reachability.startNotifier()
- 앱이 종료되거나 화면이 사라질 때 Reachability를 중지하도록 호출합니다.
reachability.stopNotifier()
Conclusion
Reachability를 사용하여 인터넷 연결이 불안정한 경우에 대응할 수 있습니다. 이를 통해 사용자에게 네트워크 상태에 따른 적절한 경고 메시지를 보여주거나 일시적인 네트워크 장애에 대비한 처리를 할 수 있습니다. Reachability를 활용하여 사용자 경험을 향상시켜보세요!