Vorgurakendused 2 prax 1 2011

Allikas: Lambda
Redaktsioon seisuga 28. september 2011, kell 10:54 kasutajalt Tammet (arutelu | kaastöö) (→Tutorial ja hello world)
Mine navigeerimisribale Mine otsikasti

Esimese praktikumi sisuks on googles hostitud serverirakendusega (google app engine) suhtleva androidi rakenduse tegemine. Tööl on kaks osa:

  • Esialgse Androidi rakenduse tegemine. Piisab Androidi emulaatori kasutamisest, ei pea installeerima mobiiltelefoni.
  • Google app engine all serverirakenduse tegemine ja Androidi rakenduse ühendamine serverirakendusega.


Rakenduse funktsionaalsus

Rakenduse eesmärgiks on võimaldada grupil inimestel näha, kus kõik grupi liikmed asuvad. Androidi rakenduses peab seega saama:

  • Koostada gruppi
  • Aktsepteerida gruppi
  • Vaadata kaardilt, kus asuvad kõik aktsepteerinud grupi liikmed

Ühendus grupi liikmete vahel toimub läbi serverirakenduse.

Grupi koostamine võib toimuda ka brauseri kaudu (mis peaks siis samuti olema androidilt kasutatav).

Täpsemad detailid lisanduvad septembri esimeses pooles.

Kuidas alustada

Androidi arenduse juhendid googlelt leiad siit lingilt.

Esimese asjana on sul kindlasti vaja installeerida Androidi arenduskeskkond ja saada käima minimaalne näiterakendus HelloWorld Androidi emulaatoris.

Põhikeerukus on seejuures arenduskeskkonna installatsioon. Seda saad teha omaenda masinas ja samuti on see võimalik IT maja arvutiklassides. Ametliku õpetuse leiad siit lingilt. Loe seda õpetust ja vaata kindlasti lisaks soovitusi järgmises peatükis.

Kui arenduskeskkond on käima saadud, siis HelloWorldi valmistegemiseks kasuta seda google õpetust. Seejärel tee läbi veel Hello Views tutorial ja soovi korral veel mõned siit listist.

Oluline on saada käima kaardi-näiterakendus, selleks tee läbi see google tutorial ja vaata lisaks mobiforge tutorialit. Allpool leiad juhiseid google maps key genereerimiseks ja muid tähelepanekuid kaardivärgi kasutamiseks androidis.

Androidi arenduskeskkonna installeerimine

Installeerida saab kogu komplekti nii windowsi, linuxisse kui maci. Siin peatükis on märkmed windowsi jaoks.

Vaja on installida neli asja ja seejärel tekitada emulaator:

  • Java SE (vajalik on arendusversioon, JEE ei ole vajalik)
  • Androidi SDK
  • Eclipse (ei ole otseselt kohustuslik, kuid lihtsustab)
  • Eclipse androidi developmendi plugin.

Installeerimise õpetuse leiad siit lingilt. Täiendavalt võib olla abiks see juhend, mis sisaldab Eclipse lisade/konfimise/emulaatori käivitamise ekraanipilte.

Nõuandeid ja tähelepanekuid

