05.12.2012 Views

poročilo praktičnega izobraževanja

poročilo praktičnega izobraževanja

poročilo praktičnega izobraževanja

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

VISOKOŠOLSKI STROKOVNI ŠTUDIJ<br />

Računalništvo in informacijske tehnologije<br />

POROČILO PRAKTIČNEGA<br />

IZOBRAŽEVANJA<br />

v podjetju<br />

TFStoritve d.o.o.<br />

Savinjska cesta 4, 3331 Nazarje<br />

Čas opravljanja: od 01.08.2012 do 1.10.2012<br />

Mentor v GD: dr. Matej Črepinšek<br />

Vpisna številka: E1009581<br />

Elektronski naslov: tprasnikar@gmail.com<br />

Telefon: +386 (0)51/251-285


Kazalo vsebine<br />

1. OPIS GOSPODARSKE DRUŽBE IN PRODUKTOV ................................................. 4<br />

1 Weatherlove ................................................................................................................ 5<br />

2 eggster!, Pod Alpami, a! Commander ........................................................................ 6<br />

2. UPORABLJENE TEHNOLOGIJE IN ORODJA .......................................................... 7<br />

1 Android ....................................................................................................................... 7<br />

2 iOS .............................................................................................................................. 8<br />

3 Eclipse z dodatki ......................................................................................................... 9<br />

4 Git ............................................................................................................................. 10<br />

3. PRAKTIČNO DELO ................................................................................................... 11<br />

5 Združljivost z različnimi verzijami Androida .......................................................... 12<br />

6 Navigacija po aplikaciji ............................................................................................ 15<br />

7 Prilagoditev na različne ekrane in design ................................................................. 18<br />

8 Dodelava in ostalo .................................................................................................... 19<br />

9 Oddaja na Google Play in zaklep ............................................................................. 21<br />

10 Razno .................................................................................................................... 22<br />

11 Weatherlove modul ............................................................................................... 23<br />

12 Facebook SDK ...................................................................................................... 23<br />

13 iOS učenje ............................................................................................................. 26<br />

4. SKLEP .......................................................................................................................... 27<br />

5. VIRI .............................................................................................................................. 28<br />

1


Kazalo slik<br />

Slika 1: Amazon Appstore in GetJar tržnici .......................................................................... 4<br />

Slika 2: Weatherlove aplikacija in njeni lebdeči pripomočki ................................................ 5<br />

Slika 3: Pod Alpami, a! Commander in eggster! v akciji ...................................................... 6<br />

Slika 4: Android - logotip robota ........................................................................................... 7<br />

Slika 5: Logotip iOS operacijskega sistem ............................................................................ 8<br />

Slika 6: Najnovejši Eclipse 3.7 z uradnim imenom Juno ...................................................... 9<br />

Slika 7: Logotip git-a in ponudnika storitev bitbucket.org .................................................. 10<br />

Slika 8: Meni za upravljanje iz Eclipsa ............................................................................... 10<br />

Slika 9: Primer strukturiranja podatkov po array-ih v .xml datoteki ................................... 12<br />

Slika 10: Android 2.3 – Gingerbread .................................................................................. 13<br />

Slika 11: Android 4.0 – IceCreamSandwich ....................................................................... 13<br />

Slika 12: Logotip ActionBarSherlock ................................................................................. 14<br />

Slika 13: Primer kako se nastavi ActionBar ........................................................................ 14<br />

Slika 14: Mrežni pogled - testna različica ........................................................................... 15<br />

Slika 15: Adapter ki združi več enakih elementov v mrežo ................................................ 16<br />

Slika 16: Pogled seznama – testna različica ........................................................................ 17<br />

Slika 17: Glavni oz. osrednji pogled - testna različica ........................................................ 17<br />

Slika 18: Primer različice za hdpi ekran .............................................................................. 18<br />

Slika 19: Takole izgledajo nekatere mape za prilagoditve .................................................. 19<br />

Slika 20: Pogled uporabnikov Weatherlove za nekaj dni .................................................... 19<br />

