OPETUSPELIN TOTEUTUS RESPONSIIVISENA WEB-SOVELLUKSENA
|
|
- Anneli Virtanen
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 OPETUSPELIN TOTEUTUS RESPONSIIVISENA WEB-SOVELLUKSENA Ossi Korpi Opinnäytetyö Huhtikuu 2013 Mediatekniikan koulutusohjelma Tekniikan ja liikenteen ala
2 OPINNÄYTETYÖN KUVAILULEHTI Tekijä(t) KORPI, Ossi Julkaisun laji Opinnäytetyö Sivumäärä 65 Päivämäärä Julkaisun kieli suomi Työn nimi OPETUSPELIN TOTEUTUS RESPONSIIVISENA WEB-SOVELLUKSENA Verkkojulkaisulupa myönnetty ( X ) Koulutusohjelma Mediatekniikka Työn ohjaaja(t) NIEMI, Kari Toimeksiantaja(t) TTS - Työtehoseura Tiivistelmä Opinnäytetyön toimeksiantajana toimi TTS Työtehoseura, joka on valtakunnallinen koulutus-, tutkimus- ja kehittämisorganisaatio. Tavoitteena oli kehittää ravintolakeittiöön liittyvää sanastoa kuvien ja tekstin keinoin opettava internetin kautta pelattava peli. Pelin oli määrä toimia pöytäkoneiden ohella myös mobiililaitteilla, eli älypuhelimilla ja tablet-tietokoneilla. Pelin kohderyhmänä olivat ravintola-alan opiskelijat, erityisesti maahanmuuttajat. Pelin sisältö pohjautui TTS:n tuottamaan kirjalliseen opetusmateriaaliin. Peli päätettiin toteuttaa laitteistoriippumattomana web-sovelluksena responsiivista websuunnittelua hyödyntäen. Kehityksessä kiinnitettiin erityistä huomiota päivitettävyyteen ja helposti omaksuttavaan käyttöliittymään. Opinnäytetyön teoriaosassa käydään läpi web-sovelluksessa käytettyjä tekniikoita: HTML5, CSS3, JavaScript, PHP ja XML. Lisäksi käsitellään responsiivisen web-suunnittelun perusteita. Pelin toteutusta käsittelevässä osassa selostetaan pelin suunnittelua, toteutusta, testausta ja dokumentointia. Opinnäytetyön tuloksena syntyi erilaisilla laitteilla ja selaimilla toimiva opetuspeli, joka on helposti laajennettavissa ja päivitettävissä. Peliä testattiin projektin loppuvaiheessa ravintola-alan opiskelijoilla, jotka omaksuivat pelin helposti. Myös toimeksiantaja oli tyytyväinen pelissä tavoitettuun selkeään oppimisympäristöön. Lisää oppimateriaalia tullaan jatkossa saattamaan pelin muotoon tuloksena syntyneen sovelluksen runkoa hyödyntäen. Avainsanat (asiasanat) Web-sovellus, responsiivinen web-suunnittelu, HTML5 Muut tiedot
3 OPINNÄYTETYÖN KUVAILULEHTI Author(s) KORPI, Ossi Type of publication Bachelor s Thesis Pages 65 Date Language Finnish Title LEARNING GAME AS RESPONSIVE WEB APPLICATION Permission for web publication ( X ) Degree Programme Media Engineering Tutor(s) NIEMI, Kari Assigned by TTS Työtehoseura Abstract The assigner of this thesis was TTS, a Finnish research, development and training institute. The aim was to develop a learning game to teach restaurant kitchen related vocabulary with pictures and words. The game was to function with both desk top computers and mobile devices such as smart phones and tablet computers. The target group of the game were catering students, and immigrant students in particular. The contents of the game were based on study materials produced by TTS. The game was implemented as a responsive, cross-platform web application. Special attention was given to maintenance and understandable user interface. The technologies used in the web application are introduced in the theory part of the thesis. These include HTML5, CSS3, JavaScript, PHP and XML. The basics of responsive web design are also explained in this section. Designing, implementing, testing and documenting of the game are explained in the next section. As a result of this process, a playable and functioning game was created and it can be easily extended and updated. Keywords Web application, responsive web design, HTML5 Miscellaneous
4 1 SISÄLTÖ SANASTO JA TERMIT OPINNÄYTETYÖN LÄHTÖKOHDAT Toimeksiantaja Tavoitteet MÄÄRITTELY Yleistä Tekniset ratkaisut Pelin sisältö Pelin säännöt WEB-SOVELLUS Yleistä Web-sovellus vs. natiivisovellus HTML CSS Web-fontit JavaScript jquery Modernizr XML PHP AJAX Responsiivisuus Yleistä Gridi-pohjainen layout Mediakyselyt (media queries) RAVINTOLASANASTON OPETUSPELIN TOTEUTUS Layoutin suunnittelu HTML-sivun toteutus Sivun kokoaminen Responsiivisuus Web-sovelluksen muokkaaminen natiivisovellusta muistuttavaksi Äänet... 39
5 2 4.5 Toiminnallisuuden lisääminen Yleistä Kapselointi Tietojen lataus Kuvien esilataus Kysymysten arpominen Infotekstin näyttäminen Ajan nopeutuminen Refaktorointi Testaus Yleistä Vanhat selainversiot Debuggaus Yksikkötestaus Palautteen kerääminen toimeksiantajataholta Käyttäjätestaus Tietoturva JavaScript-koodin dokumentointi Jatkokehitys TULOKSET JA POHDINTA LÄHTEET LIITTEET Liite 1. Käyttäjätestauslomake KUVIOT KUVIO 1. Latausruudun rautalankamalli KUVIO 2. Pelin valikon rautalankamalli KUVIO 3. Pistetaulun rautalankamalli KUVIO 4. Pelinäytön rautalankamalli selityksineen KUVIO 5. Rautalankamalli pelistä selaimella... 14
6 3 KUVIO 6. Rautalankamallit pelin kysymystyypeistä älypuhelimella KUVIO 7. Sivusto jäsenneltynä HTML4:lle tyypilliseen tapaan (vasemmalla) HTML5:n uusilla elementeillä (oikealla) KUVIO 8. Modernizrin lisäämät luokat Opera selaimella katsottaessa KUVIO 9. Pelin pistetilastot XML-muodossa KUVIO Grid Systemin 16-palstainen Photoshop sivupohja KUVIO 11. Layoutin suunnittelua gridiä hyödyntäen KUVIO 12. Pelin alkuvalikko KUVIO 13. Pelin logo KUVIO 14. Pisteet Chromessa (vasemmalla) ja Internet Explorerissa (oikealla) KUVIO 15. Peli vaakasuunnassa olevalla Android-puhelimella KUVIO 16. IPad-käyttäjiä kehotetaan asentamaan peli Kotivalikkoon KUVIO 17. Pelin ikoni (vasemmalla ylhäällä) ipadin Koti-valikossa. Automaattinen kiiltoefekti näkyy esimerkiksi oikean ylälaidan ikonissa KUVIO 18. Latausruutu KUVIO 19. Infoteksti Android-puhelimella KUVIO 20. Pelaaja saa kirjoittaa nimensä pistelistalle KUVIO 21. CatLog-sovellus Andoid-puhelimella KUVIO 22. QUnit-testin tulos KUVIO 23. Epäonnistunut Qunit-testi KUVIO 24. Testaajien vastaukset monivalintakysymykseen, jossa kysyttiin pelin vaikeustasoa KUVIO 25. JsDoc Toolkitin luoma dokumentaatio HTML-sivuna... 58
7 4 SANASTO JA TERMIT Android Googlen kehittämä käyttöjärjestelmä mobiililaitteille. Client-server -sovellus Sovellus, joka koostuu kahdesta osasta: asiakas (client) ja palvelin (server), jotka vaihtavat verkon välityksellä dataa keskenään. CSS CSS (Cascading Style Sheets) on kieli, joka kuvaa web-sivujen ulkoasua, kuten värejä ja fontteja. Sen avulla voidaan erottaa web-sivujen rakenne tyylistä. HTML HTML (Hypertext Markup Language) on kuvauskieli, jolla määritetään web-sivujen sisältö ja rakenne. HTTP Hypertext Transfer Protocol on World Wide Webin käyttämä siirtoprotokolla. ios Applen iphone-, ipad-, ipod Touch-, ja Apple TV laitteiden käyttöjärjestelmä. RIA Rich Internet Application eli rikas internetsovellus on internetissä toimiva sovellus, joka muistuttaa työpöytäsovellusta. W3C World Wide Web Consortium on kansainvälinen organisaatio, joka kehittää WWW:n standardeja.
8 5 WHATWG The Web Hypertext Application Technology Working Group on yhteisö, joka kehittää HTML:ää ja web-sovelluksiin tarvittavia rajapintoja.
9 6 1 OPINNÄYTETYÖN LÄHTÖKOHDAT 1.1 Toimeksiantaja Opinnäytetyön toimeksiantajana toimi TTS - Työtehoseura. TTS on Suomessa toimiva koulutus-, tutkimus- ja kehittämisorganisaatio, joka työllistää yli 200 työntekijää. Sen liikevaihto oli vuonna 2011 noin 20 miljoonaa euroa. TTS järjestää aikuiskoulutusta, nuorten ammatillista koulutusta sekä ammatillista työvalmennusta useille eri aloille. (TTS 2012.) TTS:n toiminta tähtää työn tehokkuuden parantamiseen. Opinnäytetyön toimeksianto liittyi ravintola-alan koulutukseen. TTS tarvitsi tuottamansa kirjallisen oppimateriaalin tueksi pelin, joka tukisi opiskelijoiden oppimista viihteellisessä muodossa. Pelien käyttö opetuksessa on vielä toistaiseksi ollut verrattain vähäistä, mutta opetuspelit saattavat hyvinkin olla merkittävä toimiala tulevaisuudessa. Opetuspeleistä on hyötyä opetuksessa, sillä niiden käyttö voi esimerkiksi parantaa opiskelijoiden opiskelumotivaatiota ja oppimistuloksia. (Kangasniemi 2012.) 1.2 Tavoitteet Opinnäytetyön tavoitteena oli kehittää ravintolasanastoa opettava internet- / mobiilipeli. Pelin tekeminen oli osa TTS:n Tehotermistö-hanketta, jossa tehtiin myös selkokielisiä kuvasanakirjoja hotelli- ja ravintola-alalle. Tarkoituksena oli tehdä opetuspeli, joka perustuu hankkeen ensimmäisen kirjan, Ravintola-alan ammattisanastoa osa 1: Keittiötermejä, materiaaliin. Vaatimuksena oli, että peli on pelattavissa internetissä ja toimii mobiililaitteilla, eli käytännössä erilaisilla älypuhelimilla ja tablet-tietokoneilla. Pelin avulla opiskelijoiden
10 7 piti pystyä testaamaan ja parantamaan kirjasta oppimaansa ja saada siitä palautetta. Termejä opetetaan pelissä pääsääntöisesti valokuvien avulla. Kohderyhmänä olivat erityisesti maahanmuuttajaopiskelijat, joiden äidinkieli on muu kuin suomi. Peliä laajennetaan myöhemmin kattamaan myös toisen kirjan sisältö, tai tehdään uusi vastaava peli toisen kirjan sisällöistä. Näin ollen kehityksessä kiinnitettiin erityistä huomiota pelin päivitettävyyteen. Opinnäytetyössä päästiin perehtymään uudenaikaisiin tapoihin toteuttaa interaktiivista web-sisältöä. Responsiivinen web-suunnittelu ja HTML5, joita hyödynnettiin opetuspelin toteutuksessa, mahdollistavat laadukkaiden interaktiivisten RIAtoteutusten tekemisen. Näitä voidaan käyttää erilaisilla laitteilla erilaisissa paikoissa ja tilanteissa, niin koulu- kuin kotioloissa. 2 MÄÄRITTELY 2.1 Yleistä Pelin suunnittelu lähti liikkeelle, kun kirja Ravintola-alan ammattisanastoa osa 1: Keittiötermejä alkoi olla valmis ja sen sanaston opettamiseksi piti tehdä peli. Koska peli perustui selkokieliseen kirjaan, oli sen tärkeää olla myös helposti ymmärrettävissä, vaikka suomen kieli tuottaisikin ongelmia. Kovin tarkkoja vaatimuksia pelin sisällöstä ei ollut, vaan toimeksiantaja antoi melko vapaat kädet pelin toiminnan ja ulkoasun ideointiin. Ehdotuksiin suhtauduttiin myönteisesti ja niiden pohjalta ideointia jatkettiin TTS:n Tehotermistö-projektin ohjausryhmän kesken. Vaikka opetuspeli perustui kirjaan, tarkoituksena oli tuottaa nimenomaan peli, eikä sähköinen versio kirjasta. Ulkoasusta pyrittiin suunnittelemaan kirjan virallisesta tyylistä poikkeava, selvästi värikkäämpi ja pelimäisempi. Pelin aiheen ja materiaalin
11 8 huomioon ottaen tuntui järkevältä tehdä pelistä tietovisatyylinen. Pelaajalle esitetään erilaisia kysymyksiä, joihin on aina neljä vastausvaihtoehtoa. Pelaajia motivoidaan pisteillä, joita kertyy vastaamalla pelin kysymyksiin rajoitetussa ajassa, sekä luomalla pelaajien välille kilpailua pistesijoista. Lisäksi haluttiin erikseen niin sanottu harjoittelumoodi, jossa pelaaja voi rauhassa ilman aikarajaa vastata kysymyksiin ja saada lisätietoa pelin termeistä. Lisätiedot pohjautuvat kirjan teksteihin. 2.2 Tekniset ratkaisut Koska sovelluksen oli toimittava kaikenlaisilla päätelaitteilla ja internetin kautta, olisi yksi vaihtoehto ollut tehdä internetselaimella pelattava versio pöytäkoneille ja kannettaville tietokoneilla, sekä erikseen omat sovellukset tableteille ja älypuhelimille. Tällöin mobiilisovellukset olisi voitu laittaa ladattaviksi sovelluskauppoihin, kuten Applen App Storeen ja Googlen Play-kauppaan. Tällainen ratkaisu olisi kuitenkin vaatinut usean eri version tekemistä samasta pelistä, mikä taas olisi vaatinut liikaa resursseja. Lisäksi olisi pitänyt omaksua eri alustojen kehitystyökalut ja ohjelmointikielet tai käyttää PhoneGapia, joka mahdollistaa monelle alustalle käännettävien mobiilisovellusten tekemisen JavaScriptiä, HTML:ää ja CSS:ää käyttäen. Pelistä päätettiin kuitenkin tehdä vain yksi versio, responsiivinen web-sovellus, joka toimii eri päätelaitteiden selaimilla. Suunniteltu, visuaalisesti suhteellisen yksinkertainen peli sopi hyvin näin toteutettavaksi. Yksi web-sovelluksen merkittävimmistä eduista on, että ylläpito ja muutosten tekeminen on huomattavasti helpompaa, kun ne täytyy tehdä vain yhteen versioon. Web-sovellusten kohdalla ei myöskään tarvitse huomioida eri sovelluskauppojen toisistaan poikkeavia käytäntöjä. Esimerkiksi sovelluksen hyväksytyksi tuleminen Applen App Storeen ei ole mikään itsestäänselvyys. Ennen kuin sovellustaan voi edes tarjota App Storeen, pitää rekisteröityä maksulliseen ios Deveper ohjelmaan. Lopullinen ohjelmakoodi olisi pakko kääntää Mactietokoneella, jota ei ollut käytettävissä. Pelin toteuttaminen web-sovelluksena oli nopein, halvin ja helpoiten ylläpidettävä ratkaisu.
12 9 Kaikilla mahdollisilla mobiililaitteilla sovellus ei voi toimia, joten testausta suoritettiin ennen kaikkea uudehkoilla, parin vuoden sisällä julkaistuilla, Android- ja ios-laitteilla. Kyseiset käyttöjärjestelmät kattavat maailmanlaajuisesti noin 90 prosenttia kaikista älypuhelimista. IDC:n marraskuussa 2012 julkaiseman tutkimuksen mukaan Androidilla on 75 prosentin markkinaosuus ja ios:llä 14,9 prosenttia (IDC 2012a). Lisäksi kyseisiä laitteita oli parhaiten saatavilla. Jotta peli olisi mahdollisimman monen pelattavissa, kaikkien käytetyimpien selainten (IE, Chrome, Firefox, Safari ja Opera, sekä Androidin selain) oli oltava tuettuina. Pelin toteutuksessa päädyttiin HTML5-pohjaiseen ratkaisuun esimerkiksi Flashin tai Silverlightin sijaan, sillä käyttäjiä ei haluttu rajata niihin, joilla nämä lisäosat on asennettua. Flash ei myöskään ole virallisesti tuettu ios-laitteissa, eikä Flash enää tue Androidia versiosta 4.1 alkaen. Peli sisältää pääosin samat tekstit ja kuvat kuin kirja, johon se perustuu. Pelin taustalla olevat tiedot eli ravintolatermit, niiden selitykset sekä kuvien tiedostonimet on talletettu XML-tiedoston, josta ne luetaan sovelluksen käynnistyessä. Toinen vaihtoehto tietojen tallennukseen olisi ollut tietokanta, kuten MySQL. XML-tiedoston rakenne on kuitenkin helpommin ymmärrettävissä tietotekniikkaan perehtymättömälle henkilölle. Tämä helpottaa päivitettävyyttä. XML:ää on myös helpompi muokata ilman erillistä päivityskäyttöliittymää. Tietokanta olisi käytännöllisempi ratkaisu, mikäli dataa pitäisi tallentaa suuria määriä. Pelin tiedot sisältävä XML-tiedosto vie kuitenkin vain 22 kilotavua, joten se latautuu nopeasti, vaikka lisäsisältöä tulisi tulevaisuudessa monikertaisesti. XML-tiedoston rakenne on seuraavanlainen: <?xml version="1.0" encoding="utf-8"?> <termit> <kategoria id="esineet"> <termi> <nimi>elektroninen vaaka</nimi>
13 10 <kuva>9_vaaka.jpg</kuva> <selitys>elektroninen vaaka on </selitys> <verbi>punnita = mitata jonkin paino</verbi> </termi> <termi> </termi> </kategoria> </termit> 2.3 Pelin sisältö Pelin alussa näytetään latausruutu. Latausviiva kuvaa latauksen edistymistä (ks. kuvio 1). Näin käyttäjä saa palautetta siitä, mitä taustalla tapahtuu. KUVIO 1. Latausruudun rautalankamalli Kun pelin tiedot ja kuvat on ladattu, siirrytään alkuvalikkoon (ks. kuvio 2).
14 11 KUVIO 2. Pelin valikon rautalankamalli Harjoittele ja Pelaa aikaa vastaan -napit vievät pelin eri moodeihin. Pistetaulussa (ks. kuvio 3) näkyy kymmenen parasta pelaajaa.
15 12 KUVIO 3. Pistetaulun rautalankamalli Ohje sisältää lyhyet tekstimuotoiset ohjeet pelaamiseen. Tekijät-sivulle on listattu pelin tekijät, kuten valokuvaaja, tekstien kirjoittajat ja pelin toteuttaja. Pelin näkymässä (ks. kuvio 4) on pyritty mahdollisimman selkeään ja yksinkertaiseen ilmaisuun. Ruudun ylälaidassa on palkki, jossa näkyy pelaajan senhetkinen pistetilanne, jäljellä oleva aika (kuvassa vihreällä) ja jäljellä olevat elämät jotka kuvaavat montako kertaa voi voi vielä vastata väärin. Menetetty elämä on kuvassa harmaalla, jäljellä olevat sinisellä. Yläpalkin alapuolella on yksi kolmesta kysymystyypistä vaihtoehtoineen. Esimerkissä on kuva ja neljä sanavaihtoehtoa, joista pelaajan pitää valita mitä kuva esittää. Alhaalla vasemmalla on nappi, josta pääsee pois pelistä ja takaisin alkuvalikkoon.
16 13 KUVIO 4. Pelinäytön rautalankamalli selityksineen Peli skaalautuu automaattisesti erikokoisille näytöille sopivaksi. Internetselaimen ikkunasta peli vie maksimissaan 1024 x 768 pikselin kokoisen alueen (ks. kuvio 5). Älypuhelimilla peli täyttää koko näytön.
17 14 KUVIO 5. Rautalankamalli pelistä selaimella 2.4 Pelin säännöt Pelaa aikaa vastaan -moodissa jokaiseen kysymykseen vastaamiseen on varattu tietty aika. Ajan kulumista ilmaisee ruudun ylälaidassa keskellä oleva palkki, joka vähenee ajan kulumisen myötä. Mikäli aika loppuu ennen kuin pelaaja ehtii löytää oikeaa vastausta, hän menettää elämän. Aika nopeutuu aina neljän kysymyksen välein. Lopulta aika loppuu vääjäämättä kesken. Peliä ei siis voi päästä läpi. Tällöin ei ole myöskään mitään maksimipistemäärää, vaan aina on teoriassa mahdollisuus saada paremmat pisteet. Tämä lisää motivaatiota kilpailla paremmista pisteistä. Pisteitä saa ainoastaan Pelaa aikaa vastaan -moodissa. Oikeasta vastauksesta saa aina pistettä sen mukaan kuinka nopeasti vastaa. Eli mikäli aikaa on vain vähän jäljellä saa 10 pistettä, jos sitä on jäljellä noin puolet saa 15 pistettä, ja niin edelleen.
18 Aikamoodin pelin loputtua siirrytään pistetauluun. Mikäli pelaaja pääsi kymmen parhaan joukkoon pisteillään, saa hän kirjoittaa nimensä tauluun. 15 Harjoittelumoodissa aika ei kulu, eikä pisteitä lasketa. Sen sijaan pelaajalle näytään, kuinka moneen kysymykseen hän on vastannut oikein ensimmäisellä yrittämällä. Pistelistalle ei ole mahdollista päästä harjoittelumoodissa. Termeistä saa tekstimuotoista lisätietoa, kun oikea vastaus on annettu. Harjoituspelin loputtua pelaaja palautetaan aloitusvalikkoon. Kummassakin pelimoodissa saa vastata kolme kertaa väärin. Väärin vastattuaan menettää elämän. Pelaajan pitää yrittää vastata niin kauan, että oikea vastaus löytyy, vaikka olisi vastannut jo kolmesti väärin tai aika olisi loppunut. Peli päättyy vasta tämän jälkeen. Yhdessä kysymyksessä voi menettää vain yhden elämän, vaikka vastaisi useammin väärin. Pelissä on kolmenlaisia tehtäviä (ks. kuvio 6). Kuvasta sanaksi -tehtävissä annetaan yksi kuva ja pelaajan pitää valita neljästä vaihtoehdosta sitä vastaava substantiivi. Sanasta kuvaksi -tehtävissä on toisinpäin, eli pelaajalle näytetään substantiivi ja neljä kuvavaihtoehtoa, joista pelaajan pitää valita oikea. Verbin selitys -kysymyksissä annetaan yksi verbi, esimerkiksi punnita, ja neljä sanallista selitysvaihtoehtoa. Oikea vastaus olisi: mitata jonkin paino.
19 16 KUVIO 6. Rautalankamallit pelin kysymystyypeistä älypuhelimella 3 WEB-SOVELLUS 3.1 Yleistä Shklarin ja Rosenin (2009, 4) mukaan web-sovellus (web application) on client-server -sovellus, joka käyttää web-selainta sen client-ohjelmana. Client-puolen (kutsutaan myös nimellä front end) toteutus voidaan hoitaa esimerkiksi Javalla, Silverlightilla, Flashilla tai JavaScript-, HTML- ja CSS-tekniikoiden yhdistelmällä. Palvelinpuolen (eli back endin) ohjelmointiin käytetään mm. PHP:tä tai Pythonia. Ero web-sovelluksen ja tavallisen web-sivun välillä ei ole aina selkeä, mutta yleisesti voisi sanoa, että websovellus on interaktiivisempi kuin web-sivu. AJAXin läpimurto ja sittemmin HTML5:n ja CSS3:n tuomat uudet ominaisuudet ovat parantaneet mahdollisuuksia tehdä näyttäviä web-sovelluksia, jotka eivät vaadi erikseen asennettavia lisäosia toimiakseen, toisin kuin esimerkiksi Java-sovelmat (Java
20 17 Applet) tai Flash-sovellukset. HTML:llä, CSS:llä ja JavaScriptillä toteutetut sovellukset ovat myös hyvin tuettuja eri valmistajien mobiililaitteissa. Seuraavaksi keskitytään erityisesti näiden tekniikoiden kuvaamiseen, sillä ne ovat oleellisessa osassa opinnäytetyönä tehdyssä sovelluksessa. 3.2 Web-sovellus vs. natiivisovellus Natiivisovellus (native application) on tietylle laitteelle tai käyttöjärjestelmälle kehitetty sovellus. Esimerkiksi Adobe Photoshopista ja Microsoft Officesta on omat versionsa Windowsille ja Macille. Samoin mobiilisovelluksista ovat erilliset versiot eri käyttöjärjestelmille, kuten Androidille ja ios:lle. Tyypillisesti kehitys eri alustoille pitää tehdä eri ohjelmointikielillä ja kehitystyökaluilla. Web-sovellukset suoritetaan internetin kautta, eivätkä ne ole laitteisto- tai käyttöjärjestelmäriippuvaisia. Näin ollen sama sovellus toimii erilaisilla alustoilla. Laitteilla on toki erilaisia rajoitteita ja ominaisuuksia, jotka on otettava kehityksessä huomioon. Web-sovelluksen ulkoasu on samanlainen käyttöjärjestelmästä riippumatta, minkä voi nähdä hyvänä tai huonona asiana. Natiivisovellukset voivat puolestaan käyttää käyttöjärjestelmän omia käyttöliittymäkomponentteja, mikä saa sovelluksen näyttämään yhdenmukaiselta muiden saman alustan sovellusten kanssa. Natiivisovellukset pääsevät myös web-sovellusta paremmin käsiksi laitteen ominaisuuksiin, kuten esimerkiksi älypuhelimen kameraan. HTML5 mahdollistaa web-sovelluksen pääsyn muutamiin mobiililaitteiden ominaisuuksiin kuten paikannukseen (geolocation) ja puhelimen suunnan tunnistukseen (pysty vai vaaka). (Mudge 2012.) Tulevaisuudessa HTML5:n mahdollisuudet hyödyntää mobiililaitteita luultavasti lisääntyvät. Web-sovellusten suunnittelussa täytyy ottaa huomioon, että niiden kuva-ala on usein rajoitetumpi kuin natiivisovelluksissa. Tämä johtuu siitä, että niitä käytetään selaimella, joka itsessään vie osan näytöstä. IOS-laitteissa on kuitenkin mahdollista asentaa sovellus kotinäytölle, minkä jälkeen sitä voi käyttää natiivisovelluksen ta-
21 18 paan kokonäyttötilassa (Seidelin 2012). Web-sovellusta käyttävillä on myös aina käytössään sovelluksen uusin palvelimelle ladattu versio, kun natiivisovellukseen pitää erikseen ladata päivitykset. Mobiililaitteiden käyttäjät etsivät ja ostavat sovelluksia tyypillisesti sovelluskaupoista, kuten Applen AppStoresta ja Googlen Play-kaupasta. Maksaminen onnistuu parilla napin painalluksella, jolloin kynnys ohjelmasta maksamiseen on pieni. Rahan veloittaminen web-sovelluksesta on mutkikkaampaa. Vaihtoehtoja ovat muun muassa maksullinen rekisteröiminen käyttäjille ja mainostilan myyminen sovelluksessa. Ei voida sanoa, että natiivisovellus olisi parempi kuin web-sovellus tai toisinpäin. Kummallakin ratkaisulla on omat vahvuutensa ja heikkoutensa. Pitää miettiä tapauskohtaisesti, kumpi on tarkoituksenmukaisempi. 3.3 HTML5 HTML5 on HTML:n uusin versio, joka on vielä luonnosvaiheessa. World Wide Web Consortium aikoo saada HTML:n version 5.0 statuksen suositelluksi (recommendation) vuonna 2014 (W3C 2012). W3C:n ohella myös WHATWG kehittää HTML5:tä tahollaan. Näiden organisaatioiden standardien lisäksi termiä HTML5 käytetään toisinaan myös kuvaamaan yleisesti uusia jännittäviä web-teknologioita, mukaan lukien CSS3 (Allsop 2012, 3). HTML5:ssä on uusia semanttisia elementtejä, joilla kuvataan sivun rakennetta aiempaa selkeämmin. Edellisissä HTML:n versioissa näiden sijaan on käytetty divelementtejä (ks. kuvio 7). Uusia elementtejä ovat mm. header, footer, section, article ja nav. Vastaavasti joistain CSS:n myötä turhiksi käyneistä elementeistä kuten font, center ja big, on luovuttu.
22 19 KUVIO 7. Sivusto jäsenneltynä HTML4:lle tyypilliseen tapaan (vasemmalla) HTML5:n uusilla elementeillä (oikealla) Monia asioita on yksinkertaistettu. Esimerkiksi HTML 4.01 Strict -dokumenttityyppi ilmaistiin näin: <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN > Kun taas HTML5:ssä tarvitaan vain: <!DOCTYPE HTML> Myös skriptien ja CSS-tiedostojen linkittäminen sujuu vähemmällä koodilla. Yksi merkittävimmistä uudistuksista on canvas-elementti. Siihen voi piirtää dynaamisesti JavaScriptin avulla grafiikkaa, kuten viivoja, muotoja, liukuvärejä, tekstiä, valmiita kuvia ja niin edelleen. Sillä voi myös manipuloida kuvaa pikselitasolla. Kun muoto on piirretty, on se sen jälkeen pikseli-informaatiota. Canvas mahdollistaa animaatioiden ja visuaalisesti näyttävien pelien tekemisen ilman selaimen lisäosia (vrt. Flash).
23 20 HTML5 tuo uusia lomake-elementtejä kuten päivämäärän valitsimen. Se myös mahdollistaa yksinkertaisen lomakekenttien validoinnin, joka on pitänyt aiemmin hoitaa JavaScriptillä. Esimerkiksi input-kentän tyypiksi (type) voi määrittää , jolloin ainoastaan sähköpostisoite kelpaa. Vaikka HTML5 ei (vielä) pääse käsiksi natiivisovellusten tapaan moniin laitteiden ominaisuuksiin, kuten kameraan, on paikannus (geolocation) jo nyt mahdollista. Tätä tukevat kaikki modernit selaimet. Mikäli käyttäjällä on GPS päällä, käytetään sen tarjoamaa informaatiota. Muussa tapauksessa sijainti määritellään vähemmän tarkasti langattoman verkon tai IP-osoitteen perusteella. Tietoturvasyistä käyttäjän täytyy hyväksyä paikannus. HTML5 tukee natiivisti audio- ja videotoistoa. Eri selaimet eivät tosin hyväksy samoja videoformaatteja, minkä takia on syytä tarjota useita vaihtoehtoja, kuten OGG ja MP4. HTML5 ei ainakaan toistaiseksi tue DRM (Digital Rights Management) suojausta mediatiedostoissa, joten monet yritykset saattavat tästä syystä valita mieluummin esim. Flashin tai Silverlightin (Wisniewski 2011, 55). Uutta on myös offline storage, joka mahdollistaa useiden megatavujen tallentamisen käyttäjän koneelle. Aiemmin oli mahdollista tallentaa vain muutamia kilotavuja evästeiden (cookies) muodossa. Offline storagen tallennustila riippuu käytettävästä selaimesta, mutta yleensä se on 5Mt (Dev.Opera 2012). 3.4 CSS3 CSS3 on CSS:n uusin standardi (W3Schools 2012). Aiemmista CSS:n versioista poiketen CSS3:n spesifikaatio koostuu useista erillisistä dokumenteista, joita kutsutaan moduuleiksi. Kaikki tunnetuimmat selaimet tukevat monia CSS3:n ominaisuuksia, tosin vaihtelevasti. Monilla selaimilla uusien CSS3-efektien näyttäminen ei ole vielä valmiina ja ominaisuuksia täytyy käyttää CSS-koodissa etuliitteen kanssa. Jotta esi-
24 merkiksi elementtien kääntämiseen käytettävä transform-ominaisuus toimisi kaikilla selaimilla, joudutaan niille määrittelemään sama asia erikseen etuliitteiden kanssa: 21 div { transform: rotate(25deg); -ms-transform: rotate(25deg); /* IE 9 */ -moz-transform: rotate(25deg); /* Firefox */ -webkit-transform: rotate(25deg); /* Safari ja Chrome */ -o-transform: rotate(25deg); /* Opera */ } Muita CSS3:n ominaisuuksia ovat mm. kulmien pyöristys (border-radius), varjostukset (box-shadow) ja liukuvärit (gradient). CSS3 mahdollistaa myös animaatioita ja omien fonttien liittämisen avulla. 3.5 Web-fontit Aiemmin oli mahdollista käyttää web-sivuilla vain fontteja, jotka oli asennettu käyttäjän koneelle. Vain muutamat fontit olivat sellaisia, joiden saattoi olettaa olevan asennettuna kaikilla. Näitä kutsuttiin nimellä web-safe. Yleensä määriteltiin muutamia vaihtoehtoja CSS:n font-familyn avulla. Halutunlaista fonttia saattoi kuitenkin käyttää laittamalla esimerkiksi otsikko web-sivuille kuvana. Tämä ei kuitenkaan ole pitkällä tähtäimellä kovin käytännöllinen vaihtoehto. Tarjolla oli myös erilaisia JavaScript-ratkaisuja kuten Cufón. Nykyään mahdollistaa omien fonttien liittämisen sivuille. Eri selaimet kuitenkin tukevat erilaisia fonttityyppejä. Liittämällä mukaan EOT-, SVG-, TTF- ja WOFF-tyyppiset fontit on selainyhteensopivuus jo melko hyvä. EOT (Embedded OpenType) on Microsoftin kehittämä fonttityyppi, joka toimii ainoastaan Internet Explorer -selaimissa. SVG (Scalable Vector Graphics) fontit ovat puolestaan vektorigrafiikkamuodoista koostuvia fontteja. SVG on ainoa web-fonttityyppi, jota ios:n Safari-selain tuki ennen versiota 4.2. TTF eli TrueType fontti on selainten
25 22 melko laajalti tukema fontti, jota on käytetty yleisesti tietokoneissa 1990-luvun alusta asti. Nykyaikaisempi vaihtoehto on WOFF (Web Open Font Format), W3C:n kehittämä fonttiformaatti, joka on nykyään hyvin tuettu Androidin selainta ja Opera Miniä lukuun ottamatta. (Can I Use 2012.) 3.6 JavaScript JavaScript on oliosuuntautunut (object-oriented) ja heikosti tyypitetty skriptikieli. Skriptikieli tarkoittaa, ettei koodia käännetä konekieliseksi ennen suorittamista kuten esimerkiksi C-ohjelmointikieltä. Yleensä JavaScript-koodin suorittaa web-selaimen JavaScript-moottori (JavaScript engine). JavaScriptiä käytetään tavallisimmin webselaimessa, mutta nykyään sitä voi sisällyttää myös PDF-tiedostoihin ja käyttää työpöytä-widgeteissä. JavaScriptiä käytetään lisäämään dynaamisuutta web-sivuille, jolloin sivu reagoi käyttäjän toimintaan luvulla ja 2000-luvun alussa JavaScriptin parhaimpia käyttökohteita oli lomakkeiden validointi. AJAXin tulo vuonna 2005 lisäsi JavaScriptin käyttötapoja mahdollistaen tietojen vaihdon palvelimen kanssa ilman sivun uudelleen lataamista. (Ullman 2012, 4-8.) Käytännössä kaikki käytetyimmät selaimet tukevat JavaScriptiä, mutta noin 1-3 prosentilla käyttäjistä ei ole JavaScriptiä käytössä (Ullman 2012, 40). Tämä voi johtua siitä, että he tai heidän työnantajansa ovat kytkeneet JavaScriptin pois päältä esimerkiksi turvallisuussyistä. JavaScript-koodi on mahdollista upottaa HTML-dokumenttiin script-tagien sisään tai luoda sitä varten erillinen.js-päätteinen tiedosto ja linkittää se HTML-dokumenttiin. Jälkimmäinen on järkevää varsinkin laajemmissa toteutuksissa.
26 jquery JQuery on vuonna 2006 julkaistu JavaScript-kirjasto. Ensimmäinen versio julkaistiin vuonna 2006, ja sittemmin se on noussut maailman käytetyimmäksi JavaScriptkirjastoksi (W3Techs 2012). JQuery yksinkertaistaa JavaScriptin syntaksia ja tarjoaa funktioita usein tehtäviin toimintoihin, kuten elementtien näyttämiseen, piilottamiseen ja CSS-tyylin muuttamiseen. DOM (Document Object Model) -elementtien valitsemisessa käytetään CSS:tä tuttuja valitsimia (selectors). Käytettävissä on myös joitain JQueryn omia valitsimia. JQuery lyhentää kirjoitettavan JavaScript-koodin määrää ja lisää sen luettavuutta, jolloin myös kehitys nopeutuu (Mazkan 2011, 35). JQuery on ilmainen ja MIT-lisenssin alainen. JQuery koostuu yhdestä JavaScript-tiedostosta, jonka voi ladata tai linkittää sen kotisivuilta ( Tarjolla on tiivistetyssä muodossa oleva tuotantoversio ja ihmisen luettavassa muodossa oleva kehitysversio. JQuery otetaan käyttöön linkittämällä sen tiedosto HTML-dokumenttiin. Tämän jälkeen sen funktioita voi käyttä jquery-funktiolla tai sen $-aliaksella. Alla on esimerkki siitä, miten jquery yksinkertaistaa asioita. Kummassakin koodissa tehdään sama asia, eli piilotetaan elementti, jonka id on laatikko, kun sitä klikataan. Normaalisti JavaScriptillä: document.getelementbyid( laatikko ).onclick=function () { this.style.display = none ; } jqueryllä: $( #laatikko ).click(function(){ this.hide(); });
27 Modernizr Eri selaimet tukevat vaihtelevasti uusia HTML5- ja CSS3-ominaisuuksia, mikä asettaa haasteita web-suunnittelulle. Yksi vaihtoehto näiden haasteiden ratkaisemiseen on Modernizr. Modernizr on JavaScript-kirjasto, joka auttaa tunnistamaan mitä HTML5:n ja CSS3:n ominaisuuksia käyttäjän selain tukee. Se koostuu yhdestä JavaScripttiedostosta, jonka voi ladata Modernizrin kotisivuilta ( Tarjolla on kehitysversio sekä pienempikokoinen tuotantoversio, jonka voi räätälöidä testaamaan vain haluttuja ominaisuuksia. Modernizr on myös mukana suositussa HTML5 Boilerplate -templatessa. Modernizr lisää automaattisesti sivun html-elementille luokkia, jotka kertovat mitkä eri ominaisuudet kyseisessä selaimessa ovat tuettuja ja mitkä eivät (ks. kuvio 8). KUVIO 8. Modernizrin lisäämät luokat Opera selaimella katsottaessa Näitä Modernizrin lisäämiä luokkia voidaan hyödyntää CSS:ssä. Alla olevassa esimerkissä asetetaan div-elementille läpinäkyvä taustaväri RGBA-arvoilla, mikäli käyttäjän selain tukee niitä. Muussa tapauksessa asetetaan läpinäkymätön tausta perinteisellä tavalla..rgba div { background: rgba(24, 110, 91, 0.6); }
28 25.no-rgba div { background: #186e5b; } Modernizriä voidaan hyödyntää vastaavasti myös JavaScriptissä: if(modernizr.rgba) { // tee jotain jos RGBa-värit on tuettu } else { // tee jotain jos RGBa-värejä ei ole tuettu } 3.9 XML Opinnäytetyösovelluksessa XML:ää käytetään pelin tietojen ja pisteiden tallennukseen (ks. kuvio 9). XML eli Extensible Markup Language on merkintäkieli, joka on suunniteltu datan tallentamiseen sekä ihmisen että koneen helposti luettavassa muodossa. XML muistuttaa HTML:ää, mutta sen tagit eivät ole ennalta määrättyjä, eikä sitä ole tarkoitettu tiedon näyttämiseen. (W3Schools 2013.) Useat tiedostoformaatit kuten SVG pohjautuvat XML:ään. KUVIO 9. Pelin pistetilastot XML-muodossa
29 PHP PHP eli PHP: Hypertext Preprocessor (alun perin Personal Home Page) on vuonna 1995 julkaistu skriptikieli, jota kehittää PHP Group. Se on JavaScriptin tapaan heikosti tyypitetty ja oliopohjainen ohjelmointikieli. PHP suoritetaan JavaScriptistä poiketen palvelimella, josta palautetaan selaimelle teksti/html-muotoista dataa. Loppukäyttäjä ei siis voi mitenkään saada selville katselemansa PHP-sivun lähdekoodia. PHP:tä käytetään usein lisäämään dynaamisuutta web-sivuille, ja sitä voi käyttää myös monien tietokantojen, kuten MySQL:n, PostgreSQL:n ja Oraclen, kanssa. Jotta PHP-koodi voidaan suorittaa, pitää PHP-tuen olla asennettuna palvelimelle. PHP on ylivoimaisesti käytetyin serveripuolen ohjelmointikieli. Sitä käytetään määrällisesti selvästi useammilla sivuilla kuin esimerkiksi ASP.NET:iä tai Javaa. (W3Techs 2013.) Monet julkaisujärjestelmät, kuten Wordpress, Drupal ja Joomla!, ovat myös kirjoitettu PHP:llä AJAX AJAX tulee sanoista Asynchronous JavaScript and XML. Se käsittää joukon tekniikoita, joiden avulla web-sivu vaihtaa dataa palvelimen kanssa taustalla, ilman sivun uudelleenlatausta. Sitä käytetään nimensä mukaisesti JavaScriptillä. AJAXia voidaan käyttää esimerkiksi rekisteröintilomaketta täytettäessä tarkastamaan tietokannasta, onko käyttäjän valitsema tunnus käytössä, ilman että sivua tarvitsee päivittää. Lyhyesti sanottuna AJAXIa käytetään luomalla XMLHttpRequest-objekti, joka suorittaa pyynnön palvelimelle käyttäen HTTP-protokollaa. Palvelin palauttaa dataa tai virhekoodin. AJAX:in alkuaikoina palvelimen palauttama data AJAX-kutsuille oli XMLmuodossa, mutta nykyään se on useimmin JSON-formaatista. JQueryllä XMLHttpRequest-objektin käsittely onnistuu helposti $.ajax-funktiolla.
30 Responsiivisuus Yleistä Web-suunnittelun juuret ovat printtisuunnittelussa, jossa taitto tehdään aina jotakin ennalta määrättyä sivukokoa ajatellen. Näihin päiviin asti myös useimmat web-sivut on suunniteltu tietyn pikselimäärän levyisiksi. Tämä toimii useimmiten hyvin tavallisilla pöytäkoneilla. Internetin tulo matkapuhelimiin kuitenkin muutti asioita. Alkuun ajateltiin, että puhelimilla internetiä käytetään lähinnä kodin ulkopuolella ja haetaan vain tietoa kuten osoitteita ja aukioloaikoja. Niinpä puhelimia varten tehtiin erillisiä mobiilisivuja, joissa oli vain kriittisin informaatio pienelle näytölle mahtuvassa paketissa. Älypuhelinten kehittyessä ja näyttökokojen kasvaessa myös käyttömukavuus on lisääntynyt. Nykyään monet käyttävät puhelimiaan kotioloissa aivan tavalliseen nettisurffailuun (Bulger 2010). Myös kaikenkokoiset tablet-tietokoneet ovat lisääntyneet ja vallanneet alaa perinteisiltä kannettavilta tietokoneilta. Erilaisia näyttökokoja on jo niin paljon, että on mahdotonta tehdä erillisiä sivuja eri alustoille. Myös samalla laitteella sivun leveys voi vaihdella kun laitetta kääntelee. Toisaalta pöytäkoneiden näyttöjen tuumakoot ovat kasvaneet, mikä mahdollistaisi entistä suuremman kuva-alan käyttämisen. Myös televisiolla käytetään internetiä. Responsiiviset web-sivut mukautuvat järkevästi kaikenkokoisiin näyttölaitteisiin. Termiä responsiivinen web-suunnittelu (responsive web-design) käytti ensimmäisen kerran Ethan Marcotte A List Apart verkkolehden artikkelissaan toukokuussa 2010 (Marcotte 2010). Marcotten mukaan responsiivinen web-suunnittelu koostuu kolmesta asiasta (Marcotte 2011, 9): 1. Joustava, gridi-pohjainen layout 2. Joustavat kuvat ja media 3. Mediakyselyt (media queries)
31 Gridi-pohjainen layout Gridi- eli ruutupohjaista suunnittelua on käytetty printtipuolella paljon ennen internetiä. Myös web-suunnittelussa se auttaa jäsentämään sisältöä. Nykyään tarjolla on monia apuvälineitä gridi-pohjaiseen suunnitteluun. Yksi suosituimmista on 960 Grid System, joka tarjoaa 12- tai 16-palstaiset gridipohjat useissa eri formaateissa graafisille suunnittelijoille (ks. kuvio 10). Mukana on myös CSS-framework web-kehitystä varten. KUVIO Grid Systemin 16-palstainen Photoshop sivupohja Responsiivisessä web-suunnittelussa käytetään myös gridejä, mutta palstoista ja niiden marginaaleista tehdään joustavia. Joustava (flexible) layout tarkoittaa käytännössä, että elementtien leveyksiä ei määritellä CSS-tyylitiedostossa pikseleissä vaan prosenteissa. Näin ne ovat aina suhteessa yhtä suuria riippumatta näytön leveydestä. Muunnoksen pikseleistä prosenteiksi voi tehdä helposti kaavalla (kohde / konteksti) * 100. Esimerkiksi jos 300 pikseliä leveä sidebar-niminen elementti sijaitsee 960 pikseliä leveän wrapper-elementin sisällä, saadaan sen leveys prosenteissa laskemalla (300 / 960) * 100 = 31,25. Laskutoimituksen tulokseksi voi usein tulla pitkiä murtolukuja, mutta niitä ei ole syytä pyöristää, sillä selain osaa kyllä käsitellä niitä. Esimerkiksi 23, % on aivan käyttökelpoinen luku.
32 29 Myös fonttien koot voi määritellä suhteelliseksi. Tämä tehdään käyttämällä pikseleiden sijaan em-yksiköitä. Yksi em-yksikkö vastaa määritellyn (tai oletuksena olevan) fonttikoon korkeutta. Esimerkiksi jos otsikon kontekstin fontin oletuskoko on 16 pikseliä ja halutaan määritellä vaikkapa 24 pikselin kokoinen otsikko, se on 1,5 em. Tämä saadaan laskettua kaavalla kohde / konteksti. Eli 24 / 16 = 1,5. Alkuun on järkevä nollata fonttikoot määrittämällä kaikki fonttikoot selaimen oletuskooksi (yleensä 16 pikseliä) näin: body { font-size: 100%; } Näin kontekstin fonttikoko on aina sama. Kuitenkaan pelkkä elementtien koon määritteleminen prosenteissa ei saa sivua mukautumaan kaikkiin selainikkunan kokoihin mikäli sivulla on kuvia, jotka pysyvät saman kokoisena. Tämä voidaan ratkaista määrittämällä CSS:ssä: img { max-width: 100%; } Tällöin kuva on aina korkeintaan sitä ympäröivän elementin (parent element) kokoinen ja skaalautuu tarvittaessa pienemmäksi. Toinen vaihtoehto olisi leikata elementin ylimenevät osat kuvasta määrittämällä img { overflow: hidden; } Tämä ei ole kuitenkaan yleensä toimivin ratkaisu.
33 Mediakyselyt (media queries) Joustavien elementtien ja kuvien lisäksi responsiivisessa suunnittelussa oleellisena osana on CSS3:n media query -ominaisuus. Sen avulla voidaan tunnistaa mm. käyttäjän selainikkunan koko sekä se miten päin mobiililaite on. Erilaisille näytöille voidaan antaa omia tyylimääreitä tai käyttää kokonaan erillistä tyylitiedostoa. Tyypillisiä käyttökohteita ovat mm. sivupalkin sijoittaminen sivun ylä- tai alalaitaan pienellä resoluutiolla katsottaessa. Media queryjä voidaan käyttää kolmella tapaa. HTML-dokumentin head-tagien sisällä voidaan asettaa ehtoja erilaisille tyylitiedostoille: <link rel="stylesheet" media="all and (orientation: portrait)" href="css/portrait.css"> Toinen vaihtoehto on määritellä ne suoraan only screen and (max-width: 480px) and (max-height: 800px) { body { font-size: 8px; } } Kolmas tapa on linkittää toinen CSS-tiedosto ehtojen perusteella tyylitiedoston url("portrait.css") all and (orientation: portrait); Kaikki modernit selaimet tukevat media queryjä, mutta vanhemmat selaimet, kuten Internet Explorer 8, eivät tue. Tätä puutetta on mahdollista paikata muun muassa JavaScript-pohjaisilla ratkaisuilla kuten css3-mediaqueries.js tai Respond.js. (Marcotte 2011, 99).
34 31 4 RAVINTOLASANASTON OPETUSPELIN TOTEUTUS 4.1 Layoutin suunnittelu Pelin layoutin suunnittelun lähtökohtana oli ipadin resoluutio 1024 x 768 pikseliä. IPad on tablet-tietokoneiden markkinajohtaja (IDC 2012b). Tämä koko on sopivan suuri myös pöytäkoneella katsottavaksi. Suunnittelun apuna oli käytössä 12- palstaiset, ipadille tarkoitetut Photoshop-gridit (ks. kuvio 11), jotka ovat saatavilla osoitteesta: KUVIO 11. Layoutin suunnittelua gridiä hyödyntäen Pelin värimaailmaksi valittiin sininen, keltainen ja valkoinen. Värivalinnoilla pyrittiin iloiseen ja värikkääseen, mutta kuitenkin selkeään ulkoasuun. Alkuvalikkoon suunniteltiin jokaiselle palkille kuvaava ikoni, joista voi päätellä mistä niissä on kysymys, vaikka suomen kieli tuottaisi ongelmia. Ikonit myös piristävät muutoin melko yksinkertaista ulkoasua (ks. kuvio 12).
35 32 KUVIO 12. Pelin alkuvalikko Pelin fonteiksi valikoituivat ilmaiset Molle- ja ABeeZee-nimiset fontit Google Web Font -palvelusta. ABeeZee-fontti on selkeä ja muistuttaa koulun oppikirjoja ja sopii näin ollen aiheeseen. Molle on kaunokirjoitusta muistuttava fontti, jota käytetään pelin logossa (ks. kuvio 13) ja otsikoissa. Se erottuu hyvin muusta tekstistä ja tuo mieleen ravintolan ruokalistat. KUVIO 13. Pelin logo
36 33 Fontit olivat alun perin ainoastaan TTF-muodossa. Niiden muuntamiseen muihin tarvittaviin formaatteihin käytetiin Font Squirrel palvelua ( Pelin tunnuksena toimii piirretty kuva kokinhatusta. Hattu esiintyy pelin logossa, favicon-ikonissa, sekä ios-kuvakkeessa. Hatuilla myös kuvataan elämiä joita pelaajalla on jäljellä. 4.2 HTML-sivun toteutus Sivun kokoaminen Kuvankäsittelyohjelmalla tehty layout koottiin HTML-sivuksi käyttäen mahdollisimman paljon CSS-muotoiluja kuvien sijaan. Esimerkiksi pelin taustalla näkyvä sininen väriliuku on tehty CSS:n radial-gradienttina. Näin se mukautuu kaikkiin näyttökokoihin ja peli latautuu nopeammin, kun ylimääräisiä kuvia ei tarvitse ladata. Selaimille jotka eivät tue liukuvärejä, on määritelty normaali taustakuva. Eri selaimissa on erilaisia oletusmuotoiluja eri elementeille. Näiden nollaamiseksi pelissä käytetään CSS Reset -nimistä työkalua. Kyseessä on lyhyehkö pätkä CSS:ää joka on linkitetty HTML-sivulle omana tiedostonaan. Näin taataan parempi kontrolli sen suhteen, miltä HTML-sivun sisältö näyttää. Sovelluksessa on ainoastaan yksi HTML-dokumentti, jossa on kaikki pelin näkymät omina div-elementteinään. Näkymiä piilotetaan ja näytetään sovelluksessa JavaScriptin avulla. Monet selaimet eivät tue kaikkia CSS3-ominaisuuksia. Modernizrilla tunnistetaan puuttuvat ominaisuudet ja tehdään niille vaihtoehtoisia ratkaisuja, jos mahdollista ja
37 34 tarpeen. Osa muotoiluista kuten kulmien pyöristäminen on kuitenkin jätetty vain niille selaimille, jotka niitä tukevat. Näin uudempien selainten käyttäjät saavat hieman tyylikkäämmän pelikokemuksen. Yksi esimerkki pelissä olevista asioista, jotka näyttävät eri selaimilla hieman erilaisilta, on pelaajan pisteitä ilmaisevan tekstin muotoilu. Siinä on käytetty ainoastaan Webkit-selaimissa (Chrome, Safari) tuettua -webkit-text-stroke-widthiä eli tekstin reunaviivaa ja text-shadowia, jolla tekstille luodaan varjo. Operalla ja Firefoxilla tekstillä on varjo, mutta ei reunaviivaa, kun taas Chromella ja Safarilla kummatkin toimivat. Internet Explorerin versio 9 tai sitä vanhemmat eivät tue CSS:n text-shadowia tai reunaviivaa. Tätä puutetta voi kuitenkin jossain määrin paikata Microsoftin filterominaisuudella (ks. kuvio 14), joka toimii ainoastaan Internet Explorereissa. KUVIO 14. Pisteet Chromessa (vasemmalla) ja Internet Explorerissa (oikealla) Filteriä käytetään pelissä myös paikkaamaan IE8:sta puuttuvaa background-sizeominaisuutta, jolla skaalataan taustakuva täsmälleen elementin kokoiseksi Responsiivisuus Kun layout oli onnistuneesti koottu, sivua alettiin muokata responsiiviseksi. Alussa kaikkien elementtien ja fonttien koot oli määritetty CSS:ssä kiinteinä pikselikokoina Photoshop-layoutin pohjalta. Responsiivisuutta lähdettiin toteuttamaan vaihtamalla kaikki leveydet ja pituudet suhteellisiksi kiinteiden sijaan. Fonttien koot vaihdettiin pikseleistä em-yksiköiksi ja elementtien leveydet ja sivusuuntaiset marginit/paddingit vaihdettiin prosenteiksi. Tarvittavat elementtien korkeudet ilmoitettiin em-
38 yksiköissä. Näin sivusta saatiin joustava ja jossain määrin selainikkunan kokoon reagoiva. 35 Haastavaksi responsiivisuuden teki se, että kaiken sisällön piti mahtua yhtä aikaa näytölle ilman pystysuuntaista vierittämistä. Yleensä responsiivinen web-suunnittelu koskee tavallisia web-sivuja, joissa on vaihteleva määrä sisältöä. Tällöin riittää, että sisältö mahtuu järkevästi vaakasuunnassa näytölle ja sivua tarvitsee vierittää vain pystysuunnassa. Tämänkaltaisessa sovelluksessa tilanne on kuitenkin toinen. Esimerkiksi kannettavien tietokoneiden tyypillisimmillä resoluutioilla pelin 768 pikselin korkeus oli liian suuri mahtuakseen selainikkunaan. Ongelma ratkaistiin tutkimalla erilaisia selainikkunan korkeuksia media queryillä. Pienemmille näytöille määriteltiin pienempi perusfontti, jolloin kaikki em-yksiköissä ilmoitetut korkeudet skaalautuivat samassa suhteessa pienemmäksi. Media queryjen kohdistamisessa oli jonkin verran ongelmia. IPadit ja vastaavat tabletit piti erottaa kannettavista tietokoneista, vaikka ruutujen koot voivat olla melko samanlaisia. Muotoilut ovat muuten samanlaisia samankorkuisilla näytöillä laitteesta riippumatta, mutta ipadilla sovellus skaalataan täyttämään ruutu kokonaan, kun taas leveämmille kannettavien näytöille saa jäädä valkoiset reunat ruudun laidoille. Tämä tehtiin tunnistamalla JavaScriptillä onko käyttäjällä käytössä ios-käyttöjärjestelmä. Mikäli ei ole, niin sivun html-elementtiin lisätään luokka notiosdevice. Näin voitiin kohdistaa tiettyjä muotoiluja kannettaville tietokoneille, ilman että ne vaikuttavat pelin näkymään ipad-laitteissa. Lisäksi media queryjä on kohdistettu yleisille älypuhelinten resoluutioille 320 x 480, 480 x 800 ja 640 x 960 pikseliä. Peli mahtuu järkevämmin pysty- kuin vaakasuunnassa olevalle puhelimen näytölle. Tästä syystä vaakasuunnassa olevaa näkymää ei ole tuettu pienillä näytöillä. Web-sovelluksissa, toisin kuin natiivisovelluksissa, ei ole mahdollista estää näytön kiepauttamista. Rajoitus kierrettiin siten, että kun käyttäjä
39 kääntää puhelimen vaaka-asentoon, näytetään hänelle viesti jossa kehotetaan kääntämään puhelin pystyasentoon (ks. kuvio 15). 36 KUVIO 15. Peli vaakasuunnassa olevalla Android-puhelimella Tämä on toteutettu niin, että viesti on omana div-elementtinään, joka on muun sisällön päällä. Se on oletuksena piilotettu. Kun tietyn kokoista näyttöä pidetään vaakasuunnassa, div laitetaan näkyviin media queryn avulla: #rotate-popup { display: none; only screen and (max-width: 800px) and (max-height: 480px) and (orientation: landscape) { #rotate-popup { display: inline; } }
40 Web-sovelluksen muokkaaminen natiivisovellusta muistuttavaksi On useita tapoja saada web-sovellus muistuttamaan aitoa natiivisovellusta. Osa mobiililaitteiden selainten käytössä olevista sormilla tehtävistä eleistä oli turhia pelin kannalta. Esimerkiksi ipadeissä ja iphoneissa näyttöä on mahdollista vierittää yli. JQueryllä voidaan poistaa ns. touchmove-tapahtuma käytöstä, jolloin ylivierityksen ja kahdella sormella nipistämällä tehtävä zoomaus estetään. $(document).on("touchmove", false); Jotta peli rajallinen kuva-ala tulisi mahdollisimman tehokkaasti hyödynnetyksi ja peli erottuisi tavallisesta internetsivusta, kannattaa selaimen osoitepalkki piilottaa. Tämä onnistuu JavaScriptillä Androidissa seuraavasti: if (/Android/.test(navigator.userAgent)) { $("html").css("height", "200%"); settimeout(function() { window.scrollto(0, 1); }, 0); } Selain pakotetaan siirtymään sivun ylälaitaan window.scrollto funktiolla. Sivun täytyy olla suurempi kuin ruudun koko, jotta tämä toimisi. Esimerkissä selain huijataan luulemaan, että sivun korkeus on suurempi kuin se todellisuudessa on, määrittämällä html-elementin korkeudeksi 200%. Web-sivut ovat tyypillisesti selvästi suurempia kuin puhelimen näyttö. Ne ovat tyypillisesti 960 pikseliä leveitä, puhelimen vaakaresoluution ollessa esimerkiksi 480 pikseliä. Tämän takia mobiililaitteiden selaimet zoomaavat automaattisesti sivua sopimaan näytölle. Kun suunnataan sivua erityisesti mobiililaitteille, on hyvä pystyä kontrolloimaan mahdollisimman paljon sitä, miltä sivu näyttää. Seuraavassa esimerkissä poistetaan automaattinen zoomaus käytöstä. Sivun asettuminen ruudulle voidaan tällöin itse määrittää media queryjä hyödyntäen.
41 38 <meta name="viewport" content="width=device-width, initial-scale=1" /> IOS-laitteissa web-sivut voi lisätä Koti-valikkoon. Tällöin web-sivulle / -sovellukselle luodaan vastaava pikakuvake kuin asennetuille ohjelmillekin. IPadin ja iphonen käyttäjille näytetään pelin latauduttua ilmoitus, jossa kehotetaan lisäämään peli Kotivalikkoon (ks. kuvio 16). KUVIO 16. IPad-käyttäjiä kehotetaan asentamaan peli Kotivalikkoon Eri kokoisille näytöille tarkoitetut ios-kuvakkeet luotiin kuvankäsittelyohjelmalla ja linkitettiin sitten HTML-tiedoston headeriin: <link rel="apple-touch-icon-precomposed" sizes="57x57" href="img/apple-touch-icon-57x57.png"/> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="img/apple-touch-icon-72x72.png"/> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="img/apple-touch-icon-114x114.png"/> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="img/apple-touch-icon-144x144.png"/>
42 39 Mikäli rel-attribuutissa ei lue precomposed, niin kuvakkeelle luodaan kiiltoefekti. Tässä tapauksessa päätettiin, ettei automaattista kiiltoefektiä käytetä (ks. kuvio 17). Kaikissa tapauksissa kuvakkeen reunat pyöristetään ja sille luodaan varjostus automaattisesti. KUVIO 17. Pelin ikoni (vasemmalla ylhäällä) ipadin Koti-valikossa. Automaattinen kiiltoefekti näkyy esimerkiksi oikean ylälaidan ikonissa. 4.4 Äänet Sovelluksessa on kaksi ääniklippiä: kun pelaaja vastaa oikein kuuluu iloinen fanfaariääni, ja kun pelaaja vastaa väärin kuulu epämiellyttävämpi virheääni. Äänet on ladattu alunperin Freesound-sivustolta ( joka tarjoaa Creative Commons lisenssien alaisia ilmaisia ääniklippejä. Muokkasin ääniä Audacityohjelmalla sopivan mittaisiksi ja äänenvoimakkuudeltaan keskenään sopiksi.
43 40 Kummatkin äänet ovat varmuuden vuoksi sekä MP3-, että OGG-muodoissa. Ne on linkitetty HTML-dokumenttiin käyttäen HTML5:n audio-elementtiä. <audio id="rightanswer"> <source src="sounds/fanfaari.mp3" /> <source src="sounds/fanfaari.ogg" /> </audio> IPadillä ilmeni yllättävä ongelma äänien kanssa. Testauslaitteen ios6- käyttöjärjestelmän Safari-selain kyllä tukee HTML5-ääniä, mutta sovellus jäi aina jumiin virhetilanteeseen, joka syntyi kun ääniä yritettiin toistaa. Kävi ilmi, että kyse on iphoneille ja ipadeille asetetuista rajoituksista, jotka estävät äänitiedostojen ennakkoon lataamisen. Äänet voidaan toistaa tai ladata vain suoraan jotain klikkaamalla. Tätä perustellaan sillä, että käyttäjälle saattaisi koitua tarpeettomia datasiirtomaksuja (Apple 2012). Rajoitukset eivät kuitenkaan estä peliä lataamasta ennakkoon yli megatavun edestä kuvia, äänien viedessä vain 65 kilotavua. Ääniä ei voinut liitää suoraan napin klikkaus -tapahtumaan, koska ohjelmakoodissa tutkitaan menikö vastaus oikein ennen kuin ääni toistetaan. Ongelma kierrettiin tekemällä kumpaakin ääntä varten oma näkymätön div-elementti, jonka klikkaukseen äänen toisto liitettiin. Kun pelaajan vastaus on käsitelty, jqueryn trigger-funktiolla huijataan selain luulemaan, että elementtiä on klikattu. if (navigator.useragent.match(/(iphone ipod ipad)/i)) { $("#sound2").trigger("click"); } Myös Androidilla ilmeni ongelmia äänten toiston kanssa. Android 2.3.3:n selaimella äänet toimivat niin kuin pitääkin, tosin pienellä viiveellä. Android version selaimella äänten toiston yrittäminen aiheutti kuitenkin virheen. Virheitä oli yritetty ehkäistä tutkimalla Modernizrilla onko HTML5-äänet ylipäätään tuettu, ennen äänen toistamista:
44 41 if (Modernizr.audio) { sounds.rightanswersound.currenttime = 0; sounds.rightanswersound.play(); } Tämä ei kuitenkaan riittänyt. Kävi ilmi, että kyseinen selainversio tukee periaatteessa HTML5-ääniä, mutta ei OGG- tai MP3-formaatteja. Ongelma ratkaistiin testaamalla Modernizrillä erikseen käytettyjen äänitiedostojen formaattien tukea ennen äänen toistamista: if (Modernizr.audio.ogg Modernizr.audio.mp3) { sounds.rightanswersound.currenttime = 0; sounds.rightanswersound.play(); } Näin virhettä ei enää tullut. Äänet eivät vain kuulu, jos niitä ei tueta, kuten alun perin oli tarkoituskin. 4.5 Toiminnallisuuden lisääminen Yleistä Sovelluksen front end -puolen toiminnallisuus on toteutettu JavaScriptillä. Käytössä on viisi JavaScript-tiedostoa: <script src="js/jquery min.js"></script> <script src="js/apprise-v2.js"></script> <script src="js/modernizr.js"></script> <script src="js/ravintola.js"></script> <script src="js/start.js"></script> <script src="js/css3-mediaqueries.js"></script> Kolme ensimmäistä ja viimeinen tiedosto ovat valmiita JavaScript-kirjastoja. JQuery on tarkoitettu koodin kirjoittamista helpottamaan, Apprise ponnahdusikkunoita var-
45 42 ten ja Modernizr selaimen tukemien ominaisuuksien testaamista varten. CSS3- mediaqueries lisää media queryjen toiminnallisuuden selaimille, jotka eivät niitä tue, eli lähinnä Internet Explorer 8:lle. Start.js-tiedostossa kerrotaan, mitä tapahtuu HTML-dokumentin lataamisen jälkeen. Siinä muun muassa muutetaan AJAX-asetuksia siten, että AJAX:illa luettavat tiedot luetaan aina uudestaan, eikä niitä haeta välimuistista. $.ajaxsetup({ cache: false }); Näin tehdään, jotta käyttäjällä olisi aina käytössään uusimmat kysymykset ja pistetiedot. Samassa tiedostossa myös asetetaan jqueryllä toiminnot eri nappien painalluksille ja piilotetaan selaimen osoitepalkki Android-käyttäjiltä Kapselointi Ravintola.js-tiedosto sisältää loput ohjelmaa varten kirjoitetusta koodista. Nimiavaruuden saastumisen (namespace pollution) välttämiseksi kaikki funktiot ja muuttujat on kapseloitu yhden, Ravintola-nimisen muuttajan sisään. Näin muuttujien tai funktioiden nimet eivät vahingossakaan mene tulevaisuudessa päällekkäin käytettyjen JavaScript-kirjastojen kanssa. var Ravintola = (function(){ // Yksityiset muuttujat ja metodit return { // Julkiset metodit, esim. loadxmlcontent: loadxmlcontent, changetoscreen: changetoscreen, startgame: startgame // jne. jne. }; })();
46 43 Virallisesti JavaScriptissä ei ole erikseen julkisia (public methods) tai yksityisiä metodeja (private methods), mutta vastaava toiminnallisuus voidaan saada aikaan eri tavoilla. Pelissä on käytössä niin sanottu revealing module pattern -rakenne, jossa julkiset metodit paljastetaan return-lauseella. Niitä käytetään Ravintola-muuttujan ulkopuolelta esimerkiksi seuraavasti: Ravintola.changeToScreen("high-scores"); Muut muuttuja ja metodit ovat yksityisiä eli niihin ei pääse käsiksi Ravintolamuuttujan ulkopuolelta Tietojen lataus Pelin käynnistyessä sen tiedot luetaan palvelimelta termit.xml-nimisestä tiedostosta jqueryn get-funktiolla, joka suorittaa AJAX-kutsun. $.get("xml/termit.xml", function(xml){ // käsitellään xml-muuttujaan luetut tiedot }); Sisältö käydään läpi ja tallennetaan taulukkomuuttujaan, josta tietoja haetaan tarpeen mukaan pelin edetessä. Sen jälkeen suoritetaan loaduiimages- ja loadimagesfunktiot, jotka huolehtivat kuvien esilatauksesta Kuvien esilataus Pelin käyttöliittymäkomponenttien kuvat ja pelissä käytettävät valokuvat ladataan ennen pelin alkua selaimen välimuistiin, jotta peli toimisi mahdollisimman sulavasti. Samalla pelaajalle näytetään latausviiva (ks. kuvio 18).
47 44 KUVIO 18. Latausruutu Käyttöliittymäkomponenttien kuvien tiedostonimet on tallennettu uiimagenamesnimiseen taulukkoon. var uiimagenames = ["arrow.png", "back_arrow.png", "back_arrow_hover.png", "blank.jpg", "life.png", "life_lost.png", "menu_item_credits_bg.png", "menu_item_help_bg.png", "menu_item_highscores_bg.png", "menu_item_practise_bg.png", "menu_item_timetrial_bg.png", "practise_header.png", "right.png", "right_verb.png", "rotate_icon.png", "time_progress_bg.gif", "timer_icon.png", "verb_arrow.png", "wrong.png", "wrong_verb.png"]; Funktiolla loaduiimages ladataan kuvat välimuistiin: function loaduiimages(){ for (var i=0; i<uiimagenames.length; i++) { uiimages[i] = new Image(); uiimages[i].onload = function() { loaded++; updateprogressbar();
48 45 } } }; uiimages[i].src = "img/" + uiimagenames[i]; Jokaista kuvaa kohti luodaan uiimages-nimiseen taulukkoon uusi kuvaobjekti. Kun kuvaobjekti on ladattu, päivitetään loaded-nimistä muuttujaa, johon on tallennettu ladattujen kuvien määrä. Sitten kutusutaan updateprogressbar-funktiota, joka päivittää latausviivan: function updateprogressbar(){ var imagestotal = uiimagenames.length + imagenames.length; var readypercent = Math.round(loaded/imagesTotal*100) + "%"; // Uudet selaimet $("#progressbar").css("background-size", readypercent+" 100%"); // Vanhat selaimet $("html.no-backgroundsize #progressbar").css("width", Math.round(loaded/imagesTotal*100)* "px"); } if (readypercent === "100%") { changetoscreen("menu"); teststandalone(); } Latausviiva on yhden pikselin levyinen kuva, joka on määritelty CSS:ssä div-elementin taustakuvaksi. JQueryllä muutetaan taustakuvan leveyttä latauksen edistymisen mukaan. Jotkut vanhemmat selaimet, kuten Internet Explorer 8, eivät tue CSS:n background-size-ominaisuutta. Näitä varten on hieman erilainen toteutus. Pelissä käytettävien valokuvien nimet ladataan XML-tiedostosta samalla kun pelin tekstitkin. Niiden lataamiselle on oma funktionsa, joka toimii vastaavalla tavalla kuin loaduiimages. Kun kaikki kuvat on ladattu, piilotetaan latausruutu ja siirrytään alkuvalikkoon.
49 Kysymysten arpominen Pelin kysymykset arvotaan siten, että ensin arvotaan kysymystyyppi. 40 prosentin todennäköisyydellä tulee kuvasta sanaksi -kysymys ja 40 prosentin todennäköisyydellä sanasta kuvaksi -kysymys. Verbin selitys -tehtävä tulee 20 prosentin todennäköisyydellä. Tämän jälkeen arvotaan vastausvaihtoehdot ja oikea vastaus. CheckPreviousChoices-funktiolla tarkastetaan, ettei kysymyksen vastaus ole sama kuin edellisissä kysymyksissä. HowOftenSameQuestion-muutujan arvo määrittää, montako edellistä vastausta tutkitaan. function checkpreviouschoices(){ for (var i=1; i<howoftensamequestion; i++) { var prev = previousanswers[previousanswers.length - i]; if (prev === rightanswernum) { resetchoises(); i=0; } } } Infotekstin näyttäminen Harjoittelumoodissa pelaajalle näytetään kysymykseen vastaamisen jälkeen lisätietoja kyseisestä termistä (ks. kuvio 19).
50 47 KUVIO 19. Infoteksti Android-puhelimella Mikäli tekstiä on liikaa suhteessa näytön kokoon, lisätään tekstin elementille luokka, jolle on CSS:ssä määritelty pienempi fonttikoko. if ((infoheight / gameheight) > 0.3) { $("#info-text div").attr("class", "small-text"); } else { $("#info-text div").attr("class", "normal-text"); } Ajan nopeutuminen Pelaa aikaa vastaan -moodissa jokaisessa kysymyksessä on rajallisesti vastausaikaa. Uuden kysymyksen alussa määritellään jäljellä olevaa aikaa ilmaisevan timeleftmuuttujan arvoksi 1000 ja laitetaan ajastin päälle: timeleft = 1000; timer = setinterval(time,speed);
51 48 JavaScriptin setinterval-funktion ensimmäinen parametri määrittää funktion, jota kutsutaan. Toinen parametri määrittää, kuinka monen millisekunnin välein sitä kutsutaan. Speed-muuttujan arvo on pelissä oletuksena 20, joten time-nimistä funktiota kutsutaan 20 millisekunnin välein. function time(){ // verbikysymyksissä on enemmän aikaa if ($("#verb-explanation").css('display')!== 'none'){ timeleft -= 0.3; timeleft = timeleft - speeder * 0.5; } else { timeleft--; timeleft = timeleft - speeder; } } if (timeleft < 0) { clearinterval(timer); playeranswerswrong(); } else { // uudet selaimet $("#timebar").css("background-size", timeleft*0.1+"% 100%"); // vanhat selaimet $("html.no-backgroundsize #timebar").css("width", timeleft*0.1+"%"); } Aina kun time-funktiota kutsutaan, vähennetään timeleft-muuttujan arvosta yksi mikäli kyseessä on sanasta kuvaksi tai kuvasta sanaksi -kysymys. Verbin selitys - tehtävissä on enemmän luettavaa tekstiä, joten myös vastaamisaikaa on enemmän. Tällöin vähennetään kerralla vain 0,3 timeleft-muuttujan arvosta. Speedermuuttujan arvo on alussa nolla ja kasvaa pelin edetessä pidemmälle, nopeuttaen ajan kulumista. Lopuksi tarkistetaan onko aikaa vielä jäljellä. Jos on, niin päivitetään ajan kulumista osoittava viiva. Mikäli aika loppuu eli timeleft-muuttujan arvo menee alle nollan, pelaaja menettää elämän.
52 Pisteiden lukeminen ja tallennus Kymmenen parhaan pelaajan pisteet on tallennettu XML-tiedostoon. Niiden lukeminen tapahtuu AJAX-kutsulla. Jos pelaaja pääsee Pelaa aikaa vastaan -moodissa pistellistalle (ks. kuvio 20), täytyy XML-tiedostoa päivittää. Tähän tarvitaan palvelinpuolen ohjelmointia, joka toteutettiin PHP:llä. Pisteet lähetetään PHP-skriptille POSTmetodia käyttäen. $.post("save.php", { newscore: newhighscore, rank: rank, name: name }, function() { // kun tiedot on lähetetty clickdisabled = false; loadhighscores(); }); KUVIO 20. Pelaaja saa kirjoittaa nimensä pistelistalle.
53 Refaktorointi JavaScript-koodin luettavuuden ja ylläpidettävyyden parantamiseksi ohjelmakoodia pyrittiin refaktoroimaan säännöllisesti. Refaktorointi tarkoittaa ohjelmakoodin sisäisen rakenteen parantelua ilman, että toiminnallisuus muuttuu. Käytännössä tämä tarkoitti esimerkiksi liian pitkien funktioiden pilkkomista pienempiin osiin ja muuttujien sekä funktioiden nimeämistä loogisesti. Toimivaa koodia muutettaessa on aina riskinä rikkoa ohjelma vahingossa. Tästä syystä refaktorointia tehtiin vähän kerrallaan ja ohjelmaa testattiin kunnolla muutosten jälkeen. JavaScript-koodin laadun parantamisessa hyödynnettiin myös niin sanottuja staattinen analyysi -työkaluja. Staattinen analyysi tarkoittaa koodin analysoimista ilman sen suorittamista. Käytössä oli JSLint ja JSHint-nimiset työkalut. JSLintiä voi käyttää kopioimalla koodi sen web-sivuille ( JSLint antaa palautetta huonosta koodista. Sen kehittäjää Douglas Crockfordia on kuitenkin kritisoitu siitä, että JSLint ohjaa kirjoittamaan ennemminkin Crockford-tyylistä koodia kuin yleisesti hyvänä pidettävää JavaScriptiä. Tästä syystä JSLintistä on muokattu muun muassa JSHint-niminen työkalu, joka on melko pitkälti samanlainen, mutta paremmin kustomoitavissa (Kovalyov 2011). JSHint osoittautuikin näistä kahdesta käytännöllisemmäksi. Näiden työkalujen avulla oli mahdollista oppia uutta ja koodin taso parani. Niiden ohjeita ei kuitenkaan seurattu orjallisesti, mikä tuskin olisi ollut järkevääkään. 4.7 Testaus Yleistä Sovellusta testattiin kaikilla käytetyimmillä selaimilla: Internet Explorerilla, Chromella, Firefoxilla, Operalla ja Safarilla.
54 51 Mobiililaitteista oli koko ajan käytettävissä ipad2-tabletti ios6-kättöjärjestelmällä sekä Android-puhelimet Samsungs Galaxy Gio ja Huawei U8800. Myös muilla laitteilla, kuten iphone4:llä, sovellusta päästiin testaamaan satunnaisesti. Pöytäkoneissa ja kannettavissa tietokoneissa, joilla testausta suoritettiin, oli Window -käyttöjärjestelmä. Pöytäkoneella peliä testattiin pääasiassa paikallisesti WAMPpalvelimelta, mutta myös internetin kautta. Mobiililaitteilla testattiin internetin kautta Vanhat selainversiot Useimmat nykyaikaiset selaimet päivittyvät automaattisesti, mutta kaikilla käyttäjillä ei ole kuitenkaan uusimpia selainversioita käytössään. Tämän vuoksi on tarpeen suorittaa testausta myös selainten vanhemmilla versioilla. Internet Explorerilla 9:ssä on mahdollista valita kehitystyökaluista selainmoodiksi (Browser Mode) myös Internet Explorer 8 ja 7, jolloin voi testata miten sivusto toimisi näillä selainversioilla. Firefoxissa ei ole kehitystyökaluja vanhojen versioiden testaamista varten. Vanhat versiot on kuitenkin mahdollista asentaa uusimmat Firefoxin rinnalle. Testausta varten asennettiin versiot 3, 3.5 ja 3.6. Firefox 3:lla sovellus ei toiminut kovinkaan hyvin, mikä on ymmärrettävää ottaen huomioon, että se on julkaistu vuonna Versioilla 3.5 ja 3.6 peliä pystyi pelaamaan, mutta CSS:n border-radius eli kulmien pyöristys ei ole käytössä näissä versioissa. Media queryt ovat tuettuja jo versiossa 3.5, mutta taustakuvien skaalaus ei toiminut täysin ja äänien kanssa oli ongelmia. Reunojen pyöristystä lukuun ottamatta peli toimii hyvin Firefox 3.6:lla Debuggaus Firefox-selaimella käytettiin debuggausta eli virheiden paikannusta varten Firebuglisäosaa. Muissa pöytäkoneiden selaimissa oli mukana riittävät kehitystyökalut eli
55 52 konsoli ja mahdollisuus tarkastella ja manipuloida sivun elementtejä ja CSSmuotoiluja suorituksen aikana. IPadillä debuggaaminen osoittautui haasteelliseksi, sillä ios6:sta oli poistettu aiemmissa versioissa mukana ollut debuggaus-konsoli kokonaan. Vaihtoehdoksi tarjottiin ipadin kytkemistä tietokoneeseen ja etädebuggaamista Safari 6 -selaimella. Ikävä kyllä kyseistä Safarin versiota ei ole tarjolla Windowsille, eikä Mac-konetta ollut käytettävissä. Onneksi tähän tarkoitukseen löytyi Waterbug-niminen JavaScript-kirjasto ( joka tarjoaa konsolin ioslaitteille. Konsolin saa näkymään kääntämällä laitteen vaaka-asentoon, mikä saattaa olla joissain tapauksissa epäkäytännöllistä. Android-käyttöjärjestelmässä virheilmoitukset ja konsolin viestit saa näkyviin niin sanottua logcat-sovellusta käyttämällä. Pelin kehityksessä käytettiin CatLog-nimistä ohjelmaa. Sovellus antaa lokitietoja puhelimen ja sen sovellusten toiminnasta. Selaimen viestit voi suodattaa browser -avainsanalla (ks. kuvio 21). KUVIO 21. CatLog-sovellus Andoid-puhelimella
56 Yksikkötestaus Suuri osa pelin toiminnasta on DOM:in manipulointia jqueryllä, esimerkiksi erilaisten elementtien piilottamista ja näyttämistä. Tällaisten funktioiden toimintaa on helpointa testata tarkkailemalla sovelluksen toimintaa visuaalisesti. Funktioille, jotka yksinkertaisesti palauttavat jotain arvoja, on järkevää kirjoittaa ns. yksikkötestejä, jotta voidaan varmistaa niiden asianmukainen toiminta. Tämä on hyvä varmistaa, etenkin kun koodin rakennetta muutetaan refaktoroidessa. JavaScript-fuktioiden testaukseen käytettiin QUnit-nimistä yksikkötestaus-frameworkia. QUnitilla testattiin esimerkiksi randomnumber funktiota. Sille syötetään parametrinä kaksi lukua, joiden väliltä sen pitäisi arpoa satunnaisluku. QUnitille kirjoitettiin testi, joka kokeilee palauttaako funktio satunnaisluvun, joka on yhtä suuri tai suurempi kuin sille annettu minimiarvo ja yhtä suuri tai pienempi kuin maksimiarvo: test("randomnumber()", function() { var min = 5, max = 30; for (var i=0; i<100; i++){ var n = randomnumber(min, max); ok(n >= min && n <= max, "Satunnaisluku" ); } }); Testi suoritetaan sata kertaa. Tulos näytti tältä (ks. kuvio 22). KUVIO 22. QUnit-testin tulos
57 54 Sata testiä sadasta meni läpi. Testiä kokeiltiin muuttaa vielä siten, että testattiin onko satunnaisluku aina suurempi kuin minimi ja aina pienempi kuin maksimi, ei siis koskaan yhtä suuri. QUnitin mukaan näin ei ollut (ks. kuvio 23), vaan 12 testiä sadasta epäonnistui. Tästä voitiin päätellä, että funktio toimi kuten oli tarkoituskin, eli minimiarvo oli pienin mahdollinen ja maksimiarvo suurin mahdollinen. KUVIO 23. Epäonnistunut Qunit-testi Palautteen kerääminen toimeksiantajataholta Kun sovelluksen vaatimukset oli lyöty lukkoon ja ulkoasuehdotukset hyväksytty, alettiin työstää ensimmäistä testiversiota, jossa pelin visuaalinen ilme ja suurin osa ominaisuuksista oli toteutettuna. Sen valmistuttua pelistä lähetettiin linkki TTS:n peli- ja kirjaprojektista vastaavalle ohjausryhmälle. Viestin mukana oli joukko kysymyksiä, joihin kaivattiin kommentteja. Kysymykset koskivat pelin vaikeustasoa, fontteja, asettelua, ääniä, pelin latautumista ja mahdollisia virhetilanteita.
58 55 Tämän jälkeen testiversiota ja kysymyksiä käytiin läpi kokouksessa. Keskustelun pohjalta pelin sääntöihin ja sisältöön tehtiin joitain muutoksia, mutta testiversion ulkoasuun ja toimintaan oltiin ohjausryhmässä tyytyväisiä. Ehdotusten pohjalta pelin kehitys jatkui ja responsiivisuutta alettiin työstää Käyttäjätestaus Projektin loppuvaiheessa suoritettiin käyttäjätestaus ravintola-alan opiskelijoilla TTS:n ylläpitämässä koulussa. Testaukseen osallistui kuusi opiskelijaa ja yksi opettaja. Ainoastaan yhden testaajista äidinkieli oli muu kuin suomi, joten aivan keskeisimmästä käyttäjäryhmästä eli maahanmuuttajista ei saatu kattavaa otosta. Opiskelijat täyttivät lyhyen kyselylomakkeen (ks. liite 1). Lisäksi heidän pelaamistaan seurattiin ja heidän kokemuksistaan keskusteltiin. Kaksi opiskelijaa testasi peliä omilla älypuhelimillaan (Nokia N9 ja HTC ChaCha). Nokia N9:llä sovellus toimi muuten moitteettomasti, mutta aiemmin muilla puhelimilla ilmennyt ongelma äänien toistossa vaivasi tätäkin. HTC:n näytön resoluutio oli 480x320 puhelimen ollessa pystyssä, jolloin näyttö oli tavallaan oletuksena vaakasuunnassa. CSS:ssä suunta (orientation) tulkitaan resoluution leveyden suhteesta korkeuteen (W3C 2013), ei laitteen todellisen suunnan mukaan. Näin ollen käyttäjälle näytettiin turhaan Käännä laite pystyasentoon -viesti. Kaikille testaajille oli selvää, mitä pelissä piti tehdä, vaikka ohjesivu oli testauksen aikaan varsin suppea. Tästä voi päätellä, että pelin asettelu on looginen. Pelin vaikeustasosta annettiin vaihtelevia arvioita (ks. kuvio 24). Kenenkään mielestä peli ei ollut liian vaikea. Kahden mielestä peli oli kuitenkin vaikea. Pidemmälle opinnoissaan ehtineet pitivät peliä liian helppoina, koska pelin sisältämä perussanasto on tarkoitettu lähinnä aloittelijoille. Testaajat arvioivat myös, että mikäli lukeminen on hidasta johtuen esim. oppimisvaikeuksista tai siitä ettei suomi ole äidinkieli, pelin aikamoodi saattaa olla liian haastava. Vaikeaksi arvioitiin myös pitkien tekstien lukemista ajan nopeutuessa aikamoodissa. Osa testaajista piti liian vaikeana sitä, että
59 peli loppui heti ajan loputtua. Myös elämiä eli mahdollisuuksia vastata väärin toivottiin lisää. 56 Pelin vaikeustaso liian vaikea 0 % vaikea 29 % siten, että ajan loppumisesta menettää ainoastaan yhden elämän. Samassa kysyliian helppo 14 % helppo 14 % sopiva 43 % KUVIO 24. Testaajien vastaukset monivalintakysymykseen, jossa kysyttiin pelin vaikeustasoa Testaajat huomasivat myös muutamia virheitä, jotka eivät liittyneet ohjelmointiin, vaan pelin XML-tiedostosta luettaviin tietoihin. Esimerkiksi kaksi samaa asiaa tarkoittavaa vastausvaihtoehtoa esiintyi yhtä aikaa ja yksi kuvista ei vastannut täsmällisesti sille tarkoitettua termiä. Testin aikana selvisi, että Internet Explorer 8:lla peli ei välttämättä mahdu pöytäkoneen näytölle pystysuunnassa, mikäli selaimen työkalupalkissa on paljon sisältöä. Uudemmilla selaimilla tämä ei ole ongelma, koska ne tukevat media queryjä, joiden avulla peli sovitetaan matalampaankin selainikkunaan. Palautteen pohjalta ryhdyttiin muutamiin konkreettisiin toimenpiteisiin. Pelin vaikeustasoa säädettiin niin, ettei peli loppuisi liian nopeasti. Aikamoodia muokattiin
60 57 myksessä voi myös menettää korkeintaan yhden elämän vaikka vastaisi monta kertaa väärin ennen kuin löytää oikean vastauksen. Virheelliset tiedot poistettiin XML:stä. Ongelmat sovelluksen mahtumisessa näytölle Internet Explorer 8:lla johtuivat siitä, ettei IE8 tue media queryjä. Koska kyseinen selain on kuitenkin suhteellisen monilla vielä käytössä, päätettiin sovellus saada toimimaan responsiivisesti myös sillä. Tämän toteuttaminen onnistui css3-mediaqueries.js:n avulla. 4.8 Tietoturva Pisteiden tallennukseen pelaajan päästessä pistelistalle liittyy tiettyjä tietoturvariskejä. Tällöin pelaaja voi kirjoittaa nimensä tekstikenttään ja syöte käsitellään PHP:llä palvelimella. PHP-skripi tallentaa nimen ja pisteet XML-tiedostoon. Mihinkään arkaluontoiseen tietoon pelillä ei ole pääsyä, eikä se ole yhteydessä mihinkään tietokantaan. Kiusanteko olisi kuitenkin mahdollista, ellei asiaa olisi otettu huomioon. Pelaaja voisi syöttää omaa HTML-koodia lomakkeelle ja näin ollen lisätä esimerkiksi pistesivulle kuvatiedoston, ylimääräisiä rivinvaihtoja, omaa CSS-muotoilua yms. HTML-tagit on mahdollista poistaa merkkijonosta PHP:llä strip_tags-funktiolla. Esimerkiksi näin: $name = strip_tags($_post['name']); Ongelmana tässä on, että jos pelaaja haluaa esimerkiksi käyttää <3 -hymiötä, niin kaikki < -merkistä eteenpäin tulkitaan HTML-tagiksi ja poistetaan. Lopulta päädyttiin käyttämään htmlspecialchars-funktiota, joka muuttaa merkit niin, että ne näytetään sellaisenaan sivulla, eikä tulkita HTML-tageina. Lomakkeelle, joilla nimi syötetään, on määritelty merkkiraja. Mikäli käyttäjä kuitenkin onnistuu ohittaamaan sen, niin lomaketta käsittelevä PHP-skripti poistaa ylimääärä-
61 58 set merkit substr-funktiolla. Tässä käsitellään $name-muuttujaan tallennettava lomakkeen syöte: $name = substr(htmlspecialchars($_post['name']),0,15); Ainoastaan 15 ensimmäistä merkkiä merkkijonosta tallennetaan, ja HTMLerikoismerkit muutetaan harmittomiksi. Tietoturvakysymysten laajempi huomiointi jätettiin jatkokehitysvaiheeseen. 4.9 JavaScript-koodin dokumentointi JavaScript-koodin dokumentoinnin apuna käytettiin JsDoc Toolkit -nimistä Javaohjelmaa. Siinä ei ole lainkaan graafista käyttöliittymää, vaan se ajetaan komentoriviltä. Se generoi automaattisesti dokumentoinnin HTML-sivuksi (ks. kuvio 25) JavaScript-tiedoston pohjalta. KUVIO 25. JsDoc Toolkitin luoma dokumentaatio HTML-sivuna
HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.
HTML & CSS Antti Koivisto HTML (HyperText Markup Language)! HTML on sivujen kuvauskieli.! Se ei ole ohjelmointikieli.! HTML on merkintäkieli, joka koostuu monista merkintä tägeistä ().! Voidaan
Tikon Web-sovellukset
Toukokuu 2015 1 (11) Tikon Web-sovellukset Toukokuu 2015 2 (11) 1 Johdanto... 3 2 Silverlight sovellukset... 3 2.1 Windows... 3 2.1.1 Microsoft Silverlight... 3 2.1.2 Tablet-laitteet... 4 2.1.3 Selaimet...
HTML5 -elementit jatkuu
HTML5 -elementit jatkuu Harjoitus: xhtml.htm -> html5.htm Muuta tämä xhtml dokumentti HTML5:ksi: http://users.metropolia.fi/~norrm/s12/kalasu/xhtml.htm Validoi myös koodisi: http://validator.w3.org/ "Mallivastaus"
CSS - tyylit. 13.11.2000 Seppo Räsänen
CSS - tyylit 13.11.2000 Seppo Räsänen Sivu 2 1 CSS-tyylit Dynaaminen HTML tai DHTML on standardi, joiden käyttöä tukevat uusimmat Netscapen ja Microsoftin selaimet. DHTML:n ominaisuuksia ovat tyylitiedostot
Lisätehtävät. Frantic 2015 sivu 1 www.frantic.com
Lisätehtävät Frantic 2015 sivu 1 www.frantic.com Fontit - Google fonts Fonttien käyttäminen verkossa ilman uusien fonttien lataamista on melko rajattua, sillä koskaan ei voi tietää mitä fontteja vastaanottajan
Tikon Web-sovellukset
Marraskuu 2014 1 (9) Tikon Web-sovellukset Marraskuu 2014 2 (9) 1 Johdanto... 3 2 Windows... 3 2.1 Microsoft Silverlight... 3 3 Tablet-laitteet... 4 4 Selaimet... 5 4.1 Yleiset asetukset (kaikki selaimet)...
WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys
WWW-OHJELMOINTI 1 WWW-ohjelmoinnin kokonaisuus SGML, XML, HTML WWW-selaimen sovellusohjelmointi WWW-palvelimen sovellusohjelmointi Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 26.10.2000
HTML5 video, audio, canvas. Mirja Jaakkola
HTML5 video, audio, canvas Mirja Jaakkola Video webbisivulla HTML5 mahdollistaa videon lisäämisen webbi-sivuille ilman plugineja. Yleisimmät videoformaatit webissä: Mpeg-4 eli H.264 Ogg Flash Perustuu
Alkuun HTML5 peliohjelmoinnissa
Paavo Räisänen Alkuun HTML5 peliohjelmoinnissa www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida ja levittää ei kaupallisissa tarkoituksissa. Sisällysluettelo 1: Alkusanat 2: Alkuun 3: Pelinäkymä
JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari
JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti
WWW-Sivustojen suunnittelu. Miten WWW toimii. Suunnittelun lähtökohdat 14.10.2010
WWW-Sivustojen suunnittelu Miten WWW toimii Web-selain hakee Web-sivun HTML-kielisen kuvauksen Sivuun liittyvät kuvat (jpeg, gif, png) Sivuun liittyvät muut elementit Palvelimen URL-osoite esim. http://www.metropolia.fi
WWW-Sivustojen suunnittelu
WWW-Sivustojen suunnittelu Miten WWW toimii Web-selain hakee Web-sivun HTML-kielisen kuvauksen Sivuun liittyvät kuvat (jpeg, gif, png) Sivuun liittyvät muut elementit Palvelimen URL-osoite esim. http://www.metropolia.fi
Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML
Järjestelmäarkkitehtuuri (TK081702) Ajax 2000-luvun alkuvuosina selainsotien rauhoituttua ohjelmistotalot alkoivat kehittää selainten luoman uuden ohjelmointiympäristön käyttötapoja. Syntyi AJAX (Asynchronous
Selaimen asetukset. Toukokuu 2014 1 (7) Selaimen asetukset. 1994-2014 Tikon Oy. All rights reserved.
Toukokuu 2014 1 (7) Selaimen asetukset Toukokuu 2014 2 (7) 1 Johdanto... 3 2 Windows... 3 3 Selaimet... 3 3.1 Yleiset asetukset (kaikki selaimet)... 3 3.1.1 Zoom-asetus... 3 3.1.2 Pop-up Blocker... 3 3.2
T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot
T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi
AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
ETÄPALVELU. HALTIK Videoportaali - osallistujan ohje
ETÄPALVELU HALTIK Videoportaali - osallistujan ohje 19.5.2015 Laitevaatimukset Tietokoneessa tulee olla asennettuna: Web-kamera Mikrofoni ja kaiuttimet tai kuulokkeet Tietokoneen internet selaimen tulee
Sähköiset sisällöt yleisiin kirjastoihin - hanke Turku 10.9.2013 Aija Laine aija.laine@turku.fi
Sähköiset sisällöt yleisiin kirjastoihin - hanke Turku 10.9.2013 Aija Laine aija.laine@turku.fi E-kirjalla on monia määritelmiä ja monta nimeä Tiedosto, joka käsittää kirjan lukijalle välittyvän sisällön
HTML ja CSS. Tästä se lähtee: portfolio-sivusto. Sivuston pääkansio, jonka sisällä on kaikki sivustoon kuuluvat alikansiot ja tiedostot.
HTML ja CSS Tästä se lähtee: portfolio-sivusto Sivuston pääkansio, jonka sisällä on kaikki sivustoon kuuluvat alikansiot ja tiedostot. index.html Sivuston pääsivu, joka avautuu selaimeen ensimmäisenä sivujen
XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:
XHTML - harjoitus Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa Tiedoston tallennus notepad (muistio) ohjelmassa: Jokaisen XHTML-dokumentin tulisi alkaa XML-määrittelyllä(engl.XML-prologue),
Tablet-tietokoneen ja älypuhelimen peruskäyttö. 4.11.2014 Jorma Flinkman
Tablet-tietokoneen ja älypuhelimen peruskäyttö 4.11.2014 Jorma Flinkman Wikipedia.fi 2 Mikä ihmeen tabletti? Taulutietokone (tai paneelitietokone tai tabletti engl. tablet personal computer eli tablet
Office 2013 - ohjelmiston asennusohje
Office 2013 - ohjelmiston asennusohje Tämän ohjeen kuvakaappaukset on otettu asentaessa ohjelmistoa Windows 7 käyttöjärjestelmää käyttävään koneeseen. Näkymät voivat hieman poiketa, jos sinulla on Windows
Visma Nova. Visma Nova ASP käyttö ja ohjeet
Visma Nova Visma Nova ASP käyttö ja ohjeet Oppaan päiväys: 2.2.2012. Helpdesk: http://www.visma.fi/asiakassivut/helpdesk/ Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai
Ohjeet Finna- julisteen PowerPoint- pohjan muokkaamiseen
Ohjeet Finna- julisteen PowerPoint- pohjan muokkaamiseen Ennen kuin aloitat: 1. Asenna tietokoneeseesi ilmainen Miso Regular fontti, jonka saat täältä: https://www.fontspring.com/fonts/marten- nettelbladt/miso
Verkkosivut perinteisesti. Tanja Välisalo 11.2.2009
Verkkosivut perinteisesti Tanja Välisalo 11.2.2009 WWW-sivujen vieminen omaan kotisivutilaan yliopiston mikroverkossa https://salasana.jyu.fi Klikkaa painiketta Activate WWW Klikkaa painiketta Activate
Skype for Business pikaohje
Skype for Business pikaohje Sisällys KOKOUSKUTSU... 2 ENNEN ENSIMMÄISEN KOKOUKSEN ALKUA... 4 LIITTYMINEN KOKOUKSEEN SKYPE FOR BUSINEKSELLA... 5 LIITTYMINEN KOKOUKSEEN SELAIMEN KAUTTA... 6 LIITTYMINEN KOKOUKSEEN
,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU
,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU Tässä pääsette tutustumaan Internet Explorerin (IE) käyttöön. Muitakin selainversioita löytyy, kuten esimerkiksi Netscape, Opera ja Mozilla. Näiden muiden selainten
Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne
Kotisivuohjeet Tässä ohjeessa käydään läpi kotisivujen tekemisen perusteet keskittyen html-koodiin ja sen ominaisuuksiin. Sivupohjissa ulkoasu ja rakenne on pääasiassa jaettu erilliseen css-tyylitiedostoon,
Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla
1 ENTITEETIT Tehtävä 1. Tietokoneet ja käyttöjärjestelmät käyttävät erilaisia merkkijärjestelmiä ja varsinkin Internetin alkutaipaleella aiheutti sen, että jotkut merkit eivät näkyneet kaikilla oikein.
Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.
3 HTML ja XHTML Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.
Ohjeita informaation saavutettavuuteen
Ohjeita informaation saavutettavuuteen Tarkoitus Kasvattaa tietoisuutta ja lisätä esteettömän informaation aiheen näkyvyyttä ja sen merkitystä elinikäisen tasapuolisen oppimisen mahdollisuuksista Tukea
Mobiili ennen desktoppia!
Liiketoiminta kehittyy, kehity sinäkin! Mobiili ennen desktoppia! Helsinki, Tampere, Turku, Tukholma, Göteborg www.tieturi.fi Copyright Tieturi 10.1.2011 1 Kysymys Pitääkö web-sivuston näyttää täsmälleen
1.1 3.1.2014 Westin Lisätty luku 6, käyttötapauskuvaukset.
Käyttäjävaatimukset Versio Päivämäärä Henkilö 1.0 XX.XX.2013 Kaikki PI-versio. 1.1 3.1.2014 Westin Lisätty luku 6, käyttötapauskuvaukset. 1. Liiketoiminnalliset tavoitteet 2. Käsitteet 3. Yleiskuva järjestelmästä
Internet-pohjaisen oppimisympäristön laadinta. Luento 3
Internet-pohjaisen oppimisympäristön laadinta Luento 3 Aiheena tänään Toteutustekniikoista yleisesti Selainriippumattomuudesta Hot Potatoes -ohjelmasta JavaScriptin perusteista 31.01.2013 IPOPPLA 2 Toteutustekniikoista
Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin
Visma Fivaldi Ohjeet Java web startin ja HTML5-työkalun aktivointiin Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri
Ennen varmenteen asennusta varmista seuraavat asiat:
NAPPULA-VARMENTEEN ASENNUSOHJE 1/17 Suosittelemme käyttämään Nappulaa uusimmalla versiolla Firefox- tai Chrome- tai Applen laitteissa Safariselaimesta. Tästä dokumentista löydät varmenteen asennusohjeet
SELIGSON & CO:n mobiilisovellus TASKUSALKKU
SELIGSON & CO:n mobiilisovellus TASKUSALKKU lyhyt käyttöopastus (9 sivua) helmikuu 2016, Android 5.0. tai uudempi 1 Sovelluksen lataaminen Seligson & Co Taskusalkku Android-puhelimille ladataan Googlen
Sami Hirvonen. Ulkoasut Media Works sivustolle
Metropolia ammattikorkeakoulu Mediatekniikan koulutusohjelma VBP07S Sami Hirvonen Ulkoasut Media Works sivustolle Loppuraportti 14.10.2010 Visuaalinen suunnittelu 2 Sisällys 1 Johdanto 3 2 Oppimisteknologiat
IT ja viestintäteknologia
IT ja viestintäteknologia 206 Verkkosivujen tuottaminen Kuva: Skills Finland / Markku Heikkilä Lajivastaavat Miikka Merikanto 1 / 12 Suomen Liikemiesten Kauppaopisto miikka.merikanto(at)businesscollege.fi
Kuvat. 1. Selaimien tunnistamat kuvatyypit
Kuvat Kuvia voi liittää xhtml-sivulle -elementillä -elementillä -elementillä lomakkeiden yhteydessä lähinnä painikenappeja taustakuvina -elementin background-attribuutilla tai
Tikon Web-sovellukset
Kesäkuu 2017 1 (8) Tikon Web-sovellukset Kesäkuu 2017 2 (8) 1 Johdanto... 3 2 HTML5 sovellukset... 3 2.1 Tuetut selaimet... 3 2.2 Mobiililaitteet... 3 3 Muita ohjeita... 5 3.1 Yhteensopivuus -tila (Internet
XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
Tuplaturvan tilaus ja asennusohje
Tuplaturvan tilaus ja asennusohje 1. Kirjaudu lähiverkkokauppaan omilla tunnuksillasi tai luo itsellesi käyttäjätunnus rekisteröitymällä Lähiverkkokaupan käyttäjäksi. a. Käyttäjätunnus on aina sähköpostiosoitteesi.
Epooqin perusominaisuudet
Epooqin perusominaisuudet Huom! Epooqia käytettäessä on suositeltavaa käyttää Firefox -selainta. Chrome toimii myös, mutta eräissä asioissa, kuten äänittämisessä, voi esiintyä ongelmia. Internet Exploreria
Punomo Tee itse -julkaisun tekeminen
Punomo Tee itse -julkaisun tekeminen Tässä pikaohje Uuden Punomon Tee itse -julkaisujen tekemiseen. Kun ensimmäinen juttusi on tehty tätä ohjetta noudattaen, seuraava homma hoituu maalaisjärjellä. Uudistuvan
Internetin hyödyt ja vaarat. Miten nettiä käytetään tehokkaasti hyväksi?
Internetin hyödyt ja vaarat Miten nettiä käytetään tehokkaasti hyväksi? Linkit Chrome https://www.google.com/intl/fi/chrome/browser/ Firefox http://www.mozilla.org/fi/ Opera http://www.opera.com/fi Vertailu
Ohje vanhemmille - näin alkuun Päikyssä
Ohje vanhemmille - näin alkuun Päikyssä Tunnuksen aktivointi ensimmäinen sisäänkirjautuminen Päikkyyn Huoltajana sinulle on luotu tunnus varhaiskasvatusyksikön toimesta matkapuhelinnumerosi perusteella.
DNA Prepaid WLAN Mokkula
DNA Prepaid WLAN Mokkula Mokkula käyttää normaalikokoista / suurempaa SIM-korttia. Irrota SIM-kortti kokonaisena ja laita se Mokkulaan alla olevan kuvan mukaisesti. Jos irrotat vahingossa pienemmän SIM-kortin,
Finnan ja kirjaston palveluiden ohjeita
Finnan ja kirjaston palveluiden ohjeita Sisältö 1. Kirjautuminen Haka-kirjautumisella... 2 2. Kirjastokortin liittäminen... 6 3. Lainojen uusiminen... 7 4. Teoksen varaaminen... 8 5. Hyllyvarauksen tekeminen...
KOTISIVUKONE ULKOASUEDITORI
KOTISIVUKONE ULKOASUEDITORI Kun olet luonut itsellesi kotisivut, voit aloittaa ulkoasun yksityiskohtaisemman räätälöimisen. Kotisivukone tarjoaa helppokäyttöisen ulkoasueditorin, jonka avulla saat sivujen
ipad-mainokset Yleisiä ohjeita ja tekniikka lyhyesti www.richie.fi
ipad-mainokset Yleisiä ohjeita ja tekniikka lyhyesti www.richie.fi Koko sivun ipad-mainoksissa yhdistyvät uusien teknologioiden ja printtimainonnan parhaat ominaisuudet: Koko sivun mainos ei keskeytä,
NÄYTÖN JAKAMINEN OPPILAILLE, JOTKA MUODOSTAVAT YHTEYDEN SELAIMELLA TAI NETOP VISION STUDENT -SOVELLUKSELLA
NÄYTÖN JAKAMINEN OPPILAILLE, JOTKA MUODOSTAVAT YHTEYDEN SELAIMELLA TAI NETOP VISION STUDENT -SOVELLUKSELLA Vision-ohjelmistoa käyttävät opettajat voivat nyt muodostaa luokan, jossa on yhdistelmä Windows-pohjaisia
Office_365_loppukäyttäjän ohje. 15.5.2015 Esa Väistö
Office_365_loppukäyttäjän ohje 15.5.2015 Esa Väistö 2 Sisällysluettelo Kuvaus... 3 Kirjautuminen Office_365:een... 3 Valikko... 4 Oppilaan näkymä alla.... 4 Opettajan näkymä alla... 4 Outlook (Oppilailla)...
edocker PUBLISH! -paketinhallinnan käyttöohje 9/2015
edocker PUBLISH! -paketinhallinnan käyttöohje 9/2015 Uusien EDTPLIB- ja PDF -pakettien vienti ohjatulla toiminnolla...3 Tiedoston tarkistus...3 Kohdejulkaisun valinta... 4 Numeron tiedot... 5 Yhteenveto...6
Finnan ja kirjaston palveluiden ohjeita
Finnan ja kirjaston palveluiden ohjeita Sisältö 1. Kirjautuminen Haka-kirjautumisella... 2 2. Kirjastokortin liittäminen... 6 3. Lainojen uusiminen... 7 4. Teoksen varaaminen... 8 5. Hyllyvarauksen tekeminen...
HTML5 Tutkielma Centria ammattikorkeakoulu 5.10.2012 Paavo Räisänen
HTML5 Tutkielma Centria ammattikorkeakoulu 5.10.2012 Paavo Räisänen Sisällysluettelo: 1: Esittely 2: Uusia ominaisuuksia 2.1: Canvas elementti 2.2: Video ja ääni 2.3: Lomakkeet 2.3.1: Ajanilmaus 2.3.2:
Kuva xhtml-sivulla. Mirja Jaakkola
Kuva xhtml-sivulla Mirja Jaakkola Sisältö 3. Kuva www-sivulla 4. img-elementti 5. Kuvan koko 6. Kuvan keskitys vaakasuoraan & kuvateksti 7. Kuvan tasaus pystysuoraan 8. Esimerkki: pystysuora tasaus eri
Helsingin Sanomat ipad
Helsingin Sanomat ipad Sovelluksen mainosaineistojen tekniset ohjeet: kokosivu ja etusivu 13.5.2013 SISÄLLYS ipad-mainokset 2 Tekniikka ja tiedostokoot 3 Orientaatio 4 Linkit: richie-modal-browser 4 Gesture
Siemens Webserver OZW672
Siemens Webserver OZW67 Climatix IC pilvipalvelu Kytke laite lämpöpumpun ohjaimeen Kytke laite verkkopiuhalla internetiin Mene nettiselaimella Climatix IC palveluun Luo käyttäjätili ja rekisteröi laite
SÄHKÖPOSTIOHJE. Opiskelijoiden Office 365 for Education -palveluun
SÄHKÖPOSTIOHJE Opiskelijoiden Office 365 for Education -palveluun 1 Ohjeen nimi Vastuuhenkilö Sähköpostiohje Järjestelmäasiantuntija Pekka Patrikka Voimaantulo 15.08.2013 Muutettu viimeksi 16.08.2013 Tarkistettu
Googlen palvelut synkronoinnin apuna. Kampin palvelukeskus Jukka Hanhinen, Urho Karjalainen, Rene Tigerstedt, Pirjo Salo
Googlen palvelut synkronoinnin apuna Kampin palvelukeskus 31.01.2018 Jukka Hanhinen, Urho Karjalainen, Rene Tigerstedt, Pirjo Salo Google-tili Jos käytät Gmail-sähköpostia niin sinulla on Google-tili (nn.nn@gmail.com)
Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36
!!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat
Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.
Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.2012 Hakemisto 1. Sivustot internetissä... 2 2. Yleistä... 2 3.
Storage IT EASY Tiedostopalvelimen kustomointi
Yritysesittely Storage IT EASY Tiedostopalvelimen kustomointi www.storageit.fi - Äyritie 8 D, 01510 VANTAA Salorantie 1, 98310 KEMIJÄRVI Vaihe 1 - Kirjaudu sisään Vaihe 2 - Klikkaa oikeasta yläreunasta
Digitaalisen median tekniikat. Luento 3: CSS
Digitaalisen median tekniikat Luento 3: CSS Luennot 1. Intro 2. XHTML 3. CSS Box Model Selektorit Esimerkkiä yms. 4. JavaScript 5. JavaScript-kirjastot & AJAX 6. Käytettävyys & saavutettavuus 7. Palvelinohjelmointi
Vaihdoitko puhelinta? Yhteystietojen siirto Lumian, iphonen ja Androidin välillä käy näin
Vaihdoitko puhelinta? Yhteystietojen siirto Lumian, iphonen ja Androidin välillä käy näin Tekniikka 11.10.2015 10:45 Olavi Koistinen, Helsingin Sanomat Yhteystietojen siirto Androidista iphoneen kuin Gmail-käyttäjätunnus.
3.11.2010. Web-sisällönhallintajärjestelmät. Sisältö. Mitä on web-sisällönhallinta?
Sisältö Mitä on web-sisällönhallinta? Tausta ja tavoitteet Käytännön prosessi Yleisesti Keskeiset ominaisuudet Sisällönhallintajärjestelmän valitseminen ja käyttöönotto Wordpress Joomla! Drupal Yhteenveto
Puuhailua Android-sovellus
Puuhailua Android-sovellus https://www.youtube.com/watch?v=_m4_wjviupw Jussi Parkkinen INTINU13A6 Sovelluksen aloitusruutu KitKat- tabletilla Xcover 2 Jelly Bean- puhelimen aloitusruutu ja sovelluksen
Sanoma Pro digikirjat ipad- ja Android- tableteilla. Kirjahyllyn toiminnot. Sisältötoiminnot. Digikirjojen rikasteet. Kirjahylly- ja luettelonäkymät
Sanoma Pro digikirjat ipad- ja Android- tableteilla Yleistä Laitteistovaatimukset Sisäänkirjautuminen Kirjahyllyn toiminnot Kirjahyllyn ilmoitukset Sisältötoiminnot Digikirjojen lataaminen Digikirjojen
Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta.
Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta. Sisäänkirjauduttuasi näet palvelun etusivulla helppokäyttöisen hallintapaneelin. Vasemmassa reunassa on esillä viimeisimmät tehdyt muutokset
KÄYTTÖOHJE. Servia. S solutions
KÄYTTÖOHJE Servia S solutions Versio 1.0 Servia S solutions Servia Finland Oy PL 1188 (Microkatu 1) 70211 KUOPIO puh. (017) 441 2780 info@servia.fi www.servia.fi 2001 2004 Servia Finland Oy. Kaikki oikeudet
Google Cloud Print -opas
Google Cloud Print -opas Versio 0 FIN Merkintöjen selitykset Tässä käyttöoppaassa käytetään seuraavaa vinkkityyliä: Vinkit kertovat, miten eri tilanteissa tulee toimia tai miten toimintoa voi käyttää muiden
UpdateIT 2010: Editorin käyttöohje
UpdateIT 2010: Editorin käyttöohje Käyttäjätuki: Suomen Golfpiste Oy Esterinportti 1 00240 HELSINKI Puhelin: (09) 1566 8800 Fax: (09) 1566 8801 E-mail: gp@golfpiste.com Sisällys Editorin käyttöohje...
Mobiilitulostus-/- skannausopas Brother iprint&scanille (ios)
Mobiilitulostus-/- skannausopas Brother iprint&scanille (ios) Sisällysluettelo Ennen Brother-laitteen käyttöä... Kuvakkeiden selitykset... Tavaramerkit... Johdanto... Lataa Brother iprint&scan App Storesta...
Mirva Jääskeläinen Espoon kaupungin työväenopisto
Mirva Jääskeläinen Espoon kaupungin työväenopisto Windows Phonet yleisesti Nokian Lumiat Vanhemmat WindowsPhone 7 Uudemmat WindowsPhone 8 Samsungin Windows Phone mallit HTC:n mallit www.windowsphone.com
Tekniset vaatimukset Tikon 6.4.1
Marraskuu 2014 1 (22) Tekniset vaatimukset Marraskuu 2014 2 (22) 1 Ohjelmapalvelin... 6 1.1 Ohjelmat... 6 1.1.1 Tuetut käyttöjärjestelmät... 6 1.1.2 Muut tarvittavat ohjelmat... 6 1.2 Palvelin (Suositus
Käytettäväksi QR-koodin lukulaitteen/lukijan kanssa yhteensopivien sovellusten kanssa
Xerox QR Code -sovellus Pika-aloitusopas 702P03999 Käytettäväksi QR-koodin lukulaitteen/lukijan kanssa yhteensopivien sovellusten kanssa Käytä QR (Quick Response) Code -sovellusta seuraavien sovellusten
Alma-mobiiliverkosto aineisto-ohjeet. Päivitetty 13.11.2014
Alma-mobiiliverkosto aineisto-ohjeet Päivitetty 13.11.2014 Rich media ratkaisut helposti Alman medioihin Seuraavat mainosmuodot toteutetaan kaikkiin Alman mobiilipalveluihin ilman teknisiä tuotantokustannuksia:
Älypuhelimet. Sisällysluettelo
Älypuhelimet Jussi Huhtala Sisällysluettelo Älypuhelimen määritelmä Historia Laitteistoarkkitehtuuri Käyttöjörjestelmät Android Symbian ios Yhteenveto 1 Älypuhelin Puhelin joka sisältää normaalit puhelimen
Web-sisällönhallintajärjestelmät
Web-sisällönhallintajärjestelmät Sisältö Mitä on web-sisällönhallinta? Tausta ja tavoitteet Käytännön prosessi Web-sisällönhallintajärjestelmät Yleisesti Keskeiset ominaisuudet Sisällönhallintajärjestelmän
Langattoman kotiverkon mahdollisuudet
Langattoman kotiverkon mahdollisuudet Tietoisku 5.4.2016 mikko.kaariainen@opisto.hel.fi Lataa tietoiskun materiaali netistä, kirjoita osoite selaimen osoitelokeroon: opi.opisto.hel.fi/mikko Tietoverkot
Ammattijärjestäjä Aulasvuori Www-projektin kuvaus
Ammattijärjestäjä Aulasvuori Www-projektin kuvaus Minne Seppälä Avat 2014 Dokumentaatio 1 PROJEKTIN KUVAUS... 3 1.1 Projektin aloitus... 3 1.2 Aikataulu... 4 1.3 Kustannusarvio... 4 2 ULKOASU... 5 2.1
Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3
Uutisjärjestelmä Vaatimusmäärittely Versio 1.3 Sisällys 1 Muutoshistoria... 4 2 Viitteet... 4 3 Sanasto... 4 3.1 Lyhenteet... 4 3.2 Määritelmät... 4 4 Johdanto...5 4.1 Järjestelmän yleiskuvaus... 5 4.2
oppimispeli esi- ja alkuopetusikäisten lasten matemaattisten taitojen tukemiseen
oppimispeli esi- ja alkuopetusikäisten lasten matemaattisten taitojen tukemiseen ILMAINEN Lukimat-verkkopalvelun (www.lukimat.fi) kautta saatava tietokonepeli EKAPELI-MATIKKA Ekapeli-Matikka on tarkoitettu
VirtuaaliAMK Työasemakäyttöliittymien suunnittelu > 80 % 80 60 % 60 50 % < 50 % Suhteellinen osuus maksimiarvosta (%)
Oppimisaihion arviointi / Arvioinnin tulos 9 Aineiston arvioinnin tulos arviointialueittain VirtuaaliAMK Työasemakäyttöliittymien suunnittelu > 80 % 80 60 % 60 50 % < 50 % Arviointialue Ominaisuuksien
WWW-sivujen Verkkosivujen ulkoasu (CSS)
WWW-sivujen Verkkosivujen ulkoasu (CSS) T-111.1100 Digitaalisen median työvälineet (3 op) T-111.1100 Digitaalisen median työvälineet (3 op) Markku Laine DI Pia Tukkinen Mediatekniikan laitos Mediatekniikan
AirPrint-opas. Tämä käyttöopas koskee seuraavia malleja:
AirPrint-opas Tämä käyttöopas koskee seuraavia malleja: HL-340CW/350CDN/350CDW/370CDW/380CDW DCP-905CDW/900CDN/900CDW MFC-930CW/940CDN/9330CDW/9340CDW Versio A FIN Kuvakkeiden selitykset Tässä käyttöoppaassa
ELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE
VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE JULKAISUJÄRJESTELMÄÄN KIRJAUTUMINEN. Osoitekenttään kirjoitetaan www.domain.fi/admin. Kirjoita käyttäjätunnus: xxxxxx. Salasana:
HTML5 sovellusalustana
HTML5 sovellusalustana Mitä HTML5-sovellukset ovat? 12 HTML5 sovellusalustana Mitä HTML5-sovellukset ovat? HTML5:n kaksoismerkitys Ilmauksella HTML5 on selvästi kaksi eri merkitystä. Sovellusten kehittäjien
Oy Karltek Ltd internet-sivujen uusiminen. Eveliina Aaltonen
Oy Karltek Ltd internet-sivujen uusiminen Eveliina Aaltonen Audiovisuaalisen viestinnän ammattitutkinto Eurajoen kristillinen opisto, 2015 1 ASIAKAS JA PROJEKTI... 3 1.1 Asiakas...3 1.2 Projektin kuvaus...3
Käyttöohje HERE Maps. 1.0. painos FI
Käyttöohje HERE Maps 1.0. painos FI HERE Maps HERE Maps näyttää lähellä olevat kohteet ja opastaa sinut perille. Voit etsiä kaupunkeja, katuja ja palveluja löytää perille tarkkojen reittiohjeiden avulla
Google Sites: sivun muokkaaminen (esim. tekstin, kuvien, linkkien, tiedostojen, videoiden ym. lisääminen)
Google Sites: sivun muokkaaminen (esim. tekstin, kuvien, linkkien, tiedostojen, videoiden ym. lisääminen) 1. Valitse sivu, jolle haluat lisätä sisältöä tai jota haluat muutoin muokata, ja klikkaa sitä.
Code Camp for Girls. Sanna Nygård. Lokakuussa 2015 www.frantic.com/codecamp/
Code Camp for Girls Sanna Nygård Lokakuussa 2015 www.frantic.com/codecamp/ HTML? HTML? HyperText Markup Language Ei ole nettisivua ilman HTML:ää Rakenteinen, hierarkkinen dokumentti Vain rakenne ja sisältö,
Ohje vanhemmille - näin alkuun Päikyssä
Ohje vanhemmille - näin alkuun Päikyssä Tunnuksen aktivointi ensimmäinen sisäänkirjautuminen Päikkyyn Huoltajana sinulle on luotu tunnus varhaiskasvatusyksikön toimesta matkapuhelinnumerosi perusteella.
Ohje sähköiseen osallistumiseen
Ohje sähköiseen osallistumiseen Kepan kevätkokouksessa käytetään Adobe Connect -sovellusta, joka mahdollistaa sähköisen osallistumisen kokouksiin. Kokoukseen osallistutaan henkilökohtaisella Adobe Connect
6 XML-työkalut 1. 6 XML-työkalut
6 XML-työkalut 1 6 XML-työkalut XML:n periaatteiden tutustumisen jälkeen on helpompi tutustua XML-dokumenttien käsittelyyn ja katseluun suunniteltuja työkaiuja. XML:n yleistymisen pahin pullonkaula on
Ohjeita kirjan tekemiseen
Suomen Sukututkimustoimisto on yhdessä Omakirjan kanssa tehnyt internetiin uuden Perhekirja-sivuston. Se löytyy osoitteesta: www.omakirja.fi -> Kirjat -> Perhekirja tai http://www.omakirja.fi/perhekirja?product=6
Olli-Pekka Puisto WEB-SOVELLUKSEN KEHITYSYMPÄRISTÖN VALINTA
Olli-Pekka Puisto WEB-SOVELLUKSEN KEHITYSYMPÄRISTÖN VALINTA WEB-SOVELLUKSEN KEHITYSYMPÄRISTÖN VALINTA Olli-Pekka Puisto Opinnäytetyö Kevät 2013 Tietojenkäsittelyn koulutusohjelma Oulun seudun ammattikorkeakoulu
Webinaariin liittyminen Skype for
Webinaariin liittyminen Skype for Business Web Appin kautta Ohjeet Sähköpostin Liity webinaariin tästä -linkki Kun klikkaat Osallistumisohjeet webinaariin -sähköpostiviestissä olevaa Liity webinaariin