Jatkossa sekä Symbian- että Maemo-alustoihin perustuvien laitteiden sovelluskehitys tulee siirtymään nykyisin käytössä olevista rajapinnoista Qt-rajapintoihin. Näin ollen yhden sovelluksen pitäisi toimia samalla koodilla niin Nokian Symbian- kuin myös Maemo-laitteissa. Tämä on erittäin tärkeä asia Nokian useampaan eri käyttöjärjestelmään perustuvan strategian kannalta.
Qt 4.6 tuo mukanaan uusina asioina niin laajempaa järjestelmätukea, tehokkaita uusia grafiikkaominaisuuksia, parannettua tehokkuutta kuin myös tuen monikosketukselle sekä erilaisille eletoiminnoille.
Alta löytyvillä viidellä videolla esitellään muun muassa Qt 4.6:ta mobiilialustoilla, sen monikosketustoimintoja sekä erityisesti toimintaa Maemo 5:n sekä Symbianin päällä - kaikkea, mitä Qt 4.6:lla on mahdollista tehdä.
Tsekkaa kaikki Videolla-juttumme!
Kommentit (26)
En nyt ymmärtänyt, mitä uutta tämä tuo verrattuna Applen SDK:hon?
Qt on hemmetinmoinen edistysaskel verrattuna vanhaan Symbian-koodaukseen. Lisäksi Linuxin KDE-gui on rakennettu norjalaisen Qt:n päälle, joten jos hommat tekee oikein, niin sama softa pyörii niin Windowsissa, Linuxissa, Symbianissa kuin Maemossa.
Lisäksi Qt on koodarille miellyttävä alusta. Kirjastot ovat fiksusti jaoteltuja ja käyttöliittymät järkeenkäypiä.
ensimmäiselle kommentoijalle: lienet trollaaja, mutta väännetään nyt jälleen kerran ratakiskosta:
applen sdk: ohjelmat toimivat iphonessa
qt sdk: ohjelmat toimivat win,osx,linux,symbian,maemo etc. ympäristöissä
@3
Kiitos vaan, mutta sen kyllä ymmärsin. Kysyinkin, mitä UUTTA tämä tuo puhelinten sovellusten kehitykseen ja miten tämä on parempi kuin Applen vastaava SDK?
@4
Oletko tyhmä tai jotain? Nyt ei taaskaan ollut kyse applesta vaan nokiasta ja mitä uutta NOKIAN luureihin on tulossa.
jos toimivat:
http://talk.maemo.org/showthread.php?t=34686
näinköhän: http://talk.maemo.org/showthread.php?t=34686
"ohjelmat toimivat win,osx,linux,symbian,maemo etc. ympäristöissä"
Kuulostaa tosi hyvältä, mutta en ole ihan varma haluanko pienellä näytöllä sormin käytettäväksi suunniteltua softaa tietokoneelleni, tai vastaavasti isolla näytöllä hiirellä käytettäväksi suunniteltua softaa puhelimeeni...
Eli käyttöliittymät joudutaan tekemään uudestaan jokatapauksessa, *jopa* eri käyttöjärjestelmien välillä (ellei 4.6 tuo sitten jotain todella mullistavaa)
leonin linkki oli varsin mielenkiintoista luettavaa, joka vaikutti lyövän lisäsärön tuohon "kirjoita kerran toimii kaikkialla"-väitteeseen
6-8, olisikohan se avain kuitenkin kohta ", joten jos hommat tekee oikein". tietenkin koodari voi aina olla välittämättä siirrettävyyden edellytyksistä.
Miten, Mikko, teet hyvän, siirrettävän *käyttöliittymän* kun ruudun koko ja osoituslaiteen koko ja mahdollisesti määrä voivat olla huomattavan erilaisia?
Myöskin laitteiden teho, grafiikkaominaisuudet ja vaikka kyky näyttää useita ikkunoita samanaikaisesti voivat vaikuttaa käyttöliittymäsuunnitteluun kovastikin.
jonahan hyvä, se riippuu sovelluksesta. joskus onnistuu helposti, toisinaan ei. se että sovellus on siirrettävä toisiaan muistuttavien laitteiden välillä joissa vain sattuu olemaan eri käyttöjärjestelmä on jo iso askel. jos otat suunnitteluvaiheessa huomioon sen että ruudun koko voi olla erilainen niin voit hyvinkin onnistua suunnittelemaan ohjelmasi niin että se on siirrettävä. jos sinulla ei ole alla kirjastoa joka ei siirrettävyyttä tue niin silloin et ainakaan tee siirrettävää koodia et sitten millään.
kuten todettua niin ympäristö ei välttämättä pakota siirrettävyyteen, mutta silti mahdollistaa sen. otatko hyödyn tuosta irti vai et, jää loppupeleissä oman harkinnan varaan. joskus kannattaa, joskus ei.
>Miten, Mikko, teet hyvän, siirrettävän *käyttöliittymän* kun ruudun
>koko ja osoituslaiteen koko ja mahdollisesti määrä voivat olla
>huomattavan erilaisia?
Jos teet PClle softat, niin tilanne on tuo, et edes tiedä minkä kokoinen näyttö, näytön koko ei kerro mitään minkä verran ikkunalle tilaa. Harvalla softalla oletettavissa koko ruutua käytettävissä.
QT pystyy kuitenkin pureutuun hyvin kuvailemaasi ongelmaan, ei silläkään pystytä keirtään rauta rajoituksia, jos mobiilissa on resursseja joita työpöydälle ei ole, niin ei QT niitä taijo, sama toisin päin.
>Myöskin laitteiden teho, grafiikkaominaisuudet ja vaikka kyky
>näyttää useita ikkunoita samanaikaisesti voivat vaikuttaa
>käyttöliittymäsuunnitteluun kovastikin.
Mitähän sovellusta olet nyt tekemässä ? Jos tehdään sovellusta, sen sovelluksen idean voimalla, idealla joka tarjoaa jotain oikeaa lisäarvoa, niin QTn ajatus koodaa kerran käytä kaikissa vastaa siihen huutoon että kustannuksia halutaan alas. Jos haluaa tarjota jollekkin laiteelle lisäarvo tekemällä siihen räätälöidyn UIn, niin QT:n idea siinäkin suureksi avuksi.
Jos idea perustuu jonkin yksittäisen laitteen spesiaali ominaisuuden hauskaan esittelyyn, niin sitten tehdään sen mukaan. Harvassa softassa ohjelman logiikka on kuitenkin UIssa.
Totta että jotkut koodailevat oman UIn, mikä vie herkästi projektin pahasti nurkkaan.
Olen edelleenkin erittäin vahvasti sitä mieltä että käyttöliittymää joka on samanaikaisesti hyvä sekä työpöydällä että mobiililaitteessa on lähes mahdoton tehdä. Yhdessä käytetään vierityspalkkeja, toisessa kineettistä skrollausta, kolmannessa multitouchia ja niin edespäin. Näyttöjen DPI:t ovat aivan eri suuruisia ja hiirellä osuu muutaman pikselin alaan, sormella ei läheskään niin helposti.
Jo pelkästään eri työpöytäkäyttöjärjestelmien välillä (Linux, windows, OSX) samaa käyttöliittymäkoodia käyttävät softat ovat usein aikamoinen kauhistus.
> QTn ajatus koodaa kerran käytä kaikissa vastaa siihen huutoon että kustannuksia halutaan alas.
Totta, kustannuksia varmasti saadaan alas, laadun kustannuksella. Jokaiselle alustalle natiivi UI (allaolevat kerrokset ovat yhteisiä) on vaikuttanut siltä oikealta konseptilta ainakin tähän asti.
Missä voin ladata Qt 4.6 Nokia n97:aan?
Tottakai UI:tä joudutaan muokkaamaan ja jopa tekemään kokonaan uudestaan uudelle alustalle, mutta jos tiimi tuntee Qt:n niin UI:n tekemiseen voidaan käyttää samoja tuttuja luokkia kuin muillakin alustoilla. Toinen vaihtoehto on tehdä jokaiselle alustalle UI käytännössä nollasta käyttäen alustan omia kirjastoja.
Pointti on nimenomaan se että vaihdettaessa alustaa ei tarvitse vaihtaa kirjastoja joita UI:n tekemiseen käytetään. Ja Qt on muutakin kuin pelkkä UI-kirjasto.
>Olen edelleenkin erittäin vahvasti sitä mieltä että käyttöliittymää
>joka on samanaikaisesti hyvä sekä työpöydällä että
>mobiililaitteessa on lähes mahdoton tehdä. Yhdessä käytetään
>vierityspalkkeja, toisessa kineettistä skrollausta, kolmannessa
>multitouchia ja niin edespäin.
Ja ongelma oli missä ? jos tekee jotain apista, niin miksi tuosta kantaa murhetta, jos ei ole itse koodamassa aivan omanlaista UI:ta.
> Näyttöjen DPI:t ovat aivan eri suuruisia ja hiirellä osuu
> muutaman pikselin alaan, sormella ei läheskään niin helposti.
Tarkkanäyttöisissä mobiililaitteissa DPI:t voivat olla huomattavasti suurempia, mutta ei PCllekkään suunnitellessa voi tehdä sen suhteen oletuksia, tarkkoja näyttäjä sielläkin. taikka olettaa että käyttäjä käyttäisi jotain tiettyä osoitus tekniikkaa.
Ei QT käyttö kuitenkaan tarkoita että sinun pitäisi tehdä sovellus jossa olisi sama UI joka alustalle, idea ja vahvuus on siinä että voit tehdä QTllä monelle alustalle ja laite tyypille softan, vaikka tekisitkin omat versiot jokaiselle.
Toi Qt for Maemo 5 pätkä näytti hyvältä. Pystytila ja kaikki. :) Vaikutti vielä nopeemmaltakin kuin nykynen. Varmaan ylikellotettuja luureja demoissa... =)
> ei PCllekkään suunnitellessa voi tehdä sen suhteen oletuksia, tarkkoja näyttäjä sielläkin. taikka olettaa että käyttäjä käyttäisi jotain tiettyä osoitus tekniikkaa.
Käytännössä tehdään oletus siitä, että käyttäjä käyttää pointteria ja että käyttäjän näytön dpi on suunnilleen normaali 100-130 eikä esim. 267 kuten N900:ssa. Ja vaikka kehittäjä ei itse tätä tietoisesti tekisi (kannattaisi tehdä), tulee se pitkälti jo alustan tarjoamista natiiveista kontrolleista ja käyttöliittymäohjeista.
DPI:n huima ero ja sormen ja pointterin kokoero takaavat sen että mobiililaitteeseen ja desktopille ei kelpaa sama UI (katso vaikka reaalikokoisia N900 screenshotteja). Muitakin syitä toki on.
Automaattilayout+suurentaminen tai pienentäminen ei ole oikea ratkaisu kuin aivan triviaaleimmissa tapauksissa. Tästä hyvänä esimerkkinä Windows Mobilen ensimmäiset versiot, vaikka niitä käytettiinkin tikulla.
> vahvuus on siinä että voit tehdä QTllä monelle alustalle ja laite tyypille softan, vaikka tekisitkin omat versiot jokaiselle.
Eli mainos onkin redusoitunut muotoon "yhtä monta versiota, mutta tutuilla työkaluilla". Varmasti siitäkin jotain säästöjä tulee.
Ja puhun siis nimenomaan käyttöliittymästä, alemman tason palikat kannattaa toki tehdä suhteellisen alustariippumattomasti, on työkaluna sitten Qt tai joku muu.
kylläpä nyt takerrutaan lillukanvarsiin. joo jos teet täysin erityyppisille laitteille sovelluksia niin kyllä myös qt:n kanssa pitää ottaa laitteen erot huomioon. tosin myös sovellus on todennäköisesti erilainen jos ei jopa ihan eri joten hui kamalaa.
jos taas koodaat samanlaiselle laitteelle samanlaista sovellusta niin qt helpottaa asiaa kummasti. erityisesti helpotusta tulee jos ollaan tekemässä nokian laitteille ohjelmia. tähänhän qt nimenomaan on suunnattu.
mikä asiassa oikein on ylitsepääsemättömän vaikeaa hahmottaa?
>Eli mainos onkin redusoitunut muotoon "yhtä monta versiota, mutta
>tutuilla työkaluilla". Varmasti siitäkin jotain säästöjä tulee.
Tulee, Mutta idean voi toteuttaa myös "yhdellä" versiolla alusta riippumattomasti. (no totta että ei kaikissa tapauksissa riitä edes yksi versio yhdelle alustalle)... Mutta ymmärtä kuitenkin.
Jos nyt kuitenkin mietitään asikasta, tehdään jokin softa, yllättäen mobiilipainoitteinen, lähdetään toimimaan pienimmän yhteisentekijän mukaan. Niin QTllä on aidot mahdollisuudet se jatkosssa toteuttaa. Käyttäjällä voi sitten olla Symbian, Maemo, Windows, OS X. tadaa softa tuotantokäytössä. Jos haluaa panostaa ja sille löytyy kysyntää niin voiahn sitä optimoida vaikka mallikohtaisia versioita.
QT ei estä kuitenkaan tekemestä joka alustalla ko. alustan optimi kehitysympäristöllä, joidenkin softien osalta niin pitää tehdäkkin.
Nokian ajatus on menossa siihen suuntaan että sen älypuhelimiin tehtävän softakehityksen voisi hoitaa QTllä, mikä tietenkin tärkeää Nokialle jos ja kun on tarkoitus Symbiania ja Memoa tuupa rinna markkinoille ja mahdollisesti jatkaa Windows ja/tai Maemo miniläppäreitä.
QT on myös PC puolella tärkeä. Ilmeisesti tarkoitus tuoda yhtiön palveluita sovellusten muodossa työpöydälle, niin ideana on tehdä ne QTllä ja alentaa näin OS riippuvuutta.
> jos teet täysin erityyppisille laitteille sovelluksia niin kyllä myös qt:n kanssa pitää ottaa laitteen erot huomioon. tosin myös sovellus on todennäköisesti erilainen jos ei jopa ihan eri joten hui kamalaa.
Noniin, olemme vihdoin siis samaa mieltä siitä että ketjun alussa mainittu "sama softa kaikille alustoille" on ei-triviaalissa tapauksessa pelkkää puppua tai erittäin huonolaatuinen (lähes) jokaisella.
> erityisesti helpotusta tulee jos ollaan tekemässä nokian laitteille ohjelmia. tähänhän qt nimenomaan on suunnattu.
Parin vuoden päästä väitteesi voi olla oikean suuntainen, tänä päivänä ei. Qt on juuri saatu pyörimään Nokian kännyköillä, tosi virallista tukea ei esim. N900:lle ole, Sympparin tuen virallisuudesta ei ole tietoa. En voi valitettavasti allekirjoittaa väitettäsi ainakaan vielä.
> lähdetään toimimaan pienimmän yhteisentekijän mukaan
Nimenomaan tämä on se virhe, joka usein tehdään. Täysin väärä lähestymistapa. Halpa ehkä, ja erittäin todennäköissti huono tuote kaikille tai lähes kaikille alustoille.
Kuulostaa Finnairmaiselta ratkaisulta, vastataan kilpailuun huonotamalla tuotetta. Ei näin.
>Nimenomaan tämä on se virhe, joka usein tehdään. Täysin väärä
>lähestymistapa. Halpa ehkä, ja erittäin todennäköissti huono tuote
>kaikille tai lähes kaikille alustoille.
En ole aivan samaa mieltä. Usein mokataan siinä että tehdään suurimman tekijän mukaan. saadaan ehkä jotain kivaa aikaan mutta vain harvalle.
QT ei ole ongelma jos tehdään kapealle laitealustalle softaa, ei pidä ajatella toisia pois sulkevaksi.
En ymmärrä miksi pidetään ongelmana että on väline millä voi tehdä softan, jota voi ajaa Symbianista aina työpöytä käyttäjärjestelmiin. En ymmärä mikä menee pieleen jos softa toimii hienosti siinä taskulaitteessa ja se toimii myös siinä miniläppärissä. Ei kaiken pöytäkone softan tarvitse olla raskasta ja mammuttitautista, jotain outoa jos softa vie tai jopa vaatii koko ruudun jossain läppärissä.
QT ei edelleenkään vaadi että softasta on tehdätä vain yksi versio joka toimii joka alustassa, versiohallinnan kannalta helpottaa kummasti myös sovitettujen versioiden tekemistä.
Javalla on yritetty samansuuntaista ja se on osittain onnistunut, mutta ei aivan niin kuin kuviteltiin aikoinaan. QT tarjoaa erillaisen lähestymistavan ongelmaan.
> En ole aivan samaa mieltä. Usein mokataan siinä että tehdään suurimman tekijän mukaan. saadaan ehkä jotain kivaa aikaan mutta vain harvalle.
Mielestäni on järkevämpää tehdä hyvä tuote, siis ottaa varsin high end pohjaksi suunnittelussa. Jos se onkin vain pienelle ryhmälle aluksi (ei välttämättä edes käytännössä ole ole jos markkinointi ja ohjelmiston jakelu ovat kohdallaan) tulee tuo ryhmä kasvamaan nopeasti puhelinten kehittyessä seuraavan vuoden tai kahden aikana. Myöskään potentiaalinen käyttämäärä ei ole kauhean relevantti mittari, toteutunut käyttäjämäärä on.
Jos taas otetaan vaatimukseksi että softa toimii myös 320x240 S60 laiteessa on se jo projektin valmistuessa puolen vuoden päästä aika rajoittunut ja vanhentunut, puhumattakaan siitä mitä tulevaisuus tuo tullessaan.
>Jos taas otetaan vaatimukseksi että softa toimii myös 320x240 S60
>laiteessa on se jo projektin valmistuessa puolen vuoden päästä aika
>rajoittunut ja vanhentunut,
Mitähän softaa nyt oikein suunnittelet ? ilmeisesesti ajattelen vain sitä ja että mitään muita ohjelmia ei olekkaan.
QTllä ei kannatta vielä lähteä julkaistavaa softaa tekemään s60 3rd koneille.
Moni sovelluksia joilla visiomasi kauheus, 320+240 sta johonkin HDredy tarkkuuteen ei ole lainkaan ongelma. jos toimii pienessä toimii isommassakin.
En tarkoita etteikö olisi monia sovelluksia joille näytön tarkkuden ja muodon vaihtuminen aiheuttaisi päänvaivaa, jopa niin paljon että pitää koodata kokonaan uusi softa.
Ei tarkoitus riidellä, tulee vain mieleen monet webpuolen tapaukset joille asian on monesti ylitsepääsemätön ongelma, vaikka monesti ongelma on varsin pieni, pienempi ongema kuin jokin värisävyn valinta, eli enemmänkin asenne kysymys ettei voida tehdä tulostusta niin että taipuu myös pieneen ikkunaan.
> Mielestäni on järkevämpää tehdä hyvä tuote,
Hyvä softa ei ole softa jota asiakas ei voi käyttää. Jos softamies lähtee siitä että mä teen tälläisen, vaihda sä sun kamas ja asentees sellaiseksi että tämä toimii. Sillä asiakkaalla voi olla kymmenen muuta syytä käyttää jotain toista kokoonpanoa tai jopa sekakokoonpanoa.
Entistä enemmän siellä liikkuvalla kentällä on tulevaisuudessakin monenmoista laitetta, tavallisista pienistä älypuhelimista, läppäreihin.
Jos mielessä on sovellus jonka aika on joskus tulevaisuudessa, eikä sitä ole tarkoitus ottaa tuontokäyttöön nyky ympäristössä, niin toki sieltä tulevaisuudesta haettava se pienin tekijä.
QT:lla on ihan onnistuneitakin esimerkkejä (kuten vaikka Picasa) mikä näyttää milestäni erittäinkin hyvältä.
Samoin QT hoitaa aika monta ongelmaa mikä tulee vaikka kun siirretään desktop ohjelma mobiililaitteeseen kuten esim. alasvetovalikot (file, edit jne.) automaattisesti.
QT:n tarkoituksena on _minimoida_ tarvittavat muutokset, tehdä tietyt alustariippuvaiset asiat automaattisesti jne. Joskus mitään muutoksia sorsaan ei edes tarvita, mutta useimmiten on varmaan niin että kehittäjä tekee joitain muutoksia ottaakseen täyden hyödyn irti kulloisestakin alustasta. Symbian ja Maemo ohjelmat tulevat toimimaan hyvin todennäköisesti samasta sorsasta uudelleenkääntämällä.