Slika 21: Pogled GoogleMaps zemljevida .......................................................................... 20<br />

Slika 22: Uporabniki Weatherlova - prednjačijo Nemci, Francozi in Američani ............... 20<br />

Slika 23: Takole izgleda "pie chart" obiskovalcev meseca ................................................. 21<br />

Slika 24: Ukazi ProGuardu naj bo previden z ActionBar Sherlock .................................... 21<br />

Slika 25: Logotip Google Play tržnice ................................................................................ 21<br />

Slika 26: Zaslonski posnetek uporabe AIDE na tablici z Androidom 3.0 Honeycomb ...... 22<br />

Slika 27: Primer pridobivanja naslova iz ostalih podatkov med testiranjem na terenu ....... 23<br />

Slika 28: Delček kode, ki prikaže vnosno masko za prijavo v sistem FB ........................... 24<br />

Slika 29: Nadzorna plošča FB spletne aplikacije ter vmesnega člena ................................. 25<br />

Slika 30: Izgled orodja XCode ............................................................................................ 26<br />

2


UVOD IN PREDGOVOR<br />

S praktičnim izobraževanjem sem pričel 1.8.2012 in končal 1.10.2012 pri podjetju<br />

TFStoritve, programske in strojne rešitve ter svetovanje, d.o.o, ki se nahaja v Zgornji<br />

Savinjski dolini, natančneje v Nazarjah. Delo je bilo zelo razgibano in imel sem idealno<br />

priložnost da se naučim nekaj novega ter nadgradim znanje, ki sem si ga pridno nabiral<br />

skozi leta študija. Podjetje mi je omogočilo razvoj tako na osebnostni ravni, kot tudi<br />

praktični oz. delavni. Kot boste videli v nadaljevanju je delo potekalo v manjši pisarni, v<br />

sproščenem vzdušju ter v družbi prijetnih sodelavcev.<br />

3


1. OPIS GOSPODARSKE DRUŽBE IN PRODUKTOV<br />

Podjetje TFStoritve, programske in strojne rešitve ter svetovanje, d.o.o. je mlado podjetje,<br />

ki še ni dolgo prisotno na trgu. Stvaritelji so videli poslovno priložnost, vzeli stvari v svoje<br />

roke in odprli podjetje. Kam trenutno pluje podjetje se še ni povsem izkristaliziralo, jasno<br />

pa je da ne bodo odnehali dokler ne uspejo. Specializirani so predvsem na področju<br />

mobilnih in spletnih tehnologij, vendar se ne bojijo preizkusiti tudi česa novega. Glavni<br />

prihodki podjetja prihajajo iz naslova t.i. »outsourcinga« oz. izdelave produktov za zunanje<br />

naročnike. V nazivu je omenjeno tudi svetovanje, kar v splošnem pomeni pogovor z<br />

naročnikom, predlaganje, izboljšanje njegove ideje da bo končni izdelek resnično prinesel<br />

kupce oz. uporabnike njihovim aplikacijam. TFStoritve ima pod lastnim angleškim<br />

imenom »tfsolutions«, izdanih tudi nekaj nativnih Android aplikacij na največji svetovni<br />

Googlovi tržnici - Google Play. Vse te aplikacije so še nekako v testnih fazah in so na<br />

voljo za prenos povsem zastonj. Tiste, ki se bodo izkazale kot najbolj uspešne pa bodo<br />

seveda deležne nadgradnje in bodo objavljene za prenos proti plačilu. V Sloveniji se pri<br />

vseh profesionalnih razvijalcih za Android platformo pojavlja kar velika ovira, namreč<br />

spletni velikan Google trenutno še ne omogoča prodaje aplikacij preko trgovine Google<br />

Play, zato se podjetje na vse pretege trudi poiskati tujega strateškega poslovnega partnerja,<br />

s katerim bi skupaj prodrla na globalni trg. Vsekakor pa bodo aplikacije še prej dostopne<br />

