Škola Android programiranja časopisa Vidi
Android programiranje #16: Korištenje kartografskih servisa
U današnjem završnom nastavku svojevrsnog podserijala o korištenju Googleovog alata za brzo prototipiranje aplikacija, pokazat ćemo kako se u okviru tog alata koriste kartografske mogućnosti Googleovih servisa, jedne od najčešće korištenih tehnologija u aplikacijama na mobilnim uređajima. Dodatna vrlo zanimljiva razvojna tehnika demonstrirana u istom primjeru je pozivanje jedne Android aplikacije iz druge Android aplikacije. Već smo nekoliko puta spomenuli kako je trenutno jedno od najvećih ograničenja Googleovog razvojnog alata za neprogramere u tome što se unutar jedne aplikacije može koristiti samo jedan raspored kontrola. Upravo sposobnošću pozivanja jedne aplikacije iz druge može se zaobići spomenuto ograničenje. Način korištenja kartografskih servisa na kojem se temelji današnji tekst prikazan je u Googeovom primjeru pripremljenom od strane profesora Davida Wolbera sa sveučilišta u San Franciscu.
Prije nego što nastavimo s detaljnijim objašnjavanjem primjera istaknimo na ovom mjestu još jednu bitnu mogućnost operativnog sustava Android u pogledu izrade rješenja koje se sastoji od većeg broja sastavnih dijelova. Dok za pozivanje drugog dijela aplikacije iz početnog dijela treba koristiti komponentu ActivityStarter, povratak unatrag se izvodi potpuno automatski. Dovoljno je samo izabrati standardnu operaciju operativnog sustava za tu namjenu, to jest odgovarajuću tipku na samom uređaju.

Prvi dio aplikacije (sučelje): Sastoji se od tri osnovne kontrole: Image1, ListPicker1 i ActivityStater1.
U prvom dijelu aplikacije na osnovni zaslon projekta postavljene su svega tri kontrole: Image1, ListPicker1 i ActivityStater1. Kontrole su redom namijenjene za prikaz početne slike programa, izbor triju različitih odredišta za prikaz na karti, te na kraju komponente za pokretanje dodatne kartografski orijetirane aplikacije. Prve dvije kontrole ne bi trebale biti posebno teške za korištenje, tako da ih nećemo ni posebno opisivati. Uostalom, kontrolu za prikaz slika koristili smo već u prvom, najtrivijalnijem primjeru korištenja alata.
Nešto više vremena posvetit ćemo korištenju komponente ActivityStarter, zato što ona zahtijeva oblik znanja kakav je uobičajen u krugovima pravih Android programera, ali nije baš uobičajen za korisnike neprogramere. Drugim riječima, druga komponenta cjelokupnog rješenja mora se pozvati iz prve prema točnom definiranom protokolu, što bi u ovom slučaju imalo otprilike slijedeći oblik:
ActivityStarter svojstvo Vrijednost
Action android.intent.action.VIEW
ActivityClass com.google.android.maps.MapsActivity
ActivityPackage com.google.android.apps.maps

