[Mobile] Android WebView의 문제점 및 대안

2015. 7. 3. 17:46Mobile

주의 Crosswalk 브라우저는 2017년 2월 릴리즈21을 마지막으로 개발이 중단되었습니다.

WebView(웹뷰)란 안드로이드에 내장된 브라우저 모듈로써, 네이티브 앱 제작 시 사용할 수 있으며 HTML문서를 해석하고 출력하는 기능을 합니다. (iOS에서는 UIWebView)

<!-- 안드로이드 앱 개발 시 웹뷰를 사용할 수 있다 -->
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>

WebView의 한계

WebView는 HTML5의 모든 기능을 완벽하게 실행하지 못하고, 하드웨어 가속을 사용하지 못합니다. 2D렌더링, 대용량 동영상, WebRTC, WebAudio 지원하지 않으며, CSP(Content Security Policy) 설정불가 등 일부 보안취약점도 존재합니다.

WebView는 안드로이드 버전별로 버전이 다르기에 버전 별로 파편화가 발생할 수 있습니다.

구글은 더 이상 안드로이드 4.3 이하의 웹뷰에 대한 업데이트를 지원하지 않습니다. 안드로이드 4.4 KitKat 부터는 크로미움 웹뷰를 사용하지만, 크로미웁 웹뷰는 펌웨어에 탑재되기 때문에 구글이 업데이트를 발표해도 스마트폰 제조사의 펌웨어 업데이트가 없으면 업데이트 되지 않습니다. 5.0 롤리팝부터는 펌웨어와 분리되어 웹뷰가 독립적으로 업데이트 되도록 수정되었습니다.

Crosswalk의 사용

이러한 보안이슈, 파편화, 느린성능으로부터 문제를 해결하는 방안은 오픈소스 Crosswalk runtime을 WebView 대신에 사용하는 것입니다. 이를 통해 기존 웹앱, 하이브리드앱 개발 시 접했던 이슈에 대해 한시름 덜 수 있게 되었습니다.

Crosswalk는 iOS(Version 8 이상), 안드로이드(4.0 이상), 타이젠 3.0까지 지원하므로 코르도바를 활용하여 진정한 하이브리드 앱을 제작할 수 있도록 지원합니다.