na drugih tržnicah, kot so: Amazon Appstore, GetJar, Opera Apps, AppBrain in ostalih.<br />

Slika 1: Amazon Appstore in GetJar tržnici<br />

4


1 Weatherlove<br />

Njihov, zagotovo najbolj znan izdelek je aplikacija Weatherlove. Pod tem imenom jo<br />

najdete tudi na Google Play. Gre za izredno zanimivo vremensko aplikacijo, ki ponuja tudi<br />

izjemno uporabne in hitro dostopne lebdeče pripomočke. Vendar pa, kaj je tako posebnega,<br />

kaj jo izpostavi izmed cele kopice podobnih aplikacij? Nedvomno je pri uporabi praktično<br />

kakršnekoli aplikacije v ospredju uporabniška izkušnja. Če uporabniku ponudiš izdelek, ki<br />

je hkrati privlačen na pogled in ga zna uporabljati takoj, potem si naredil vse kot je treba.<br />

Ravno to pa je bilo storjeno. Google je z izdajo posodobljenega operacijskega sistema<br />

Android z verzijo 4.0 imenovano »Ice Cream Sandwich« ali krajše ICS, izpostavil ravno<br />

uporabniško izkušnjo. TFStoritve so vzeli marsikatero prednost te posodobitve ter vse to<br />

zapakirali in ponudili uporabnikom. Ljudje so bili seveda navdušeni, saj so lahko doživeli<br />

ICS izkušnjo tudi na starejših verzijah Androida. Z vsem tem so si pridobili svoj krog ljudi,<br />

kar kažejo številke – več kot 40.000 prenosov in več kot 10.000 aktivnih uporabnikov.<br />

Impresivno.<br />

Slika 2: Weatherlove aplikacija in njeni lebdeči pripomočki<br />

5


2 eggster!, Pod Alpami, a! Commander<br />

Seveda pa Weatherlove še zdaleč ni njihova edina aplikacija. Imajo še nekatere druge, kot<br />

je eggster! ki vam izdela velikonočno voščilnico, Pod Alpami, ki vas nasmeji in vam<br />

ponudi smešne melodije zvonjenja ali pa a! Commander, s pomočjo katerega lahko lažje<br />

odkrijete vaš pametni telefon v primeru izgube ali kraje. Vse to na Google Play.<br />

Slika 3: Pod Alpami, a! Commander in eggster! v akciji<br />

6


2. UPORABLJENE TEHNOLOGIJE IN ORODJA<br />

1 Android<br />

Android je odprtokodni operacijski sistem za pametne mobilne telefone, zgrajen okoli<br />

Linux jedra. Uradni razvijalec je vsem dobro znani spletni gigant Google, kateri sistem<br />

nadgrajuje in izdaja nove različice nekje na vsake 6-12 mesecev. Hkrati z izidom nove<br />

različice operacijskega sistema, Google vedno izda še novo napravo iz družine »Nexus«, ki<br />

je nekakšen glasnik novega sistema in ki uporablja praktično vse lastnosti in novosti, ki jih<br />

prinaša nativen Android. Ostali proizvajalci ga radi »pokvarijo« in čezenj naložijo lastno<br />

uporabniško okolje. Poleg originalnega proizvajalčevega zaganjalnika (HTC – Sense,<br />

Samsung – TouchWiz itn.), obstaja še ogromna odprtokodna skupnost na spletu,<br />

imenovana Cyanogen. Fantje ki razvijajo, ponudijo za veliko bero telefonov tudi lasten<br />

zaganjalnik, ki je velikokrat še izboljšan, hitrejši, bolj intuitiven zato je med uporabniki sila<br />

priljubljen.<br />

Aplikacije za Android pišemo v Javi, lahko pa tudi v C oz. C++.<br />

Slika 4: Android - logotip robota<br />

7


2 iOS<br />

Tudi iPhone Operating System oz.krajše iOS, je podobno kot Android, operacijski sistem<br />

