개요
앱에서는 사용자의 장치가 인터넷에 연결되어 있는지 확인하여 적절한 액션을 취할 수 있어야 합니다. 만약 사용자가 와이파이에 연결되어 있지 않은 경우, 네트워크를 사용하는 기능을 일시적으로 비활성화하거나 알림을 표시해 주어야 합니다. 이러한 기능을 구현하기 위해 iOS에서는 Reachability 클래스를 사용할 수 있습니다.
Reachability 클래스 사용하기
Reachability 클래스를 사용하려면, 다음과 같은 단계를 따라야 합니다.
1. Reachability 클래스 가져오기
먼저 Reachability 클래스를 프로젝트에 추가해야 합니다. Reachability 클래스는 iOS에서 제공하는 시스템 프레임워크 중 하나인 SystemConfiguration.framework에 포함되어 있습니다. 프로젝트 네비게이터에서 프로젝트를 선택한 후, “General” 탭을 클릭하여 “Linked Frameworks and Libraries” 섹션으로 이동합니다. “+” 버튼을 클릭하고 “SystemConfiguration.framework”을 추가합니다.
2. Reachability 인스턴스 생성하기
Reachability 클래스의 인스턴스를 생성하기 위해서는 다음과 같은 코드를 작성해야 합니다.
import Reachability
let reachability = try! Reachability()
3. Reachability 감시 시작하기
Reachability 클래스는 현재 네트워크 연결 상태를 감시하고 변경 사항을 알려주는 기능을 제공합니다. 다음과 같은 코드로 감시를 시작할 수 있습니다.
reachability.startNotifier()
4. Reachability 변경 사항 처리하기
Reachability 상태가 변경될 때마다, delegate 패턴을 사용하여 변경 사항을 처리할 수 있습니다. 첫 번째로 Reachability 클래스의 인스턴스에 delegate를 지정해야 합니다. 다음과 같은 코드로 delegate를 지정할 수 있습니다.
reachability.delegate = self
그리고 ReachabilityDelegate 프로토콜을 구현하여 상태 변경에 대한 처리 내용을 작성해야 합니다. 다음은 ReachabilityDelegate 프로토콜의 예시입니다.
import Reachability
class ViewController: UIViewController, ReachabilityDelegate {
let reachability = try! Reachability()
override func viewDidLoad() {
super.viewDidLoad()
reachability.delegate = self
reachability.startNotifier()
}
func reachabilityDidChangeStatus(_ reachability: Reachability) {
if reachability.isReachable {
if reachability.isReachableViaWiFi {
// 와이파이에 연결되었을 때 동작
} else {
// 데이터 네트워크에 연결되었을 때 동작
}
} else {
// 인터넷에 연결되지 않았을 때 동작
}
}
}
마무리
Reachability 클래스를 사용하여 앱의 와이파이 연결 상태를 감지하고 적절한 동작을 수행할 수 있습니다. 이를 통해 사용자에게 더 나은 사용 경험을 제공할 수 있습니다. 참고로 Reachability 클래스는 iOS 12부터 사용되지 않으며, Network Framework를 사용하는 것을 권장합니다.