SwiftUI

TCA(6) : WebView

Phililip
728x90

안녕하세요.

 

이번에는 TCA를 활용하여 WebView를 만들어볼게요.

 

(TCA 0.54.0 기준으로 작성했으며, 전체 코드는 여기를 봐주세요!)

 


Reducer, Scope, TaskResult 등 지금까지 TCA에 대해서 간단하게 알아봤는데요.

 

지금까지 공부한 것을 활용하면 자식 WebView를 만들 수 있습니다!!ㅎㅎ

[참고] TCA로 WebView 만들면 뭐가 좋아?

UIKit 기반의 WebKit의 이벤트를 SwiftUI로 던져주거나, 반대로 SwiftUI 이벤트를 WebKit으로 던져주기 쉽습니다.

 

 

이전 글에서 다 다뤄봤던 내용이기 때문에 자세하게 설명은 생략하고 WebView, WebViewReducer 코드 먼저 보여드릴게요.

(좀 길어요..;;)

 

 

아직까진 SwiftUI 용 WebView가 따로 없기 때문에, UIViewControllerRepresentable를 사용해서 WebViewController를 감싼 WebView라는 것을 만들었어요.

 

WebView 생성 시 WebViewReducer를 전달받아서 WebViewController로 전달해 주고요.

 

WebViewController에서는 observer 또는 delegate로 이벤트를 받으면, 그 이벤트를 WebViewReducer로 전달시키는 방식입니다.

 

 

WebView를 사용하는 곳(=부모)에선 WebViewReducer를 자식 Reducer로 등록하는 것으로, 웹뷰로 이벤트를 전달하거나 웹뷰의 이벤트를 전달받을 수 있습니다.

 

 

 

더 스마트한 방법 알고 계신 분 계시면 공유해 주세요!!!

 


이번 글은 여기서 마무리.

 

 

 

반응형