[swift] 앱에서 인터넷 연결 상태에 따라 다른 동작을 수행하는 방법

인터넷 연결 상태에 따라 앱의 동작을 조정하는 것은 매우 중요합니다. 사용자가 온라인 또는 오프라인인 경우에 따라 서로 다른 화면 또는 기능을 제공할 수 있기 때문입니다. 이 글에서는 Swift를 사용하여 앱에서 인터넷 연결 상태에 따라 다른 동작을 수행하는 방법을 알아보겠습니다.

1. Reachability 라이브러리 설치

인터넷 연결 상태를 확인하기 위해 Reachability 라이브러리를 사용할 것입니다. Reachability는 네트워크 상태를 보다 쉽게 감지할 수 있도록 도와주는 라이브러리입니다.

Reachability 라이브러리를 사용하기 위해 본인의 프로젝트에 CocoaPods를 사용하여 라이브러리를 설치합니다. Terminal을 열고 다음 명령어를 실행합니다:

$ pod init

그리고 Podfile에 다음 내용을 추가합니다:

pod 'ReachabilitySwift'

그리고 다음 명령어를 실행하여 라이브러리를 설치합니다:

$ pod install

2. Reachability 클래스 사용하기

Reachability 클래스를 사용하여 인터넷 연결 상태를 확인하고 이에 따라 동작을 수행할 수 있습니다. 우선, Reachability를 import합니다:

import Reachability

다음으로, Reachability 객체를 생성합니다:

let reachability = try! Reachability()

이제, 앱의 시작시에 Reachability를 감시할 수 있도록 설정해야합니다. 보통 AppDelegate의 didFinishLaunchingWithOptions 메서드에서 설정하게 됩니다:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Reachability 감시 시작
    NotificationCenter.default.addObserver(self, selector: #selector(networkStatusChanged), name: .reachabilityChanged, object: reachability)
    try! reachability.startNotifier()
    
    return true
}

이제 networkStatusChanged 메서드를 작성하여 인터넷 연결 상태가 변경될 때마다 호출되도록 합니다:

@objc func networkStatusChanged() {
    if reachability.connection == .wifi || reachability.connection == .cellular {
        // 인터넷 연결 상태가 있는 경우에 수행할 동작
        print("인터넷 연결 상태가 있습니다.")
    } else {
        // 인터넷 연결이 없는 경우에 수행할 동작
        print("인터넷 연결이 없습니다.")
    }
}

이제 앱에서 인터넷 연결 상태에 따라 다른 동작을 여기에 구현하면 됩니다.

3. 참고 자료

  1. ReachabilitySwift GitHub 페이지: ReachabilitySwift 라이브러리의 공식 GitHub 저장소입니다.
  2. Reachability 라이브러리 사용 가이드: Reachability 라이브러리를 사용하여 인터넷 연결 상태를 감지하고 동작을 처리하는 방법에 대한 자세한 가이드입니다.