본문 바로가기

iOS/Swift

UIWebView 와 WKWebView 차이

앱 내부에 HTML 데이터 / 콘텐츠를 표시해야 하므로 WKWebView가 개발 되었다.

WKWebView는 UIWebView와 비교하여 더 높고 효율적인 성능을 제공한다.

- WKWebView는 더 빠른 자바 스크립트 엔진인 Nitro를 사용한다.

- WKWebView는 Javascript와 네이티브 코드 간의 통신을 비동기적으로 처리한다.

- WKWebView는 서버 인증 문제를 지원한다. 암호로 보호된 웹사이트의 사이트 자격 증명을 입력할 수 있음을 의미한다.

 

  UIWebView WKWebView
도입시기 iOS 2.0 
(iOS 13에서 deprecated 되었음)
iOS 8.0 
(iOS 9 이상 필요)
성능 약 3500개의 개체를 렌더링 
90% CPU를 사용 (같은 수의 입자(particles)를 렌더링 시)
약 8500개의 개체를 렌더링
(UIWebView 보다 2배)
25% CPU를 사용 (같은 수의 입자(particles)를 렌더링 시)
로딩 시간 한 번 로드되고, 데이터는 쿠키에 저장되므로 다음 번 로딩 시간은 이전 시간에 비해 적어짐 쿠키가 저장되지 않으므로
항상 로딩 시간이 동일
실행 앱의 프로세스 내에서 실행
사용하는 메모리가 앱 사용공간의 일부로 간주 -> 할당량 초과하면 앱 자체가 운영 체제에 의해 손상.
앱의 프로세스와 분리되어 실행
웹 페이지 로딩이 더 빠르고 메모리 오버헤드가 더 적음.
쿠키 관리 웹뷰 사이의 모든 쿠키가 자동으로 공유.
NSHTTPCookieStorage로
모든 쿠키를 저장
직접 쿠키를 관리해야 함.
다른 WKWebView와 쿠키 공유가 안됨.
각각 자신만의 쿠키 저장소를 가짐.
WKProcessPool 사용

 

'iOS > Swift' 카테고리의 다른 글

TableView Dynamic Height 구현  (0) 2021.12.12
[Swift] Array, Dictionary, Set, Tuple  (0) 2021.12.12
[Swift] 메모리를 참조하는 방법 (Strong, Weak, Unowned)  (1) 2020.07.30
[Swift] Type Casting  (0) 2020.07.29
[Swift] Closure  (0) 2020.07.29