za mobilne telefone, zgrajen okoli Unix jedra, vendar je zaprtokoden razen nekaterih<br />

njegovih komponent ki pa so odprtokodne. Za razliko od Androida, ki ga lahko naloži<br />

vsak, ki izpolnjuje tehnične specifikacije pa iOS ni prosto dostopen in je na voljo<br />

ekskluzivno samo njegovemu proizvajalcu Applu za uporabo na lastnih mobilnih<br />

napravah.<br />

Aplikacije zanj se pišejo v objektnem-C jeziku, s pomočjo orodja XCode.<br />

Slika 5: Logotip iOS operacijskega sistem<br />

8


3 Eclipse z dodatki<br />

Slika 6: Najnovejši Eclipse 3.7 z uradnim imenom Juno<br />

Eclipse je odprtokodno okolje za razvoj programske opreme napisano v Javi, ki deluje tako na<br />

Linux-u, Windows-u ter tudi OS X-u. Primarno je bilo zgrajeno za implementacijo Java namiznih<br />

programov, a ravno njegova posebnost , sistem vtičnikov, Eclipsu omogoča da lahko pišemo<br />

programe v praktično kateremkoli programskem jeziku v kolikor zanj obstaja vtičnik za Eclipse.<br />

Ravno vtičnik ADT v Eclipsu pa nam omogoča integrirano okolje za razvoj Android aplikacij. Z<br />

Androidom pa pride tudi DDMS – Dalvik Debug Monitor System, sistem za razhroščevanje in<br />

poganjanje aplikacij, ki med drugim poganja tudi Virtual Machine oz. emulator, omogoča nam<br />

kreiranje zaslonskih posnetkov, podaja nam informacije o kopicah in nitih na napravah,<br />

pregledovanje in simuliranje klicev in sms sporočil, ponarejanje GPS koordinat za testiranje…<br />

Skratka z DDMS za izdelavo aplikacij sploh ne potrebujemo dejanske Android pametne naprave,<br />

ampak zgolj računalnik. DDMS pa se najbolj izkaže s svojim zagotavljanjem informacij o stanju in<br />

obnašanju sistema, imenovanem »logcat«. Tukaj med samim kodiranjem najlažje vidimo kje smo<br />

pustili za sabo kakšnega hrošča, kje so neskončne zanke itd., torej tiste najbolj očitne napake nam<br />

sam sporoči, brez da bi morali posegati po razhroščevalniku.<br />

9


4 Git<br />

Git je sistem za nadzor in upravljanje z izvorno kodo posameznega projekta. To pomeni da<br />

lahko več razvijalcev dela na enem projektu in vsak razvija svoj modul, git pa potem te<br />

module združi v projektu ter tudi razrešuje konflikte ki bi nastali če bi več kot eden avtor<br />

urejal isti del projekta. Njegov avtor je razvpiti Linus Torvalds, Finec ki je napisal tudi<br />

izvorno kodo Linux jedra, ravno v ta namen (shranjevati in upravljati kodo) pa je bil razvit<br />

ta sistem. Mi smo za deljenje kode uporabljali znano spletno stran, ki to omogoča<br />

(www.bitbucket.org) in ki ponuja svoje usluge, vsaj za naše potrebe povsem zastonj.<br />

Potrebna je bila le instalacija vtičnika EGit v Eclipse, kar je močno olajšalo delo. Zaradi<br />

tega je tudi mentor lažje pomagal pri napakah, pa tudi sodelavci, kajti vsi smo imeli isto<br />

kodo pred sabo, zato je tudi delo potekalo hitreje in lažje, dostop pa si imel praktično od<br />

kjerkoli.<br />

Slika 7: Logotip git-a in ponudnika storitev bitbucket.org<br />

Slika 8: Meni za upravljanje iz Eclipsa<br />

10


3. PRAKTIČNO DELO<br />

Najprej so me ob prvem prihodu seznanili s filozofijo podjetja in pravili, ki bi se jih naj<br />

držali vsi zaposleni. Nadalje so mi pomagali instalirati vso programsko opremo ter mi<br />

