iyOmSd/Title: Swift

[Swift] Pulse 네트워크 디버깅 라이브러리

냄수 2023. 3. 29. 21:08
반응형

주변에서 듣고

프로젝트에 도입해서 아주 만족감 높은 라이브러리를 소개해드릴려고해요

 

https://github.com/kean/Pulse

 

GitHub - kean/Pulse: Network logger for Apple platforms

Network logger for Apple platforms. Contribute to kean/Pulse development by creating an account on GitHub.

github.com

https://kean-docs.github.io/pulse/documentation/pulse/gettingstarted

 

Documentation

 

kean-docs.github.io

https://kean.blog/pulse/pro

 

Pulse Pro

A powerful logging system and a network inspector for Apple platforms written using SwiftUI

kean.blog

Pulse라는 라이브러리에요

 

평소 네트워크 통신쪽을 디버깅을 하기위해선

1. 만들기가 귀찮죠...

print()문을 응답에 사용하거나

Alamofire, moya에 디버깅플러그인을 만들어서 넣어주는경우가 있죠

 

2. 가독성이 떨어지죠...

request, response를 로그창에서 볼 수 있는데

응답데이터가 길어지거나 배열일경우 흰색글씨가 좌라라라락 나열되어있어서

뭐가뭔지 확인해야하는 수고가들어요

 

3. 엑스코드를 켜야 로그확인이 가능하죠...

print로 찍었기떄문에 로그창에서만 볼수있죠...!

혹은 systemLog를 사용했어도 그과정을 하기위해선 폰과 연결해야하거나 시뮬을 동작시켜야해요

 

 

이러한 불편함을 해결해준다고 생각하는 라이브러리에요

만족스러운점은

 

1. 별도셋팅이 크게없어서 간편하게 설정가능

2. UI가 깔끔하고 보기쉬움

3. 리모트가 지원돼서 폰에서 보기 귀찮으면 맥북에서 연결시켜놓고 크게 편하게 실시간으로 통신상태 볼 수 있음

 

입니다!

 

실제로 띄우면 소개이미지와 똑같이 생겼어요

아주 깔끔하죠?

 

 

설정코드 한번봐볼까요?

public enum PulseManager {
    public static func onPulse() {
        URLSessionProxyDelegate.enableAutomaticRegistration()
    }
}

앱실행시 1회만

URLSessionProxyDelegate.enableAutomaticRegistration()

를 호출하라고 써있어요

앱딜리게이트에서 설정코드를 써주면 되죠

이함수는 자동으로 로깅해주도록 설정해줘요

가로채서 pulse에서만든걸 이용하도록 치환하는 함수에요

이 호출을해줘야 정상적으로 URLSession 이용시 로그에 찍혀요

 

 

struct PulseView: View {
    var body: some View {
        NavigationView {
            ConsoleView()
        }
    }
}

SwiftUI기준으로

ConsoleView를 띄우면되구요

꼭 NavigationView를 감싸서 만들어야해요

URL에대한 상세내용을 push로 보기때문에 구현해주지않는다면

상세내역을 볼 수 없어요

 

 

원격으로 로그를 보고싶다면

<key>NSLocalNetworkUsageDescription</key>
<string>Network usage required for debugging purposes </string>
<key>NSBonjourServices</key>
<array>
  <string>_pulse._tcp</string>
</array>

해당앱 plist에 해당 내용을 설정해주시면됩니다

로컬네트워크를 찾는 권한을 주는 그런 설정이라고하네요

 

그 뒤에

 

Pulse Pro를 다운받고 열면

이렇게 연동시킬수 있구요

통신내역을 실시간으로 볼 수 있습니다!!

 

아주간단하죠!?

 

 

 

 

 

 

 

참고

https://velog.io/@dvhuni/Pulse

반응형