Prvi dio aplikacije (programski blokovi): Najvažniji dio povezan je aktivnostima kontrole ActivityStarter.
Programski blokovi povezani s aplikacijom podijeljeni su u dva dijela. Prvi dio je zajedno s pratećim deklaracijama vrijednostima zadužen za pripremu početnog izgleda aplikacije (vidi prateću sliku uz tekst), dok se drugi izvodi nakon odabira neke od zadanih lokacija: “Tour Eiffel”, „Musee du Louvre“ i „Cathedrale Notre Dame“. Nakon odabira jednog od navedena tri mjesta iz popisa prelazi se na izvođenje programskog bloka ListPicker1.AfterPicking.
Na ovom mjestu dolazimo do male dodatne komplikacija pa je treba objasniti nešto detaljnije. Da bi se pomoću komponente ActivityStarter mogla uspješno pokrenuti druga komponenta za prikaz nekog mjesta na mapi, potrebno je komponenti prenijeti adresu u točno propisanom formatu, a to u ovom slučaju znači popunjavanje svojstva ActivityStater.DataUri. U spomenuto svojstvo mora se postaviti kombinacija vrijednosti „geo:0,0?q=“ te konkretne vrijednosti za izabranu lokaciju iz popisa dostupnih mjesta (ListPicker1.Selection). Za to se koristi posebni programski blok zadužen za rukovanje nizovima znakova (make text). U slučaju odabira druge od dostupnih vrijednosti dobije se konačna vrijednost: geo:0,0?q=’Musee du Louvre’.
Sad je konačno sve spremno za pozivanje drugog dijela aplikacije, pa prvi dio aplikacije zaista predaje kontrolu izvođenja drugom dijelu na ranije opisani način. Po želji se (to smo isto već spomenuli) možete vratiti na prvi dio korištenjem standardne operacije u operativnom sustavu Android.
„Sirovi“ oblik kartografskog prikaza kakav je u ovom trenutku prisutan u aplikaciji može se dalje nadograđivati tako da se modulu zaduženom za prikaz objekta mnogo preciznije zada način prikaza nekog mjesta prema sintaksi propisanoj od strane Googlea. Na primjer, za znatno atraktivniji način prikaza svih triju lokacija mogla bi se navesti „malo složenije odrednice“:
Eiffel Tower
http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=eiffel+tower&sll=37.0625,-95.677068
&sspn=48.909425,72.333984&ie=UTF8&hq=Tour+Eiffel&hnear=Tour+Eiffel,+Quai+Branly,+75007+Paris,+Ile-de-France,+France&ll=48.857942,2.294748&spn=0.001249,0.002207&t=h&z=19
Musee Louvre
http://maps.google.com/maps?f=q&source=s_q&hl=en&q=louvre&sll=48.86096,2.335421&sspn=0.002499,0.004415&ie=UTF8&t=h&split=1
&filter=0&rq=1&ev=zi&radius=0.12&hq=louvre&hnear=&ll=48.86096,2.335421&spn=0.002499,0.004415&z=18
Notre Dame, Street View
ttp://maps.google.com/maps?f=q&source=s_q&hl=en&q=french+landmarks&sll=48.853252,2.349111&sspn=0.002411,0.004415
&ie=UTF8&t=h&radius=0.12&split=1&filter=0&rq=1&ev=zi&hq=french+landmarks&hnear=&ll=48.853252,2.349111&spn=0,0.004415
&z=18&layer=c&cbll=48.853046,2.348861&panoid=74fLTqeYdgkPYj6KKLlqgQ&cbp=12,63.75,,0,-35.58
U slučaju da želite provjeriti sami kako sve to skupa lijepo djeluje u praksi, a nemaze ni vremena ni volje da ispočetka razvijate cijelu aplikaciju, možete krenuti linijom manjeg otpora te usmjeriti svoj preglednik na adresu http://appinventor.googlelabs.com/learn/tutorials/maptour/maptour.html
Kontinuirani razvoj alata

Napredno izvođenje aplikacije: U prikaz su uključene dodatne opcije za prikaz slika na zadanoj lokaciji.
U razdoblju od prvog spominjanja razvojnog alata App Inventor for Android u ovom serijalu, pa do današnjeg nastavka, Googleovi razvojni inženjeri marljivo su radili na njegovim unapređenjima (a rade i dalje). Budući da se razvoj aplikacija izvodi izravno u nekom od preglednika nije potrebno preuzimati nikakve nove verzije alata da bi se iskoristile te novosti, nego su one odmah dostupne čim se alat slijedeći put pokrene nakon njegovog ažuriranja na Googleovom serveru.
Osim ispravke uočenih pogrešaka prijavljenih od strane korisnika, izgleda da se najintenzivnije radi na daljnjim doradama komponenti u okviru kolekcije Other Stuff. Komponenta Web zamišljena je tako da osigurava dodatne mogućnosti u izravnom preuzimanju podataka s web servera, za što se do sada morao koristiti poseban Java kod (ili programski kod u nekom drugom programskom jeziku) distribuiran na server. Sada je postalo moguće pozivati određene skupine API funkcija izravno preko Web komponente. Na primjer, korištenjem poziva funkcija iz Yahoo Finance API biblioteke prilično je jednostavno u Android aplikaciju dodati prikaz različitih poslovnih informacija o čijoj pripremi i pouzdanosti brine Yahoo.
Iako to nema izravne veze s temom današnjeg teksta, za eventualno zainteresirane ipak spomenimo kako se sve potrebne informacije o korištenju Yahoo Finance API tehnologije nalaze na adresi: http://www.gummy-stuff.org/Yahoo-data.htm
Za sada toliko o ovoj temi. Nadamo se da vas je sve do sada napisano potaklo da počnete razmišljati o razvoju vlastitih Android aplikacija, čak i ako niste programer, ili ako to nikada niste ni mislili postati. Kad savladate razvojni alat za neprogramere možda ćete poželjeti da se u budućnosti počnete baviti i „pravim“ Google Android programiranjem. Na njega ćemo se ponovo vratiti u slijedećem nastavku, kako bi pokazali još nekoliko naprednijih tehnika korištenja osnovnog SDK alata.
| Print article | This entry was posted by Ivan Kišić on 25/10/2011 at 19:26, and is filed under Škola. Follow any responses to this post through RSS 2.0. Both comments and pings are currently closed. |
Comments are closed.