dodelili projekt. Kot sem že omenil, podjetje izdeluje aplikacije za zunanje naročnike,<br />

zatorej več podatkov o naročniku ali uradnem imenu projekta ne morem oz. ne smem<br />

razkriti, lahko pa povem da je projekt nastajal pod kodnim imenom Biseri.<br />

Biseri je aplikacija za petičneže, izbrane goste, visoko družbo, skratka ljudi ki jih zanima<br />

prestiž, glamur in visok družben standard. Aplikacija je nekakšen služabnik tej gospodi.<br />

Tipičnega uporabnika sem torej predstavil, sedaj pa nas zanima, kako pa jim takšen<br />

program lahko služi? Gost si želi počitnic, dopusta, morja, ampak ne ve točno kam bi se<br />

podal. Tukaj vskočimo mi, z našo rešitvijo. Strankam ponudimo v nekem izbranem<br />

okolišu, recimo na nekem otoku, seznam najboljših in najlepših plaž, skratka plaž, vrednih<br />

ogleda. To pa še ni vse. Ponudimo tudi najboljše (in najdražje) hotele, restavracije,<br />

znamenitosti, zabavo, izlete, dogodke ter ostale pomembne informacije, ki bi petičneže<br />

zanimale.<br />

Vse se je začelo s kreiranjem ozadja.<br />

Ker imam opravka z aplikacijo ki ponuja uporabniku neke podatke, sem se moral najprej<br />

vprašati kaj storiti s temi podatki? Kako jih predstaviti? Kako shraniti? Kako z njimi<br />

operirati? Na splošno nam Google ponuja dva različna pristopa. Prvi je klasičen, z uporabo<br />

podatkovne baze SQLite, ki vsebuje skoraj vse možnosti, ki jih ponuja originalen SQL,<br />

drugi pa je čisti androidni pristop, s shranjevanjem podatkov v t.i. »shared preferences«,<br />

kamor si lahko ob primerni uporabi poleg osnovnih, shranimo tudi lastne sestavljene tipe in<br />

celo kar cele objekte. No, obstaja pa tudi še tretja možnost, ki se mi vsaj na prvi pogled in<br />

po nekaj brskanja po spletu in razmišljanja, ni zdela prav nič sporna, še več bila je prav<br />

zanimivo. Prejšnji opciji sem že testiral, tole zadnjo pa ne popolnoma zato sem imel<br />

idealno priložnost da sem to izkoristil. Torej, Android podpira polja (array), katera se<br />

shranjujejo v posebnih .xml datotekah. Ugotovil sem kako se operira z njimi in kaj kmalu<br />

sem imel v glavi tudi strukturo. Ob pravilnem strukturiranju .xml datotek, je tudi delo z<br />

njimi sila enostavno. Napisati je potrebno samo razpoznavalnik, ki potem po vnaprej<br />

določenem ključu ali značkah najde iskane podatke in to v impresivno kratkem časovnem<br />

obdobju.<br />

11


Slika 9: Primer strukturiranja podatkov po array-ih v .xml datoteki<br />

5 Združljivost z različnimi verzijami Androida<br />

Za razliko od Applovega iOS-a, je Android mnogo bolj kompliciran za razvoj.<br />

Kompliciran v tem smislu, da je potrebno veliko več prilagajanja, saj teoretično niti dve<br />

napravi nista enaki med različnimi modeli in proizvajalci. Android z vsako novo različico<br />

nekatere metode doda druge odstrani, potem doda kakšen nov gradnik, ali pa zgolj<br />

posodobi starega in mu doda ali odvzame kakšno opcijo. Zatorej nobena aplikacija ne<br />

izgleda enako na dveh različnih verzijah, recimo 2.3 ter 4.0. Naročnik je imel specifično<br />

željo da bo izgled enak tudi na starejših verzijah, zato je bilo potrebno poiskati knjižnico,<br />

