앱 내부에 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 |