Allpool täiendavaid juhiseid, tähelepanekuid ja vajalikke fikse:

  • Java SE ja Eclipse on olemas nii 32 kui 64 bitisena. Mõlemad on OK, AGA mõlemad peavad olema sama bittide arvuga (kas 32 ja 32 või 64 ja 64).
  • Java SE downloadi leht (uusim versioon on OK, vanemad sobivad kuni mingi piirini)
  • Eclipse downloadi leht: kui sul juba Eclipse juhtumisi pole, siis võta eclipse classic.
  • Android SDK download. Windowsis vali installer_r12-windows.exe (Recommended). Täpsemalt:
    • Kui oled installeri alla tõmmanud, pane ta käima, hakkab ise tõmbama järgmisi tükke.
    • Peale esialgset tõmbamist saad suure menüü valikutega. Mida sealt võtta, seda vaata siit juhendist. Soovitused valikute osas:
      • Ülemised valikud jäta peale.
      • Valima hakkad blokist "SDK platform". Võta sealt kindlasti kõige suurema numbriga versioon (ntx 3.2) ja soovitavalt ka mõni uuem 2 seeria versioon (kui sul omal androidi mobla, võta selle versiooni variant). Teised keera maha: kliki, kuni rea ees tekib punane rist.
      • Seejärel vali "Samples" blokist need variandid, mis vastavad eelnevalt valitud platvormile (sama number). Teised keera jälle klikkides maha.
      • Seejärel vali "Google apis" blokist samuti ainult need, mis vastavad eelnevalt valitud versioonile (kliki kuni läheb roheliseks, teised kliki punaseks).
      • Vali ka "Usb driver"
      • Alumised valikud (Usb draiveri all, vaikimisi rohelised) jäta peale.
  • Eclipse ADT plugina install:
    • Algul tee, nagu viidatud juhend ütleb: ava Eclipses "Help > Install New Software....", siis pane avaneval vormil Name alla ADT Plugin ja sisesta selle all väljale täpselt selline url: https://dl-ssl.google.com/android/eclipse/ ja seejärel vajuta Add. Seejärel läheb veidi ootamist, kui info alla tõmmatakse, vaja on valida uus tekkiv rida, teha mitu nexti vajutust, accepti boxe jms (vt viidatud juhendit) ja lõpuks Eclipse restart.
    • Seejärel ütleb juhendi peatükk "Configuring the ADT Plugin", et Eclipses pead seadma eelnevalt laetud Android SDK asukoha. Ava Eclipse Window menüüst altäärest preferences ja avanevas aknas vali vasakul üleval Android. Pead seadma paremal väljal SDK location. Siin on mõned nüansid! Kui sinu masinas on ADK asukoht C:\Program Files ... \android-sdk ja seal pathis on tühikud (Program Files sees ntx on) siis ei tohi sisestavas pathis olla tühikuid! Selle asemel sisesta C:\PROGRA~2\Android\android-sdk kus numbri 2 asemel proovi ka 1 (Eclipse kaebab, kui pathi ei leia). IT maja arvutiklassis sisesta väljale (tammet asemele pane oma nimi C:\Users all) aga C:\Users\tammet\AppData\local\Android\android-sdk ja seal pathis tühikuid tõenäoliselt ei ole.
    • Vajalik fix IT maja arvutiklassides: IT maja arvutiklassis A on java settingutes viga: kasutaja kodukataloogi määrang on kasutajale C:\Users\proovija mida kasutada ei saa. Seetõttu ei õnnestu hoobilt Androidi emulaatorit tekitada. Sinu isiklikus masinas seda probleemi tõenäoliselt pole! IT majas pead tegema järgmist: ava rakendus registry editor (windowsi menüüst search programs and files boksis kirjuta regedit) ja seal navigeeri kohani "HKEY_CURRENT_USER" -> "Software" -> "Microsoft" -> "Windows" -> "Current Version" -> "Explorer" -> "Shell Folders" ja paremal akna osas sea muutuja "desktop" väärtuseks C:\Users\tammet\Desktop (tammet asemel pane oma nimi). Selle probleemi ja fiksi kohta leiab võrgust hulga infot, ntx siit.
  • Emulaatori tekitamiseks on HelloWorld tutorialis lühike peatükk "Create an AVD". Veidi pikemalt lahti seletades on protsess järgmine: mine Eclipse menüüs Window valikule "Android SDK and AVD manager" (see valik tekib, kui oled ADT plugina edukalt installerinud). Avaneb uus aken, kus paremal ülal kirjas "List of existing Android virtual devices ...". Vajuta "New", anna emulaatorile suvaline nimi, võta Target valikust "Google APIs ...N" (see on kaardiga versioon!) kus N on vastavalt mis varem installeerisid (variandid "Android 2.2 ...", "Android 3.2 ..." on ilma kaardita), pane SD kaardile mingi mõistlik väärtus, ntx 50. Muid asju sättima ei pea. Selle protsessi lõpuks peaks ilmuma tabelisse "List of existing Android Virtual Devices ..." rida uue emulaatoriga (AVD). Sellele saad nüüd klikata ja käivitamiseks vajutada "Start ...".
    • Kui emulaatorit ei teki, siis tõenäoliselt tekib Eclipse aknasse veateadete list. Nii või teisiti on kõige tõenäolisem veapõhjus mõne ülaltoodud fiksi tegematajätmine.
    • Emulaatori käivitamine. Kui lihtsalt emulaatori käima paned, siis ilmub värviline kena emulaatorirakendus, mis ütleb "android ..." ja midagi ei tee. Oota kannatlikult, minut või rohkem. Hulga aja pärast ilmub normaalne Androidi esileht, mida saab hiirega kasutada. Oma rakenduse käimapanekut on mõtet katsetada juba HelloWorld tutorialiga koos. Eclipses tehtud HelloWorld rakenduse paneb Eclipses proge käivitamine (üleval roheline nool Run) ise käima, pead lihtsalt jupp aega ootama. Samuti ilmub sinu rakendus Androidi rakenduste menüüsse emulaatoris.
  • Rakenduse mobiili laadimine. Vaata seda stackoverflow juhendit ja lisaks google lühijuhendit.