ki zagotavlja združljivost za nazaj. To je bilo potrebno ker Android od verzije 4.0 naprej<br />

aplikacijam dodeljuje ActionBar - to je naslovna vrstica s funkcijo menija in navigacije<br />

med menijskimi možnostmi, prej pa le-tega ni bilo.<br />

12


Slika 10: Android 2.3 – Gingerbread<br />

Slika 11: Android 4.0 – IceCreamSandwich<br />

13


Našel in uporabil sem API – aplikacijski programski vmesnik, ki se imenuje ActionBar Sherlock.<br />

Sherlock ponuja popolnoma prilagodljivo in enostavno razumljivo kodo, ki jo preprosto vključimo<br />

v naš projekt. Potrebno je samo določiti kaj potrebujemo in kakšen bo izgled, nato pa dopisati<br />

funkcionalnosti. Najboljše od vsega tega pa je, da je Sherlock odprtokoden, nelicenciran projekt,<br />

kar pomeni da je na voljo za brezplačen prenos, na voljo pa nam je tudi vsa izvorna koda, da si<br />

lahko vse prilagodiš po lastnih željah. Razvijalci nam vsake toliko časa postrežejo z novostmi,<br />

katere lahko hitro snamemo tudi prek protokola git.<br />

Slika 12: Logotip ActionBarSherlock<br />

Slika 13: Primer kako se nastavi ActionBar<br />

14


6 Navigacija po aplikaciji<br />

Poleg vsega že omenjenega, je bilo potrebno najti neko smiselno navigacijo po aplikaciji.<br />

Na začetku imamo mrežast pogled z vsemi glavnimi temami, ki jih aplikacija obravnava.<br />

Za ta namen je bilo potrebno izdelati element mreže (njegov izgled), potem pa z<br />

adapterjem povezati več teh elementov v celoto in jim prirediti obnašanje ob kliku. Potem<br />

pa se nam odpre pogled seznama, kateremu smo zopet morali izdelati izgled (levo dodati<br />

sliko, spodaj kratek opis, desno puščico itd.) in zopet z adapterjem povezati celoto. Vendar<br />

tega koraka še ni konec. Imeli smo recimo najlepše plaže razvrščene v klasičnem pogledu<br />

seznama. Uporabnik pa bi lahko izbiral urejenost seznama (po priljubljenosti, po abecedi,<br />

po oddaljenosti) in to je najlažje storiti s fragmenti. Zopet se pojavi problem združljivosti s<br />

prejšnjimi verzijami, zato sem moral uporabiti originalno Googlovo knjižnico »Support<br />

Library«, ki poleg razreda Fragment ponuja tudi razrede: FragmentManager,<br />

FragmentTransaction, ListFragment, DialogFragment, Loader, LoaderManager,<br />

AsyncTaskLoader in CursorLoader. Meni sta bila pomembna le prva dva. Fragment<br />

pomeni, da kar je trenutno vidno na ekranu ni vse. Povedati hočem da navigacija tokrat ne<br />

poteka z gumbi, ampak preko gest – premikanja levo-desno s prstom po ekranu. Če se tako<br />

premikamo, vidimo da imamo 3 enake sezname, le urejeni so drugače. Dejansko prejšnji<br />

stavek ne drži popolnoma. V kolikor ne bi uporabljali razreda Fragment, bi dejansko imeli<br />

3 enake sezname, tako pa imamo 1 seznam, ki se zgolj preoblikuje, odvisno v katerem<br />

fragmentu celotnega okvirja se nahajamo. Ne nazadnje pa sem izdelal tudi glavni oz<br />

osrednji pogled, ko dejansko gledamo sliko, opis in ostalo od izbrane najljubše plaže.<br />

Slika 14: Mrežni pogled - testna različica<br />

15


Slika 15: Adapter ki združi več enakih elementov v mrežo<br />

16


Slika 16: Pogled seznama – testna različica<br />

Slika 17: Glavni oz. osrednji pogled - testna različica<br />

17


7 Prilagoditev na različne ekrane in design<br />

