Tällä hetkellä kurssin latauskuningas on Ville Valta, yli 12 000 latausta eli suunnilleen Lieksan asukasluku. Mutta kuka voittaa hopeamitalin?
Kurssilla opit tekemään kännykkäohjelmia PhoneGapilla (html5+javascript). Pääset myymään ohjelmaasi maailmanlaajuisesti Google Play:ssa.
w43 Hello Cordova World!
(w44 ei lähiopetusta TIP valintakokeen takia)
w45 Cordova API:t
w46 Animointi, Processing.js. Projektisuunnitelman DL.
w47 Yhteydet ulkoisiin palveluihin Kertausta ja harjoituksia
w48 Sovellusten myynti. Paketointi Google Play -kauppaan.
w49 ke 11-14: Omat projektit. Toivottu extra ilmoittautuneille.
(w49 ei opetusta, itsenäisyyspäivänä)
w50 Projektien esittely.
Aikatauluun voi tulla muutoksia vielä kurssin kuluessa.
Lili Aunimo opetti kurssin ensimmäisen puolikkan, 4. periodi w34-w41. Tero Karvinen opettaa toisen puolikkaan, 5. periodi w43-w50.
Tunnit ovat torstaisin klo 11-14 innoluokassa h3007.
Suoritukset 5p
- Oma projekti – kännykkäohjelma
- Läksyt
- Aktiivinen osallistuminen lähiopetukseen
Läksyt pitää palauttaa ajallaan, aina ennen seuraavaa tuntia. Ne saa julkaista blogissa, jolloin Moodleen voi palauttaa linkin. Jos et uskalla tai muuten halua julkaista töitäsi, myös ei-julkinen palautus esim. Moodleen tai piilotettuun URL:iin onnistuu – mutta kannattaa julkaista. Läksyt käydään läpi kunkin tunnin alussa. Arvosana läksyistä tulee vasta koko läksypaketin palautuksen yhteydessä kurssin lopuksi.
Kotiläksyn palautus
Jokaisesta ohjelmasta oma sivu.
- Nimi
- Yhden lauseen kuvaus
- Status (ei toimi / alpha / beta / release)
- Ruutukaappaus
- Lisenssi (suositus: GPL v2)
- APK-asennuspaketti
- Lähdekoodi (zip tai tar.gz)
- Kuvaus siitä, miten ohjelma teknisesti toimii
- Linkit käytettyhin kirjastoihin ja standardeihin
Sivun perusteella jokaisen kaduntallaajan pitää heti ymmärtää, mitä ohjelma tekee. Sivut saa kirjoittaa suomeksi tai englanniksi.
Statusvaihtoehdot ovat “ei toimi” (vielä), alpha eli vain ohjelmoijille, beta eli kaikki voivat etsiä bugeja ja release eli valmis.
Linkkejä omiin kurssilaisten omiin kännykkäohjelmiin saa laittaa tämän sivun kommentteihin. Muistathan linkittää myös kurssiin.
Linkkejä
Haaga-Helia
Mobiilituotekehitys bus4tn008-2 Moodlessa
Mobiilituotekehitys opinto-oppaassa
PhoneGap / Cordova
Cordova 2.1.0 API Documentation
Hyödyllisiä kirjastoja
Learning Processing.js
Processing.js reference
Khan Academy Computer Science (Processing.js)
Gettings Started with OpenLayers and OpenStreetMap
Ohjelmien myyminen
Android Dashboards (tilastoja Google Play:sta)
PhoneGap.com/app
w43 läksy: Asenna läppärille Xubuntu 12.04 amd64. Käännä “Hello Cordova” ja asenna tarvittavat sovellukset.
Keksi oma ohjelma käyttäen yhtä valitsemaasi Cordova API:a. Tee ohjelma, jolla on tarkoitus.
Vinkkejä kotitehtäviin
Ohjelmien kotisivuille tulevat asiat (tässä esim. “keksi oma ohjelma käyttäen valitsemaasi Cordova API:a”) on kuvailtu yllä otsikolla “Kotiläksyn palautus”.
Raportin kirjoittaminen asennuksista ja testeistä (tässä esim. asennus ja Hello world)
http://terokarvinen.com/2006/raportin-kirjoittaminen-4
Esimerkkejä toisten kurssien kotitehtäväpalautuksista
Tomin raportit “Työasemat ja tietoverkot” -kurssilta
http://tietotekninensafari.blogspot.fi/
Einon raportit “Linux palvelimena” -kurssilta
http://eliimatt.wordpress.com/
tai Henrin ja Armensin blogi Linux-projektista. Armens tekee keskitettyä hallintaa Pupetilla nykyisin päivätyökseen.
http://awaseroot.wordpress.com/
w44 läksy: Tee PhoneGap-ohjelma käyttäen kahta arvottua API:a.
Ohjelman tulee tehdä jotakin järkevää. Olen merkinnyt arpomani API:t Moodleen. API:t on valittu siten, että ne toimivat emulaattorissa, ilman oikeaa puhelinta. Luettele myös sellaisia ideoita/visioita näistä rajapinnoista, joita et ehdi toteuttaa tässä. Tee ohjelma niin pitkälle kuin pääset.
w45 läksy: Ratkaise 12 ensimmäistä http://KhanAcademy.org/cs harjoitusta (Animation & Programming). Keksi sovellus käyttäen kahta Cordova API:a (valitse neljästä Moodleen arvotusta vaihtoehdosta).
Laadi aihe-ehdotus koko kurssin projektistasi. Voit tehdä projektin myös parin kanssa. (Projektisuunnitelmaa ei tarvita vielä). Voit käyttää kaikkia osaamiasi tekniikoita. Ohjelmasta näet, mitä tekniikoita vielä opiskellaan.
PhoneGap Geolocation (Android emulaattorissa)
http://studionopo.blogspot.fi/2012/09/phonegap-geolocation-app-installation.html
Toimi suoraan esimerkkikoodilla. Olin aiemmin lisännyt emulaattoriin GPS-paikantimen (Eclipse: Window: AVD Manager: Edit).
w46 läksy: Tee kännykkäohjelma, jossa on grafiikkaa. Käytä Processing.js-kirjastoa.
Jotta pääset helposti alkuun, tein tällaisen Hello Processing -esimerkin Androidille.
Javascriptin alkeet: muuttuja, silmukka, tulostus, tekstien liittäminen, jos-niin-muuten-näin.
Arduino, Linux server, Mobile development
w47. Laadi projektisuunnitelma. Tee “Hei ominaisuus” projektisi tarvitsemista osista. Tee kilpailijakatsaus. Tee mukaruutukaappaukset (mockups) tai proto.
https://kontsu.wordpress.com/
Vapaaehtoinen bonus: pelaa Henryn ja Panun muistipeliä, sitä maailman suurinta. Arvioi peli Google Playhin.
https://play.google.com/store/apps/details?id=com.nopo.maailman.suurin.muistipeli
Näin pääset tutustumaan kauppaan jo ennen ensi viikon tunteja.
Tankkipeli Betan kommentit vastauksena tähän.
Omat projektit – ylimääräinen opetuskerta w49 ke
2012-mm-dd2012-12-05 klo 11-14. Tuletko, jos järjestän?Tulossa
SuomiSanakirja.fi on kurssin ensimmäinen Google Playssa julkaistu ohjelma. Lataa sanakirjan beta Google Playsta!
Jep, siellä on 🙂 Kiitos maininnasta ja kiitos kaikille, jotka ehtivät testaamaan!
Mukana kuin peräpukama
Tulen
Tulen
Tulen
Tulossa!
Tulossa
Hienoa, järjestetään ylimääräinen opetuskerta keskiviikkona. Tervetuloa!
Tässä on nyt versio, mitä ei tunnilla kokeiltu. Olisi kiva saada kommentteja, kumpi kontrollointitapa on parempi. Kristian laittaa toisen version latauslinkin myöhemmin tähän viestiketjuun.
LINKKI (myy ei toiminut, niin laitoin tuonne Innovaattorien palvelimelle)
Ehdin vain alkuun, mutta Terttu tulee edustamaan ryhmää
Miten yhdistää SQL-haku monesta taulusta? Entä monta-monta suhteessa (many-many relationship)?
SQLzoo, PostgreSQL. More JOIN operations, 7.
http://sqlzoo.net/wiki/More_JOIN_operations
Jos näyttää haastavalta, aloita aiemmin, kohdasta 1 tai vaikka SELECT:istä
http://sqlzoo.net/wiki/SELECT_basics
Hakeminen SQLite-tietokannasta:
http://docs.phonegap.com/en/2.1.0/cordova_storage_storage.md.html#SQLResultSetList_execute_sql_quick_example
Cordovan tietokantaesimerkit tulostavat vain LogCat-konsoliin. Ne siis voivat toimia, vaikka eivät näytä mitään itse emulaattorissa tai puhelimella.
Muista, että Cordovan SQL-komennot eivät ole blokkaavia. Ohjelman suoritus jatkuu heti. Tietokantahaun jälkeen tulee funktion takaisinkutsu, esim successDB().
Itse voi tulostella lokiin
console.log("Hello Tero");
tai sivulle käyttäjän näkyviin valittuun PRE-kenttään kirjoitamallani print(“foo”) -komennolla.
Animointi liikuttelemalla kuvia weppisivulla.
Joona on animoinut pingviinin jQuery:lla. Sama tekniikka toimii sekä Cordovassa että tavallisella weppisivulla.
http://www.scionar.com/android-projects/
JQueryn dokumentaatio neuvoo animate() ja muiden funktioiden käytössä.
Animaatiota on helppo kokeilla Firefoxissa. Tee vain uusi weppisivu ja laita siihen yksi kuva. Sitten vain animoimaan FireBugilla.
Primary key ja Sqlite, eli miten viittaan taulun riviin Cordovan Storage API:ssa.
$ sudo apt-get -y install sqlite3
$ sqlite3
sqlite> CREATE TABLE teroshats(id INTEGER PRIMARY KEY ASC, hat, price);
Katso myös
http://www.sqlite.org/faq.html#q1
http://www.sqlite.org/lang_createtable.html#rowid
Hei kaikki! Julkasin eilen Google Playhyn pelin jota oon nyt pari kuukautta vääntäny yötä päivää ja satoja tunteja. Olisin erittäin kiitollinen kaikille jotka omistaa Androidin ja vois ladata sen (ja mahdollisesti myös arvostella)! Oon myös kiitollinen jos pystytte vinkkaamaan kavereillenne kyseistä pelistä.
https://play.google.com/store/apps/details?id=com.soivi.timestablegridgame&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5zb2l2aS50aW1lc3RhYmxlZ3JpZGdhbWUiXQ
Edit: huudosta puheeksi.
Jos ette halua että ohjelmanne kaatuu kun kännykän kääntää vaakatasoon nii laittakaa mainactivityyn improtiksi
import android.content.pm.ActivityInfo;
ja public void onCreate(Bundle savedInstanceState) sisään
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
No travel guides here, just murder and mystery!
Blogissa:
http://suvikiviniemi.com/skivinie/app-cities-of-mystery/
Google Playssa:
https://play.google.com/store/apps/details?id=com.suvikiviniemi.cities.of.mystery&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5zdXZpa2l2aW5pZW1pLmNpdGllcy5vZi5teXN0ZXJ5Il0.
Cities of Mystery -sovelluksesta lisää infoa.
http://jusari.wordpress.com/2012/12/12/cities-of-mystery/
Hyvä kurssi loppujenlopuksi. Muutamia parannusehdotuksia:
– Heti kurssin alkuun projektin idea opiskelijoille muhimaan
– Aikaisessa vaiheessa palautetta projekti-ideasta, eikä sitten kun projektisuunitelma on tehty
– Läksyt voisi liittyä enemmän omaan projektiin
– Painopiste enemmän omassa projektissa
– Enemmän aikaa projektin tekemiselle
T. Henri Mikkonen =)
Kiitos kurssista!
Olen varmasti oppinut paljon, mutta en silti ole varma olenko oppinut 6op:n edestä. Syy tähän on tosin pääosin kurssin alkuosassa, jota Tero ei vetänyt.
Tärkeintä oppimastani oli tiedonhaun tehostuminen tästä aiheesta; en varmasti osaa kaikkea, mutta osaan etsiä ratkaisuja.
Tulen takuusti käyttämään oppimiani asioita startuppini tuotekehittelyssä.
Kurssi paranisi selvästi, jos tekniikka opittaisiin ensin, ja lopputyötä voisi hioa samalla kun teoriaosuutta käydään läpi / lopputyöt olisivat jo kaupassa kun teoriassa käsitellään myyntiä.
Pienin varauksin – esim. tämä kurssin järjestyksen muuttaminen – voin suositella kurssia ihmiselle jota mobiiliohjelmointi kiinnostaa.
Minulla oli ollut jo jonkin aikaa tavoitteena julkaista oma Android-sovellus. Kurssilla siihen tuli hyvä mahdollisuus ja ylitin tavoitteeni. Opin tekemään Android-sovelluksia nopeasti ja helposti, ja julkaisemaan ne Google Play:hin ym. Jatkan sovellusten kehittämistä.
Parannettavaa: Viikottaisena kotiläksynä piti tehdä aina uusi ohjelma määrätyllä tekniikalla. Voisi olla myös mahdollisuus tehdä kaikkien kotiläksyjen aikana yhtä sovellusta, jos opiskelijalla on jo idea sovellukseen. Viikottain harjoiteltavan tekniikan voisi valita muutamasta vaihtoehdosta, niin että se mahdollisesti sopii opiskelijan sovellukseen. Jos omaa ideaa ei vielä ole, niin silloin toki voi kehitellä joka viikko uuden sovelluksen/idean, kunnes oman sovelluksen idea kehkeytyy.
Opin kurssilla uuden tekniikan luoda mobiilisoftia androidille. Kuitenkin kyseessä on Cordova, jonka olisin mieluummin heittänyt mäkeen ja opiskellut itse henkilökohtaisesti natiivia koodia ja jatkokehittänyt itseäni siitä.
Cordovan kanssa on hyvä tosin luoda helppoja tehtäviä ja prototyyppejä.
Aion kurssin jälkeen keskittyä enemmän natiiviin ohjelmointiin.
Kurssissa on kokonaisrakenteessa paljon parannettavaa. Kurssin alkupuolen opettaja ei ollut asioista perillä ja jälkiosan opettaja… ehkä vähän liiankin innokas linux-asiantuntija. Jos kombinaation kestää niin kurssi on hyvä suorittaa.
Opinko jotain?
Opin erittäin paljon uutta. Javascriptiä ja tekemään puhelinsovelluksen. Osaan myös julkaista softani Google Playssa ja päivittää myös uudet versiot sinne.
Hyödyllistä?
On. Onhan se hyödyllistä ICT opiskelijalle että osaa tehdä kännykkä softia, koska puhelimet yleistyvät päivä päivältä enemmän. Ja varmaan tulen käyttämään tätä kykyä aika paljon, koska nyt osaan tehdä yksinkertaisia sovelluksia. Teen varmasti uusia sovelluksia, kun keksin vain hyviä ideoita.
Kurssin parannus?
Ensiksi opetellaan tekemään sovellus ja tämän jälkeen opetellaan markkinoimaan sitä. Eli periodit toisinpäin niin jää aikaa projektin tekemiseen ja saa latauksiakin.
Projekti?
Projektin tekeminen on erittäin hyvä idea. Jos ekassa periodissa voisi opetella tekemään sovelluksia niin toinen periodi voisi hyvin käyttää projektin tekemiseen. Näin jokainen saisi hyvän julkaistun sovelluksen ja siitä saisi työnhakuprosessiinkin merkin rintaan.
Suosittelisinko?
Totta kai suosittelen kurssia kaikille joita kiinnostaa tehdä mobiilisovelluksia.
Kurssin ensimmäisellä osalla olisi pitänyt käydä javascriptiä läpi, jolloin toisessa osassa olisimme voineet keskittyä kokonaan phonegapin käyttöön / muihin teknisiin ratkasuihin (json/xml). Sain tarvitsemiini ongelmiin ratkasut kurssin puitteissa, jolloin pystyn myös jatkossa jatkamaan mobiilisovelluksian tekoa. Tulen suosittelemaan kurssia haaga-heliassa opiskeleville kavereilleni.
Kiitos sinun kurssi osastasi, nähdään tulevilla kursseilla!
Opin kurssin toisella puoliskolla javascriptin perusteet paremmin. Opin myös koodaamaan phnonegapilla mobiilisoftia androidille.
Uskon, että oppimistani taidoista on hyötyä, koska mobilisovellusten tekeminen oli uudenlainen kokemus kun piti tehdä se täysin uudelle alustalle. Aion myös jatkaa tulevaisuudessa mobiilisoftien tekemistä.
Kurssin osiot pitäisi kääntää toisinpäin. Aluksi opettelisimme javascriptin n.perusteet kunnolla ja sen jälkeen voisimme keskittyä kunnolla projektin markkinointiin ja sen hiomisee.
Omasta mielestäni oman mobiilisoftan tekeminen on parempi ratkaisu kuin loppukoe, koska silloin me joudumme korjaamaan omia virheitämme tarkemmin, jotta saamme sovelluksen toimimaan. Paneudumme myös tiiviimmin siihen.
Aivan varmasti suosittelisin kurssia kavereistani niille, joita kiinnostaa oppia JavaScriptin ohjelmointikieltä tai niille jotka ovat kiinnostuneet mobiilisovellusten tekemisestä.
Annemari Hallanoron kanssa kurssityönä tekemämme joulukalenteri löytyy ositteesta http://www.halla-a.net/joulukalenteri/.
Kurssin aikana tehtävä oma projekti pitäisi aloittaa aiemmin mielellään jo kurssin alussa. Esitelmät, joita pidettiin aiheista mobiilituotteen myyntii, markkinat … pois kurssista. Ne voisi korvata esitelmistä omista töistä kurssin aikana. Opetuksen pitäisi keskittyä enemmän ohjelmointipuolen opiskeluun.
Kurssin toisen osan alku oli liian vaikea mutta muuttui sopivammaksi loppua kohden. Ehkä olisi hyvä ottaa jo kurssin alussa selville oppilaitten osaamistaso, ennenkuin siirtyy liian vaikeaan asiaan. Opin kurssilta HTML ja javascriptiä jonka myötä sain hyvät valmiudet oman mobiiliohjelman julkaisuun Google Playssa.
Opin kurssin aikana tekemään PhoneGap:in avulla sovelluksia Android-puhelimiin ja julkaisemaan niitä Google Play kaupasta. Oli mielenkiintoista myös saada tietää Google Playn ja Apple Storen eroista jakelualustana ja näihin palveluihin liittyviä ostotrendejä. Olisi ollut hienoa jos lopputyön tekoon olisi ollut enemmän aikaa, esimerkiksi vaihtamalla Lilin ja Teron osuuksien paikkaa. Suosittelen kurssia kaikille, joita ohjelmointi mobiililaitteille voisi kiinnostaa.
Kurssin ensimmäinen osio oli ehkä liian helppo, kun taas toinen osio alkoi ainakin omalle tasolleni liian vaativasti. Opin parhaiten kun saa tehdä tehtäviä ja toivon, että tulevilla tunneilla tehtäviä tehdään enemmän myös opettajan johdolla. Tämä helpottaa kurssin suorittamista huomattavasti. Myös heti alusta asti painotusta omaan projektiin. Itsellä loppui aika kesken.
Aion tehdä kevään aikana oman sovelluksen loppuun. Sovelluksen kehityksestä kirjoittelen epäsäännöllisen säännöllisesti myös omaan blogiini http://depitysmaximus.blogspot.fi/ Toistaiseksi ei ole mitään aikataulua, mutta jos tulevan kevään aikana saisin ensimmäisen version julkaistua. Tämä olisi ihan jees. Nyt aion lomailla.
Kiitti!
Minun ja Rami Tähtisen kurssin punttis softan lopputyön dokumentaatio:
http://kontsu.wordpress.com/2012/12/14/mobile-development-courses-final-project/
Muut kurssin työni:
http://kontsu.wordpress.com/category/mobile-development/
Kiitos palautteesta!
Tyytyväisiä oltiin siihen, että opittiin tekemään ja julkaisemaan mobiilisovelluksia. Julkaisunne (ja alla kommenteissa) ovat minustakin hienoja. Parannusideoitakin löytyi.
Kävimme ideoitanne eilen Lilin kanssa läpi. Päätimme tehdä nämä parannukset seuraavalle toteutukselle syksyllä 2013:
– Aloitamme ohjelmoinnilla (2013p4, Tero opettaa). Osuuden tavoitteena julkaista itse keksitty sovellus (esim Google Playssa)
– Jatkamme markkinoinnilla (2013p5, Lili opettaa). Tavoitteena saada omalle ohjelmalle asiakkaita (ja ehkä jopa tuottoja). Samalla saadaan kuvaa kännykkäohjelmien markkinoista.
– Tunnit pidetään labrassa h5001 (jos saan sen varattua)
– Ohjelmointi aloitetaan helpommilla tehtävillä
Ihan itse keksimme harkita kurssikirjaa, esimerkiksi Jepson et al 2012: Building Android Apps with HTML, CSS, and JavaScript.
Toivomanne uusi järjestys tarkoittaa automaattisesti myös lisää aikaa omaan projektiin, erityisesti mahdollisuutta markkinoida ohjelmaa kunnolla.
Hauskaa joulun odotusta!
Julkiset Android-sovellus:
http://nikokiuru.com/2012/12/julkiset-0-2-android-mobiilisovellus/
Ja blogistani löytyy ohjeet niille, jotka koittavat saada JSON:n toimivaan cross-domainin kanssa, ja Same Origin Policy antaa erroria: http://nikokiuru.com/2012/12/origin-null-is-not-allowed-by-access-control-allow-origin/
Lapsille suunnattu Annemari Hallanoron kanssa tekemämme suomenkielinen joulutarina löytyy osoitteesta:
https://play.google.com/store/apps/details?id=joulu.seikkailu
Vihdoin ja viimein Christmas Countdown is ready!
http://myy.haaga-helia.fi/~a1002490/software/mmcc/mmccsite.html
Olen nyt tekemässä parannuksia 2013 toteutukseen palautteiden perusteella. Kurssille on melkoinen tunku, joten kiitos, kun olette laittaneet sanan kiertämään.
Yksi parannus on jo tehty: nyt ohjelmoimaan pääsee heti kurssin alusta.
Alla joissain kommenteissa mainittu “toinen osuus” eli ohjelmointiosuus on minun vetämäni osuus. 2013 syksyllä vedän koko kurssin.
http://terokarvinen.com/2013/aikataulu-%e2%80%93-mobiilituotekehitys-bus4tn008-3-syksylla-2013