[swift] Reachability를 사용해 네트워크 연결 상태가 변화할 때 알림 받기
목차
Reachability란?
Reachability는 네트워크 연결 상태를 감지하기 위한 라이브러리로, iOS 애플리케이션에서 네트워크 연결 상태가 변화될 때 이를 감지하고 알림을 받을 수 있도록 도와줍니다.
Reachability 통합 프레임워크 설치
Reachability를 사용하기 위해서는 Reachability 통합 프레임워크를 먼저 설치해야 합니다. Reachability 통합 프레임워크는 다양한 플랫폼에서 사용할 수 있도록 구성된 것으로, CocoaPods나 Carthage를 통해 간단히 설치할 수 있습니다.
CocoaPods를 이용한 설치
- Podfile에 다음과 같이 Reachability를 추가합니다.
pod 'Reachability'
- 터미널을 실행하고 프로젝트가 있는 경로로 이동합니다.
- 다음 명령어를 실행하여 Reachability를 설치합니다.
$ pod install
Carthage를 이용한 설치
- Cartfile에 다음과 같이 Reachability를 추가합니다.
github "ashleymills/Reachability.swift"
- 터미널을 실행하고 프로젝트가 있는 경로로 이동합니다.
- 다음 명령어를 실행하여 Reachability를 설치합니다.
$ carthage update --platform iOS
Reachability 사용하기
- Reachability 파일을 프로젝트에 추가하고, 필요한 클래스에서 import 합니다.
import Reachability
- Reachability 인스턴스를 생성합니다.
let reachability = try? Reachability()
- Reachability를 시작합니다.
try? reachability?.startNotifier()
- Reachability의 변경 알림을 받고자 하는 곳에 옵저버(observer)를 등록합니다.
NotificationCenter.default.addObserver(self, selector: #selector(networkStatusChanged(_:)), name: .reachabilityChanged, object: reachability)
- Reachability가 변경될 때 호출될 메소드를 정의합니다.
@objc private func networkStatusChanged(_ notification: Notification) { guard let reachability = notification.object as? Reachability else { return } if reachability.connection != .unavailable { // 네트워크 연결 상태가 변경됨 print("네트워크 연결 상태가 변경되었습니다.") } }
- Reachability 사용이 끝나면 옵저버를 제거하고, Reachability를 중지시킵니다.
NotificationCenter.default.removeObserver(self, name: .reachabilityChanged, object: reachability) reachability?.stopNotifier()
위의 과정을 따라서 Reachability를 사용하면 네트워크 연결 상태가 변화할 때 알림을 받을 수 있습니다. Reachability를 이용해 사용자에게 네트워크 상태를 알려줌으로써 더 나은 사용자 경험을 제공할 수 있습니다.
참고 자료
- Reachability - Reachability GitHub 저장소
- Reachability.swift 문서 - Reachability 문서