Da bi imeli enak izgled oz. kvaliteto grafike na najvišjem možnem nivoju na vsaki napravi<br />

je bilo potrebno prilagoditi aplikacijo na različne velikosti ekranov. Android ima po<br />

velikosti poimenovane ldpi, mdpi, hdpi, xhdpi ekrane. V praksi to pomeni, da je bilo<br />

potrebno v različno poimenovane mape znotraj projekta dodati malce spremenjeno<br />

postavitev gradnikov na ekranu, vključujoč tudi različice za t.i. »landscape« način, ali<br />

način ko je ekran »prevrnjen«.<br />

Slika 18: Primer različice za hdpi ekran<br />

18


8 Dodelava in ostalo<br />

Slika 19: Takole izgledajo nekatere mape za prilagoditve<br />

Nadalje je bilo potrebno spremeniti tip projekta, da dovoljuje tudi uporabo navigacije in pridobiti<br />

ključ za uporabo Google Maps znotraj naše aplikacije, kjer sem na zemljevidu izrisoval pot od<br />

trenutne lokacije do izbrane destinacije.<br />

Vključil sem tudi vremenski modul Weatherlove za prikazovanje vremenskih podatkov.<br />

Nazadnje pa je bilo potrebno pri Googlu odpreti Analytics račun da sem dobil unikatno kodo<br />

projekta, na mobilni aplikaciji pa uporabiti pridobljeno kodo ter implementirati knjižnico za<br />

spremljanje statistike aplikacije pri končnih uporabnikih.<br />

Slika 20: Pogled uporabnikov Weatherlove za nekaj dni<br />

19


Slika 21: Pogled GoogleMaps zemljevida<br />

Slika 22: Uporabniki Weatherlova - prednjačijo Nemci, Francozi in Američani<br />

20


Slika 23: Takole izgleda "pie chart" obiskovalcev meseca<br />

9 Oddaja na Google Play in zaklep<br />

Po končani implementaciji in nekajdnevnem testiranju, je bilo potrebno aplikacijo prevesti<br />

v .akp datoteko kakor Android imenuje svoje izvršljive programe, ter zakleniti s<br />

programom ProGuard. Zaščita zaklene in premeša kodo da je neberljiva, tudi če bi<br />

kdorkoli hotel po metodi »reverse engineering« .apk datoteko pretvoriti nazaj v kodo.<br />

Pri tem postopku je potrebno paziti, da ProGuardu povemo, da naj pri zaklepu izpusti<br />

Support Library ter Analytics knjižnico, drugače program ne bi deloval.<br />

Slika 24: Ukazi ProGuardu naj bo previden z ActionBar Sherlock<br />

21<br />

Slika 25: Logotip Google Play tržnice


10 Razno<br />

Rad bi tudi povedal, da sem med samim razvijanjem programa poleg uporabe Eclipsa,<br />

testiral tudi Android orodje AIDE, ki je brezplačno na voljo na marketu Google Play. Gre<br />

za razvojno orodje, ki teče na Android operacijskem sistemu. Izkaže se, da ponuja resnično<br />

ogromno, recimo tudi uporabo gita. Tako da sem lahko razvijal praktično kjerkoli. Malce<br />

šibko se AIDE izkaže pri podpori kakšnih manj znanih razredov ali knjižnic, ali pa takšnih<br />

bolj zahtevnih. Problem sem imel recimo pri uporabi Google Maps razredov. Konec<br />

koncev pa gre za odličen majhen program ki ga preprosto morate uporabljati. Sicer nikakor<br />

ne more nadomestiti Eclipsa ampak omogoča programiranje na telefonu za telefon kar mu<br />

daje ogromno dodane vrednosti.<br />

Slika 26: Zaslonski posnetek uporabe AIDE na tablici z Androidom 3.0 Honeycomb<br />

22


11 Weatherlove modul<br />

Med izdelavo projekta Biseri, sem nekaj dni pomagal tudi pri izdelavi določenega modula<br />