Google maps api key genereerimine

Kaardivärgi kasutamiseks on vaja genereerida google mapsi api debugkey. Vaata hello-mapview tutorialit ja lisaks seda tutorialit ja arvesta seejuures järgmiste tähelepanekute/probleemidega:

  • Java keytool on sul tõenäoliselt pathil "c:\Program Files (x86)\Java\jre7\bin\keytool.exe" vms. Igaks juhuks kirjuta keytool täispathiga, muidu võid sattuda mõnda vale keytooli kasutama.
  • Java keytool võib produtseerida erinevat sorti keysid, õige on ainult MD5 variant! Pane keytoolile lisaargument -v näiteks nii: C:\Users\Tanel>"c:\Program Files (x86)\Java\jre7\bin\keytool.exe" -v -list -alias androiddebugkey -keystore C:\Users\Tanel\.android\debug.keystore -storepass android -keypass android
  • Selle -v argumendiga keytooli käivitamisel kopeeri väljundist fingerprint reast, mis algab MD5-ga, umbes selline: MD5: BE:C3:11:4E:...:BC:B4:96 (MD5: stringijuppi ära muidugi kaasa kopeeri)
  • Saadud fingerprint a la BE:C3:11:4E:...:BC:B4:96 kopeeri google lehel http://code.google.com/intl/et/android/maps-api-signup.html alla vormi
  • Kui kõik OK, siis saad google lehelt vastuseks midagi sellist "Täname teid, et registeerusite Android Maps rakendusliidese pääsukoodi saamiseks! Teie pääsukood on: 05VV1uAjD-uy4TpUwT... 0RomPQPC5sg"
  • Kui tekib ikkagi probleeme, siis võib mureks olla teie locale: on olemas teadaolev bugi, et mitte-US-English settingute korral võtmevärk ei pruugi käia. Selleks vaata soovitusi siit. adb programmi leiad umbes sellisest kohast: c:\Program Files (x86)\Android\android-sdk\platform-tools

Google app engine ülesseadmine

