Widget Container Implementation for Qt Software Framework

No Thumbnail Available

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author

Date

2010

Major/Subject

Vuorovaikutteinen digitaalinen media

Mcode

T-111

Degree programme

Language

en

Pages

[13] + 104

Series

Abstract

Developing an application for several device platforms has traditionally been troublesome and time consuming. The differences in the low-level APl have made it difficult to share program code or oven preserve the look and feel of the user interface between platform-specific versions of the application. The technology at the centre of this Thesis, Qt software framework, tries to facilitate cross-platform software development process by enabling developers to work at a high level of abstraction using a single extensive and well-documented APl Furthermore, Qt allows producing platform-specific versions of the application from a single source tree simply by rebuilding the code. Above all, Qt framework and the bundled developer tools are open source technology and available under wide range of licensing options for a number of device platforms. Although Qt offers the previously mentioned benefits, criticism exist in relation to code bloat, i.e., the compiled binaries are usually large because using a feature from the framework might require including unneeded code. The problem can be partially avoided through dynamically linking in parts of the functionality of the Qt framework and thereby enabling memory sharing between different Qt applications. The widget container, which was developed as part of this Thesis, was built on top of features offered by the Qt software framework. The container aims to enable interaction with widgets hosted and executed by a specific widget user agent. At the core of the solution is an idea of integrating dynamic Web content offered by the agent into the user interface of the container and use the WebKit browser engine to render it. Communication between the agent and the container is organized via a well-defined RESTful interface. The application will be published as open source software, and volunteers are encouraged to participate on further development efforts.

Sovellusohjelman kehittäminen usealle laitealustalle on tyypillisesti ollut hankalaa ja aikaa vievää. Eroavaisuudet matalan tason ohjelmointirajapinnoissa ovat vaikeuttaneet sekä ohjelmakoodin jakamista että käyttöliittymän ilmeen ja tuntuman yhdenmukaisuuden säilyttämistä eri alustaversioiden välillä. Qt-sovelluskehys, joka on tämän diplomityön keskeinen teknologia, tähtää monialustaisen ohjelmistokehitysprosessin helpottamiseen mahdollistamalla työskentelyn korkealla abstraktion tasolla yhtä kattavaa ja hyvin dokumentoitua ohjelmointirajapintaa hyväksikäyttäen. Tämän lisäksi Qt mahdollistaa alustakohtaisten versioiden tuottamisen yhdestä lähdekoodipuusta yksinkertaisen koodin uudelleenkäännöksen avulla. Kaiken kukkuraksi Qt-sovelluskehys ja mukaan paketoidut kehitystyökalut ovat avoimen lähdekoodin tekniikkaa ja saatavilla monipuolisilla lisenssiehdoilla useille eri laitealustoille. Edellä mainittujen etujen ohella Qt:ta kohtaan on esitetty kritiikkiä, joka liittyy ohjelmakoodin paisumiseen. Sovelluskehyksen tarjoaman ominaisuuden käyttäminen saattaa vaatia tarpeettoman koodin kääntämistä mukaan, mikä vaikuttaa kasvattavasti tuotetun binäärin kokoon. Ongelmalta vältytään osittain käyttämällä sovelluskehyksen toimintoja dynaamisesti jaetun muistin avulla. Vimpainkonteineri, joka toteutettiin osana tätä diplomityötä, rakennettiin Qt-sovelluskehyksen toiminnallisuutta hyväksikäyttäen. Konteinerin on tarkoitus mahdollistaa interaktio vimpainten kanssa, joita isännöidään ja ajetaan määritellyssä vimpainkäyttäjäagentissa. Toteutuksen keskeisin ajatus on integroida dynaamista agentin tarjoamaa verkkosisältöä konteinerin käyttöliittymään ja mallintaa se WebKit selainmoottorin avulla. Kommunikaatio agentin ja konteinerin välillä on järjestetty tarkasti määritellyn REST-tyyppisen rajapinnan kautta. Sovellus julkaistaan avoimen lähdekoodin ohjelmistona vapaaehtoisten jatkokehittäjien saataville.

Description

Supervisor

Vuorimaa, Petri

Thesis advisor

Pohja, Mikko

Keywords

Qt framework, Qt-sovelluskehys, cross-platform programming, monialustaohjelmointi, widget container, vimpainkonteineri

Other note

Citation