Aikataulu – Mobiilituotekehitys bus4tn008-2


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

Esimerkkiratkaisuja

Ensimmäisestä läksystä syntyi yllättävän mainioita sovelluksia

Myös kehitysympäristön asennus näytti onnistuvan hyvin [1] [2].

Posted in Uncategorized | Tagged , , , , , , , , , | 51 Comments

51 Responses to Aikataulu – Mobiilituotekehitys bus4tn008-2

  1. 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

  2. Henri Mikkonen says:

    Vihdoin ja viimein Christmas Countdown is ready!
    http://myy.haaga-helia.fi/~a1002490/software/mmcc/mmccsite.html

  3. Lapsille suunnattu Annemari Hallanoron kanssa tekemämme suomenkielinen joulutarina löytyy osoitteesta:
    https://play.google.com/store/apps/details?id=joulu.seikkailu

  4. Niko Kiuru says:

    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/

  5. 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!

  6. Elmo says:

    Kiitti!

  7. Riikka Karhu says:

    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.

  8. 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.

  9. Henry Kokko says:

    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.

  10. Terttu Koskela says:

    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.

  11. Rami Tähtinen says:

    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ä.

  12. Niko Kiuru says:

    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!

  13. Lauri Soivi says:

    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.

  14. - says:

    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.

  15. Elmo says:

    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.

  16. 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.

  17. Henri Mikkonen says:

    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 =)

  18. Lauri Soivi says:

    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);

  19. Lauri Soivi says:

    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.

  20. 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

  21. 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.

  22. 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.

  23. 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

  24. Annemari says:

    Ehdin vain alkuun, mutta Terttu tulee edustamaan ryhmää

  25. Ville Valta says:

    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)

  26. Hienoa, järjestetään ylimääräinen opetuskerta keskiviikkona. Tervetuloa!

  27. Rami says:

    Tulossa

  28. Riikka Karhu says:

    Tulen

  29. Henry Kokko says:

    Tulen

  30. Lauri Soivi says:

    Mukana kuin peräpukama

  31. Elmo says:

    Jep, siellä on 🙂 Kiitos maininnasta ja kiitos kaikille, jotka ehtivät testaamaan!

  32. SuomiSanakirja.fi on kurssin ensimmäinen Google Playssa julkaistu ohjelma. Lataa sanakirjan beta Google Playsta!

  33. Omat projektit – ylimääräinen opetuskerta w49 ke 2012-mm-dd 2012-12-05 klo 11-14. Tuletko, jos järjestän?

  34. Tankkipeli Betan kommentit vastauksena tähän.

  35. 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.

  36. w47. Laadi projektisuunnitelma. Tee “Hei ominaisuus” projektisi tarvitsemista osista. Tee kilpailijakatsaus. Tee mukaruutukaappaukset (mockups) tai proto.

  37. Arduino, Linux server, Mobile development

  38. Javascriptin alkeet: muuttuja, silmukka, tulostus, tekstien liittäminen, jos-niin-muuten-näin.

  39. 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.

  40. 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).

  41. 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.

  42. 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.

  43. 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/

  44. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *