UIWebView vs WKWebView

안녕하세요. Any? 입니다. UIWebView가 deprecated된(Xcode 9 기준) 기념으로 첫 포스트를 UIWebView와 UIWebView를 대체하게 될 WKWebView의 차이점에 대해서 포스팅 하고자 합니다.

1. 도입 시기

UIWebView : iOS 2.0
WKWebView : iOS 8.0

2. FrameWork

UIWebView : UIKit
WKWebView : WebKit

3. 로컬 파일 Ajax 요청

UIWebView : 가능
WKWebView : 불가능(크로스 원본 리소스 공유 규칙을 위반함으로 file:// url 요청 허용 안함)

4. 로딩 시간

UIWebView : 한번 로드된 후 쿠키에 데이터를 쿠키에 저장함으로 이전 시간보다 단축됨
WKWebView : 쿠키에 데이터를 저장하지 않으므로 항상 동일함

5. 페이지 크기 조정 여부

UIWebView : 가능
WKWebView : 불가능

6. 렌더링

UIWebView : 3500 개체 렌더링
WKWebView : 8500 개체 렌더링
즉, WKWebView가 2배 이상의 성능

7. 프로세스

UIWebView : 프로세스 내 실행, 사용하는 메모리가 앱 사용공간(footprint)의 일부로 간주, 할당량을 초과하면 앱 자체가 운영체제에 의해
WKWebView : 프로세스 외 실행, 사용하는 메모리가 앱과 별도로 스레드됨, 할당량을 초과하면 앱을 중단하지 않고 충돌함(앱이 알림을 받고 다시 로드 처리 시도)

8. JavaScript 엔진

UIWebView : JavaScriptCore
WKWebView : Nitro
Nitro 엔진의 속도가 더 빠르다.

9. 서버 인증 문제s

UIWebView : 지원 안함
WKWebView : 지원함 -> 암호로 보호된 웹사이트의 사이트 자격 증명을 입력할 수 있다.

끝으로, WKWebView의 Delegate를 알아보고 포스팅을 마치도록 하겠습니다.

comments powered by Disqus