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
Instructions for the author
Authors
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, PetriThesis advisor
Pohja, MikkoKeywords
Qt framework, Qt-sovelluskehys, cross-platform programming, monialustaohjelmointi, widget container, vimpainkonteineri