za Weatherlove. Potrebno je bilo uporabiti Googlov API za določanje GPS lokacije. Na<br />

kratko naj omenim da si lahko API-ju poslal zgolj »latitude« in »longitude« oz.<br />

zemljepisno širino in dolžino, kot rezultat pa si prejel celoten naslov lokacije, pridobivanje<br />

podatkov pa je potekalo tudi v obratno smer, se pravi da si lahko iz naslova pridobil<br />

zemljepisno širino in dolžino. Ali si uporabil prvi ali drugi podatek je bilo odvisno od<br />

nastavitev posameznega uporabnika.<br />

Slika 27: Primer pridobivanja naslova iz ostalih podatkov med testiranjem na terenu<br />

12 Facebook SDK<br />

Bil sem zadolžen tudi za izdelavo primernega modula, ki aplikacije povezuje s socialnim<br />

omrežjem Facebook. Na Facebookovem gitu sem našel njihov kompleten SDK (Software<br />

Development Kit), ki omogoča implementacijo praktično vsega kar to priljubljeno socialno<br />

omrežje omogoča in ponuja. Moja naloga je bila sestaviti minimalen modul, ki je potreben<br />

za preprosto komunikacijo s Facebookovo spletno stranjo in pisanjem prispevkov,<br />

komentarjev, »lajkov«, ter prenašanje slik. Vendar pa je bilo potrebno tudi veliko truda, da<br />

sem v primerni obliki obdržal avtorizacijo za prijavo in registracijo, ki poteka po principu<br />

OAuth verzije 2. Zelo sem moral biti pazljiv, kajti Facebook prijave preverja s pomočjo<br />

TOKEN ključev, ki jih menja avtomatsko na 24ur.<br />

23


Slika 28: Delček kode, ki prikaže vnosno masko za prijavo v sistem FB<br />

24


Slika 29: Nadzorna plošča FB spletne aplikacije ter vmesnega člena<br />

25


13 iOS učenje<br />

Nazadnje sem se lotil še učenja iOS programiranja. Da bi osvojil cele gore znanja, mi je<br />

seveda zmanjkalo časa, sem pa vesel da sem sploh imel to možnost. Spoznal sem glavne<br />

lastnosti programskega jezika objektni-C, ter orodje za izdelavo iOS aplikacij XCode. Ker<br />

mi je na praktičnem izobraževanju zmanjkalo časa bom zaradi izjemne priljubljenosti<br />

platforme in velike možnosti zaslužka, z učenjem iOS programiranja nadaljeval kar sam.<br />

Slika 30: Izgled orodja XCode<br />

26


4. SKLEP<br />

Mislim da sem celotno bistvo glavnega projekta in vseh ali pa skoraj vseh tistih manjših<br />

povedal že v samem jedru poročila. Podjetje mi je dalo tudi neverjetno priložnost tudi<br />

prisostvovanja na nekaterih sestankih z naročniki, tako da sem se ogromno naučil tudi dela<br />

z ljudmi ter poslovnih odnosov s strankami. Rad bi dodal samo to, da je v takšnem<br />

kolektivu v užitek delati in se tudi ogromno naučiti. Delo je bilo zanimivo, morda včasih<br />

celo prevelik zalogaj, ampak nič ne de, mentor mi je bil vedno na voljo, da mi je s svojim<br />

znanem še izdatneje pomagal, za kar se mu tudi najlepše zahvaljujem.<br />

27


5. VIRI<br />

� http://developers.facebook.com/<br />

� http://en.wikipedia.org/wiki/Eclipse_(software)<br />

� http://en.wikipedia.org/wiki/Git_(software)<br />

� http://developer.android.com/index.html<br />

� http://www.google.com/analytics/<br />

� https://play.google.com<br />

� http://en.wikipedia.org/wiki/IOS<br />

� http://www.stackoverflow.com<br />

� http://actionbarsherlock.com/<br />

� http://www.bitbucket.org<br />

� http://www.tfstoritve.com<br />

28

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!