28.10.2014 Views

1tgD67B

1tgD67B

1tgD67B

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Essential types<br />

Controls<br />

Text display and input<br />

Pages, views and containers<br />

Animations<br />

Menus<br />

Dialogs<br />

Application covers<br />

Sailfish-sovelluksen perustoiminnot muun muassa sovellusikkunalle,<br />

sivupinolle, tunnelmien huomioimiseen ja leikepöydän käytölle.<br />

Käyttöliittymän painikkeita, valitsimia, kytkimiä yms.<br />

Tekstin esittämiseen ja syöttämiseen tarkoitetut komponentit.<br />

Sisältää komponentit sivujen esittämistä varten sekä eräitä muita käyttöliittymän<br />

rakenteita, kuten lista- ja ruudukkonäkymät.<br />

Animaatiot erilaisille käyttöliittymän tapahtumille.<br />

Alas- ja ylösvetovalikoiden komponentit sekä pikavalikkotoiminto.<br />

Valitsimet väreille, ajalle ja päivämäärälle sekä yleinen kyselysivu.<br />

Sovelluskansien käsittelyyn tarvittavat komponentit.<br />

Taulukko 2. Sailfish Silica 1.0 -kirjaston kategoriat.<br />

löytyvät kuitenkin helposti Qt:n oppaista.<br />

Kannattaa varmistaa, että käytössä on<br />

opas vähintään Qt:n versiolle 5.1, sillä<br />

internetin hakukoneet antavat osumia<br />

myös versiolle 4.8.<br />

Silica-kirjasto sisältää komponentteja<br />

ja ominaisuuksia sivupinon hallintaan,<br />

valikoiden tekemiseen, käyttöjärjestelmän<br />

tunnelmien huomioimiseen<br />

ja sovelluskannen käsittelyyn. Mukana<br />

on tietenkin myös erilaisia vipuja, painikkeita<br />

ja syötekomponentteja. Näitä<br />

tarvitsemme esimerkkisovelluksessamme.<br />

Lisäksi kirjasto tarjoaa rajapintoja<br />

Sailfish-järjestelmään, esimerkiksi leikepöydän<br />

käyttöön ja tiedostojärjestelmän<br />

standardikansioihin. Taulukkoon 2 on<br />

koottu Sailfish Silica 1.0 -kirjaston eri<br />

osa-alueet.<br />

Tämän artikkelin esimerkkisovelluksen<br />

Silica-komponentit esitellään sitä<br />

mukaa, kun ne tulevat vastaan. Silican<br />

omat komponentit mainitaan erikseen,<br />

mutta muut ovat tavallisia QML:n komponentteja.<br />

Silicaan voi tutustua myös Qt<br />

Creatorin Welcome-välilehdellä olevasta<br />

kohdasta Examples, josta voi ladata esimerkkiprojektin<br />

nimeltä ”Sailfish Silica<br />

Component Gallery”. Projektissa esitellään<br />

komponenttien käyttöä ja myös niiden<br />

ulkoasu on nähtävissä.<br />

Rope dice – kun<br />

nopat jäivät kotiin<br />

Kuva 2. Sovelluksen sivurakenne ja pääsivun<br />

sisältö.<br />

Lautapelien ystävän ja pöytäroolipelaajan<br />

vakiovarusteisiin kuuluu tietysti<br />

noppasetti. Mutta entä jos nopat pääsevät<br />

unohtumaan? Pelitapahtuma ei<br />

välttämättä mene pilalle, jos on osannut<br />

ohjelmoida puhelimeensa nopanheittosovelluksen.<br />

Älypuhelinhan on sentään<br />

kaikilla aina (?) mukana. Rakennamme<br />

yksinkertaisen mutta käytännöllisen nopanheittosovelluksen<br />

Sailfishille. Samalla<br />

sovellus esittelee Sailfish- ja QML-ohjelmoinnin<br />

perusasioita.<br />

Sovellukseen tulevat omat painikkeensa<br />

nopille 4, 6, 8, 10, 12 ja 20, koska<br />

niitä tarvitaan usein. Lisäksi käyttäjä<br />

voi syöttää yhdelle nopalle sivumäärän<br />