App engine arenduskeskkond (vt http://code.google.com/intl/et/appengine/ ) on tunduvalt lihtsam, kui Androidi arenduskeskkond.

Alltoodud õpetus on Pythoni jaoks Windowsil, kuid app engine lubab kasutada ka javat ja Go-d. Põhiasjad on neis keeltes ilmselt sarnased Pythonile, ilmselt ei ole suuri erinevusi ka Linuxi puhul. Väikese koormusega rakenduse puhul, nagu praksis teeme, ei ole vaja ka midagi maksta ja krediitkaarti ei küsita.

Keskkonna ülesseadmisel on laias laastus neli sammu:

  • Tee endale Google app engine account ja loo uus, esialgu tühi rakendus googles.
  • Pane oma arvutisse Python 2.5 (vanemad ei sobi ja uuemad tõenäoliselt ka mitte)
  • Sea üles google app engine arendussüsteem.
  • Tee läbi tutoriali paar esimest punkti ja pane googles tööle hello world.

App engine account ja uue tühja rakenduse loomine app engines

Kui sul veel pole, tee kõigepealt google account (harilik gmail account). Sellest üksi app engine jaoks ei piisa. Mine App engine esilehelt paremal menüüs "Sign up for an App Engine account" lingile ja tee protseduur läbi. Mh pead sealjuures sisestama oma telefoninumbri ja sulle saadetakse kontroll-sms.

Lõpuks saad lehe "My Applications", kus all tühi list rakendusi. Selle all nupp "Create application". Vali oma rakenduse nimi a la prax23123 (see saab edaspidi olema siis prax23123.appspot.com). Nimed on globaalselt unikaalsed, pead otsima, kuni leiad seni kasutamata. Title võib ilmselt panna millise tahes. Muid settinguid ei ole vaja muuta, default on ok. Mh on "Open to all Google Accounts users (default)" ilmselt mõistlik sellisena jätta, autentimist saad oma rakenduses ikkagi vabalt kasutada.

Python 2.5

Enne app engine downloadi ja ülesseadmist pead ise panema masinasse Python 2.5 (see ei tule kaasa app engine süsteemiga). Python 2.5 on vana versioon ja tema installerit python.org saidilt sa niisama lihtsalt ei leia. Otselink õigele lehele on http://www.python.org/getit/releases/2.5/ Võta sealt Python-2.5.msi ja installi masinasse (default settingutega saab ja on lihtne). Katseta lõpuks windowsi käsurealt, et Python töötaks.

NB! Viidatud leht hoiatab kohe algul "Python 2.5 has been replaced by a newer bugfix release of Python. Please download Python 2.5.6 instead." . Ignoreeri seda soovitust ja võta Python-2.5.msi ikkagi samalt viidatud lehelt http://www.python.org/getit/releases/2.5/

Google app engine ülesseadmine

Lehelt http://code.google.com/intl/et/appengine/downloads.html#Google_App_Engine_SDK_for_Python leiad GoogleAppEngine-1.5.4.msi mis tuleb siis installida.

Sinu masinasse tekib rakendus "google app engine launcher" mille käivitamisel on näha tühi list rakendustest.

Tutorial ja hello world

Nüüd alusta tutorialiga (allpool pythoni variant) http://code.google.com/intl/et/appengine/docs/python/gettingstarted/introduction.html ja "continue to hello world".

App engine rakendusest File menüüst tee "Create New Application", seejuures application name pane täpselt seesama, mis enne google lehelt oma rakenduse identifikaatoriks valisid! Application Path tuleb võtta kataloog, mille alla tehakse automaatselt uus kataloog sinu rakenduse identifikaatoriga. Selle alla ehitab app engine automaatselt paar faili, mh main.py. Nüüd tekib sinu app engine rakenduse tabelisse loodud rakendus, mille saad valida ja käivitada. Selle tulemusena hakkab sinu arvutis tööle väike server, millele saad ise brauseriga ligi ja saad kogu värki oma masinas arendada, laadides üles/uuendades juba töötavaid asju. Ligipääsuks mine http://localhost:8080 ja vaata, kas töötab. Seejärel muuda loodud main.py-d ja proovi uuesti.

Rakenduse üleslaadimiseks vajuta sinist "Deploy" nuppu, mispeale küsitakse sinu google emaili ja google passwordi ja laetakse värk üles: see võtab ca 10 sekundit vms, vahepeal näed konsoolilt, kuidas edeneb. Kui kõik ok, ava brauseris oma rakendus (a la prax23123.appspot.com) ja vaata, kas OK.

Google tutorial: edasised sammud

Rakenduses saad kasutada kas nö hariliku lihtsa cgi rakenduse põhimõtteid või veidi advancemat Pythoni wsgi süsteemi. Proovi tutorialist http://code.google.com/intl/et/appengine/docs/python/gettingstarted/introduction.html vasakust menüüst mõned sammud läbi teha, mh autentimise katse kasutaja google accounti vastu. Üldiselt on selleks vaja ainsa asjana muuta main.py faili.

Siin lingi all väike lisaarendus, mis täiendab vormide tutoriali autentimise osaga.