AppUp Encapsulator – enabling HTML5 with WebKit

Untitled Document

The Intel AppUp Encapsulator is a web-based tool for packaging your web applications and integrating them with AppUp store. Our Encapsulator supports HTML5, CSS, Javascript and Ajax applications, as well as older HTML versions.

But how the Encapsulator does that? And what features are really supported? The answer for the second question you can find in this article, containing the latest improvements on Encapsulator features. For the first question, to enable and package your web applications, we need an engine that recognize your HTML5 code and renders it on a browser. The Encapsulator Q&A provides the information regarding the pieces integrating our web-based tool:

The native application wrapper integrates the Intel AppUp™ SDK for store authorization, and Qt* WebKit, which provides the HTML5 and JavaScript* engines that execute and render your web app code.

So Encapsulator uses Qt WebKit to provide a browser environment for you application, while WebKit is the engine powering HTML5 code. WebKit is an open source project providing this resource for Windows, Linux and MacOS systems. It is the engine powering many browsers well used, like Safari and Chrome – although Chrome uses its own JavaScript engine.

WebKit is a project created by Apple, originally based on an engine called KHTML from the KDE project. Apple was contributing to KHTML for many years, but there were main differences in the proposal for KHTML – aimed for KDE applications – and what Apple needed. So Apple forked KHTML and started Webkit. With time, the projects started to try to find ways to collaborate better. Some years, many patches and twists later, WebKit is now the main project for rendering HTML in KDE applications, as well as the main engine for all previously mentioned environments, and some more.

WebKit main objectives are to be an open source web based engine, using standard technologies as HTML, CSS, JavaScript and DOM – Document Object Model. The DOM is a programming model that uses objects and hierarch to represent documents, and it’s used to represent HTML documents. The main page of a website or application is a document, and each tag inside this document is a child of the main document. Tags are siblings or related of each other, for instance the <head> tag is a sibiling of a <body> tag. The <title> tag is child of the <head> tag, since it is included inside the <head> definitions. Visually speaking:

|-> document (entire html document)
    |-> <head>
         |-> <meta>
         |-> <title>
         |-> <script>
     |-> <body>
         |-> <p>
         |-> <table>
         |-> <div>
             |-> <img>
             |-> <article>
         |-> <canvas>

To render HTML5 code, WebKit has 2 important parts:

  • WebCore - a library for rendering and layout for DOM objects, for HTML and SVG.
  • JavaCore - a framework providing the implementation of a JavaScript engine.

WebKit uses WebCore and JavaCore to implement the full graphics and functionalities brought by HTML5, CSS3 and JavaScript. Being an open source project, WebKit welcomes contributions. At the documentation you can find ways to help with code or documentation, as well as keeping informed with last updates. And also keep track on our Encapsulator Feature Compatibility page for more updates in the future!

0