ja heittää sitä, koska toisinaan tarvitaan<br />

myös esimerkiksi 100-sivuista noppaa.<br />

Joskus on hyödyllistä heittää useita noppia<br />

samanaikaisesti, joten myös noppien<br />

lukumäärän tulee olla valittavissa.<br />

Sovellukseen tarvitaan pääsivu, joka<br />

avautuu ensimmäisenä ja jossa varsinaiset<br />

nopanheittotoiminnot ovat. Lisäksi<br />

luodaan infosivu, jossa kerrotaan tekijöiden<br />

nimet ja muuta tietoa sovelluksesta.<br />

Pääsivulta siirrytään infosivulle alasvetovalikon<br />

avulla. Käyttöliittymän rakenne<br />

on havainnollistettu kuvassa 2.<br />

Siirrytään pikku hiljaa koodin pariin.<br />

Emme julkaise kaikkia esimerkkisovelluksen<br />

tiedostoja lehden sivuilla vaan<br />

ainoastaan tärkeimmät osat. Koko ohjelman<br />

voi ladata Skrollin sivuilta osoitteesta<br />

http://skrolli.fi/2014.2/. Avaa projektin<br />

.pro-tiedosto Qt Creatorissa ja valitse<br />

kohdealustoiksi ”i486” ja ”armv7hl”.<br />

Näin sovellus saadaan käännettyä sekä<br />

Sailfish-emulaattorille että oikealle laitteelle.<br />

Noppasovelluksen kansioiden rakenne<br />

näkyy kuvassa 3 ja osien merkitykset<br />

on selitetty taulukossa 3. Rakenne perustuu<br />

hyvin pitkälle Sailfish-kehitysympäristön<br />

luomaan projektipohjaan, joten<br />

se edustanee aika tyypillistä Sailfishin<br />

QML-sovellusta.<br />

Lehden sivuilla olevissa ohjelmalistauksissa<br />

on eräissä kohdissa kolme<br />

pistettä (…). Merkintä tarkoittaa, että<br />

kohdasta on jätetty pois selitettävän toiminnallisuuden<br />

kannalta epäoleellista<br />

koodia. Nämä kohdat täydennetään kyllä<br />

artikkelin myöhemmissä listauksissa.<br />

Ohjelman runko<br />

Listauksessa 1 on sovelluksen pääosa,<br />

joka nivoo muut osat yhteen. Alkuriveillä<br />

on tuotu Qt Quickin peruskomponenttikirjasto<br />

ja Sailfish Silica -kirjasto. Lisäksi<br />

on tuotu qml-hakemiston alihakemistot<br />

pages ja cover. Hakemiston tuominen<br />

antaa käyttöön kaikki hakemiston qmltiedostoissa<br />

määritellyt komponentit.<br />

Sovelluksen käyttöliittymän rakennus<br />

alkaa siitä, että määritetään Application-<br />

Window-komponentti eli sovellusikkuna.<br />

harbour-ropedice.pro<br />

src-kansio<br />

harbour-ropedice.cpp<br />

qml-kansio<br />

CoverPage.qml<br />

InfoPage.qml<br />

MainPage.qml<br />

harbour-ropedice.qml<br />

rpm-kansio<br />

Qt:n projektitiedosto, joka muistuttaa Makefilea.<br />

Kansio C++-lähdekoodille.<br />

Automaattisesti luotu QML:n latauskoodi.<br />

Kansio QML-lähdekoodille.<br />

Sovelluskannen määrittelytiedosto.<br />

Infosivu, joka kertoo muun muassa sovelluksen tekijöistä.<br />

Sovelluksen pääsivu, jossa nopanheittotoiminnot ovat.<br />

QML-tiedosto, jossa asetetaan käytettävä aloitussivu ja sovelluskansi.<br />

RPM-paketin luomiseen tarvittavat tiedostot.<br />

Kuva 3. Sailfish-projektin kansiorakenne.<br />

harbour-ropedice.desktop<br />

Tiedostossa muun muassa määritellään, miten sovellus käynnistetään ja<br />

mitä kuvaketta sovellus käyttää.<br />

Taulukko 3. Sailfish-projektin kansiot, tiedostot ja niiden merkitys.<br />

42 2014.2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!