Škola Android programiranja časopisa Vidi
Android programiranje #14: Alternativni pristup razvoju aplikacija III
Danas ćemo se pozabaviti preostalim komponentama dostupnim u Googleovom alatu App Inventor for Android namijenjenom brzom razvoju Android aplikacija. Komponente su razvrstane u nekoliko grupa slijedećih naziva: Sensors, Screen Arrangement, LEGO MINDSTORMS, Other stuff i Not ready for prime time. Krenimo redom.
Sensors komponente
Danas je sasvim uobičajeno da pametni telefoni i drugi uređaji temeljeni na Androidu imaju ugrađen manji ili veći broj senzora, koji se mogu vrlo djelotvorno iskoristiti u različitim vrstama aplikacija (najčešće igrama). Zbog toga je razvijeno nekoliko posebnih komponenti za relativno jednostavnu podršku takvoj vrsti hardvera. Sve komponente su nevidljive tijekom izvođenja, ali moraju biti uključene u aplikaciju da bi se mogle iskoristiti njihove mogućnosti.
Komponenta AccelerometerSensor zadužena je za interakciju softvera sa senzorom za mjerenje pomicanja uređaja po sve tri osi koordinatnog sustava. Od tuda dolaze nazivi najvažnijih svojstava: XAccel, YAccel, Zaccel. Pomoću svojstva Available programer može provjeriti jesu li navedeni senzor uopće dostupni u uređaju, a svojstvom Enabled upravljati dozvolom korištenja senzora. Događajem AccelerationChanged može se precizno reagirati na pomicanje uređaja po bilo kojoj od navedene tri osi (parametara događaja), dok je nešto „grublji događaj“ Shaking namijenjen mnogo jednostavnijem zadatku – običnoj provjeri „drmanja“ uređajem. Drugi događaj se najčešće može upotrijebiti za efektan prekid izvođenja različitih operacija u aktivnoj aplikaciji.
Druga nevidljiva kontrola iz iste skupine je LocationSensor, a namijenjena je dobijanju geografske pozicije mobilnog uređaja, ako je u njega ugrađen odgovarajući GPS prijemnik (svojstvo HasLongitudeLatitude). Softverski je podržano mjerenje nadmorske visine (svojstvo HasAltitude), ako i takva mogućnost postoji u hardveru. Ostalim dostupnim svojstvima može se dobiti vrijednost svake od navedenih tri dimenzija, dok su događaji LocationChanged te StatusChanged zaduženi za reakciju aplikacije na promjene pozicije uređaja u prostoru, odnosno na promjene načina mjerenja pozicije (izravno dobijeni GPS podaci ili podaci dobijeni od mrežnog operatora).
Zadnja komponenta iz grupe OrientationSensor zadužena je za provjeru orijentacije uređaja u prostoru (svojstva Roll, Pitch i Yaw te događaj OrientationChanged). Ova sofverska komponenta se u kombinaciji s pripadajućim senzorom koristi u različitim aplikacijama za promjenu načina prikaza podataka ovisno o promjeni orijentacije uređaja (vodoravni ili vertikalni prikaz podataka).
Screen Arrangement komponente
Sve tri komponente iz ove grupe (HorizontalArrangement, TableArrangement i HorizontalArrangement) zadužene su za jednostavnije raspoređivanje ostalih komponenti po zaslonu uređaja. Kao što im i nazivi govore, svaka od komponenti je zadužena za jednu vrstu rasporeda osnovnih kontrola. Osim za početno raspoređivanje kontrola sve tri komponente mogu se također iskoristiti za njihovo jednostavnije premještanje ili skrivanje. Dostupna svojstva kontrola su vrlo jednostavna te razumljiva sama po sebi (Visible, Height, Width, Rows i Columns).
LEGO MINDSTORMS komponente
Sedam komponenti iz grupe LEGO MINDSTORMS predviđene su za upravljanje različitih dijelovima poznatog Lego kompleta za učenje robotike pomoću nekog od Android uređaja. Iskreno, nismo imali priliku ni zadovoljstvo isprobati kako sve to skupa djeluje u praksi, pa se zato za sada nećemo previše ni baviti ovim dijelom razvojnog alata. Nadamo se da ćemo u ne tako dalekoj budućnosti ipak biti u prilici isprobati simbozu Lego i Google proizvoda.
Other stuff komponente
Šaroliko društvo softverskih komponenti iz ove grupe nikako se po svojoj namjeni ne može dovesti u izravnu vezu, zbog čega je cijela grupa dobila naziv koji označava takvu raznolikost.
Jedna od najvažnijih komponenti iz grupe je komponenta ActivityStater. Zadužena je za pokretanje nekoliko različitih aktivnosti na uređaju: drugih aplikacija napravljenih u istom alatu ako takve postoje u uređaju (čime se može izbjeći dosta ozbiljno ograničenje o korištenju jednog zaslona ekrana po aplikaciji), aplikacije zadužene za upravljanje kamerom (ako je kamera ugrađena u mobilni uređaj), pretraživanje web sadržaja, postavljanje preglednika na točno određenu web adresu, odnosno postavljenje točno određene lokacije na karti. Zbog toga komponenta podržava različite načine vlastitog pozivanja. Evo primjera iz prateće dokumentacije zaduženog za pretraživanje weba u „potrazi za vampirima“.
Action: android.intent.action.WEB_SEARCH
ExtraKey: query
ExtraValue: vampire
ActivityPackage: com.google.android.providers.enhancedgooglesearch
ActivityClass: com.google.android.providers.enhancedgooglesearch.Launcher
Komponenta BarcodeScanner zadužena je za jednostavno čitanje običnih jednodimenzionalnih, ali i sve popularnijih dvodimenzionalnih bar kodova (korištenjem metode DoScan, svojstva Result i događaj AfterScan). Da je takva komponenta jednostavno neizostavna u modernim softverskim rješenjima, autor teksta može posvjedočiti iz prve ruke. Na nedavno završenoj Microsoftovoj konferenciji Windays 11 u Rovinju, osim očekivanih mjesta za takvu vrstu označavanja, dvodimenzionalni bar kodovi su se mogli primijetiti i na majicama nekih sudionika. Naoružani Android uređajem te odgovarajućom aplikacijom više ne morate gubiti vrijeme da bi saznali osnovne informacije o vlasniku majice. Umjesto toga u njegovom smjeru jednostavno uperite kameru i pogledate na zaslonu sve što vam želi odati o sebi.
Dvije komponente sličnog naziva BluetoothServer i BluetoothClient zadužene su za podršku obiju strana koje sudjeluju u Bluetooth komunikaciji (servera i klijenta). Popis dostupnih metoda, svojstava i događaja je zbilja impresivan (bar u usporedni s drugim komponentama iz istog alata), a potrebno je poznavati još poneki detalj Bluetooth tehnologije, tako da se u ovom tekstu jednostavno ne možemo detaljnije pozabaviti njihovim korištenjem. Kako je potpisnik ovih redova u bliskoj prošlosti imao prilike raditi na Bluetooth orijentiranom projektu namijenjenom starim dobrim Java MIDP uređajima, osobno može potvrditi da je korištenje Google tehnologije na istom području bitno jednostavnije. Budući da sami razvojni inženjeri tvrde da se na ovom segmentu razvojnog alata još uvijek intenzivno radi, ipak treba malo sačekati sa završnom ocjenom.
Komponenta Notifier omogućava prikaz različitih vrsti obavijesti korisniku aplikacije odnosno trajno bilježenje takvih informacija u svrhu kasnije analize. Za to je pripremljeno nekoliko metoda (ShowMessageDialog, ShowChooseDialog, ShowTextDialog, ShowAlert i LogError) čije korištenje rezultira različitim načinom prikaza informacija korisniku odnosno njihovom bilježenju. Na raspolaganju su također dva događaja: AfterChoosing i ShowChooseDialog, kako bi se moglo ustanoviti što je poduzeo korisnik kao reakciju na prikazane informacije od strane aplikacije.
Zadnje dvije komponente iz grupe (SpeechRecognizer i TextToSpeech) zamišljene su kao podrška za izradu govorno orijentiranog korisničkog sučelja u vlastitim Android aplikacijama. Prva kontrola namijenjena je razumijevanju izgovorenog, dok je druga zadužena za suprotan proces – izgovaranje napisanog teksta. Koliko to sve skupa radi ili ne radi dobro s različitim govornim jezicima možete isprobati sami. Obje komponente su vrlo jednostavne za korištenje, jer se primjena svodi na upotrebu jednostavnih metoda poput GetText, Speek, Country i Language.
Spomenimo na ovom mjestu kako se za izgovor napisanog teksta koristi ista Google tehnologija koja je korištena u serijalu o naprednom programiranju Windows aplikacija, objavljenom u više prethodnih brojeva vašeg omiljenog časopisa.
Not ready for prime time komponente
U posljednoj grupi komponenti navedene su komponente na čijem razvoju još uvijek intenzivno rade Googleovi razvojni inženjeri, pa su kao takve podložne različitim promjenama dok ne stignu u fazu dovršenog proizvoda. Trenutno su u tu grupu svrstane slijedeće komponente:
FusionTablesControl – korištenje kartografskih prikaza u kombinaciji s FusionTables tehologijom.
GameClient – povezivanje aplikacija (najčešće igara) s odgovarajućim serverima za „udružene NEzločinačke poduhvate“.
SoundRecorder – bilježenje i pohranjivanje zvučnih zapisa.
TinyWebDB – komunikacija s web servisima zbog dvosmjerne razmjene podataka.
Voting – osnova za buduće glasačke listiće u „Android demokraciji budućnosti“.
Kako su sve nabrojane komponente iz ove grupe u razvoju, za sada se nećemo previše ni baviti njima. Ipak moramo priznati da nas strašno zanima vrlo novi svijet u kojem ćemo praktično trenutno moći odlučivati o bitnim stvarima u zemlji, a ne čekati da to radimo od izbora do izbora. Nažalost, ipak bi se mogli okladiti na prilično velike iznose kako će takvu tehnologiju prije prihvatiti različiti „reality“ spektakli nego državna uprava. Živi bili pa vidjeli.
Ovime je završeno predstavljanje najvažnijih segmenata Googleovog razvojnog alata za neprogramere. Preostalo je da pomoću njega probamo napraviti jednu složeniju aplikaciju kao demonstraciju kako različite komponente surađuju u praksi.
Piše: Nenad Crnko
| Print article | This entry was posted by Ivan Kišić on 25/10/2011 at 18:47, 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.





