Svedoci smo toga da je operativni sistem Android pokorio tržište potrošačke elektronike i da veliki broj ljudi poseduje neki uređaj (u prvom redu, mobilni telefon) koji ga koristi kao platformu za upravljanje hardverom i interakciju sa korisnikom. Postoji više razloga tolike popularnosti, a najvažniji su da je u pitanju dovoljno dobar besplatan operativni sistem i da iza njega stoji uticajan gigant na polju IT industrije.
Android aplikacije iz oblaka Za Android su napisani milioni aplikacija od kojih velika većina odlazi na „otpad”, ali je u tom mnoštvu moguće pronaći i kvalitetne stvari za svačiji ukus. Međutim, nisu tako retke situacije kada bi vlasniku mobilnog telefona zatrebala neka jednostavna aplikacija koju nije moguće preuzeti sa interneta. I šta se dešava ukoliko taj čovek poželi da napiše svoju sopstvenu aplikaciju? Pre svega je potrebno da se nauči programski jezik Java, koji je uzet kao osnovni (ali nije i jedini) za kreiranje Android aplikacija. Java po svojoj prirodi nije najjednostavniji jezik za izučavanje, pa je potrebno dobro zasukati rukave i ostaviti nekoliko meseci za njegovo praktično savladavanje. Još veću glavobolju predstavlja savladavanje Android SDK funkcija koje se broje hiljadama. Razume se, to je scenario koji će u startu obeshrabriti devet od deset početnih entuzijasta, što nam nikako nije cilj. Na sreću, postoji način da se kreiraju programi za Android, a da se pri tome ne troši mnogo vremena na učenje teorije programiranja, a zove se - App Inventor 2. Jedan od razloga koji je svojevremeno mnoge zainteresovane odvratio od učenja Android programiranja je bio taj da je za uspostavljanje radnog okruženja na bazi editora Eclipse, emulatora i paketa Android SDK trebalo mnogo vremena i nerava. Poslednjih nekoliko godina od kada se pojavio paket Android Studio taj posao je umnogome olakšan. App Inventor 2 ide još korak dalje i maksimalno pojednostavljuje celu proceduru. Reč je o veb aplikaciji koja se odvija iz pregledača interneta i koja sa sobom donosi korisnički interfejs koji umnogome podseća na pomenuti Android Studio. Inače, ceo projekat je startovao krajem 2010. godine u okviru poznatog američkog univerziteta MIT pod rukovodstvom profesora Hala Abelsona i u početku je bio deo Google Labsa, inicijative koja je služila kao inkubator novih ideja u oblasti programiranja. Međutim, nepunih godinu dana posle nastanka ovog servisa, dolazi do zatvaranja Google Labs i AppInventor prelazi u nadležnost samog MIT-a, ali se i dalje za pristupanje resursima koristi Guglov korisnički nalog. Danas projekat ima preko četiri miliona registrovanih korisnika i do sada je na njemu izrađeno preko dvanaest miliona aplikacija (mada je ovaj poslednji podatak potrebno uzeti sa rezervom jer je u velikom broju slučajeva u pitanju trivijalni kod).
Redovni čitaoci časopisa će se svakako setiti da smo na ovim stranicama pre nekoliko meseci pisali o programskom jeziku Scratch koji je prvenstveno namenjen informatičkoj edukaciji dece i mladih. Princip je krajnje jednostavan - korisnik/programer bira postojeće vizuelne elemente i slaže ih pomoću jednostavnih logičkih pravila u nešto što dobija konture pravog računarskog programa. App Inventor 2 preuzima isti takav način konstruisanja programa i pri tome ga čini još konkretnijim i praktično upotrebljivijim. Formiranje radnog okruženja Za testiranje rada aplikacije postoje tri načina. Prvi se odnosi na povezivanje mobilnog telefona ili tableta sa računarom preko USB kabla. Za to je potrebno sa lokacije goo.gl/QSM1vM (Windows korisnici) preuzeti i instalirati program pod nazivom MIT App Inventor Tools. Eventualno će još biti potrebno instalirati USB drajver od vašeg Android uređaja. Drugi način je još jednostavniji i podrazumeva povezivanje Android uređaja sa računarom putem Wi-Fi mreže, za šta je potrebno na telefon/tablet instalirati aplikaciju MIT App Inventor Companion. Ovo je ujedno i preporučeni način povezivanja. Treći način se odnosi na testiranje u okviru emulatora Android uređaja i najviše je od koristi onima koji ne poseduju neki od uređaja sa ovim operativnim sistemom. Veliki nedostatak rada sa emulatorom se odnosi na predugo vreme potrebno da se on pokreće i da se na njega prebaci aplikacija, inače je dosta praktična stvar. Emulator se postavlja putem aplikacije koju smo pomenuli kada smo govorili o povezivanju putem USB kabla. Što se tiče podržanih uređaja, programe je moguće koristiti na svim telefonima i tabletima od verzije Androida 2.3 Gingerbread pa na dalje, a to opet znači, praktično sve što se pojavilo u poslednjih pet godina.Interfejs Radna površina veb aplikacije je podeljena na četiri glavne celine. Levo se nalazi paleta sa alatkama koje koristimo za dizajniranje grafičkog interfejsa. Centralni deo (panel View) je posvećen editoru koji bi u režimu WYSIWYG trebalo da prikaže kako će od prilike izgledati naša aplikacija na samom uređaju. Sledeći panel nosi naziv Components i namenjen je manipulaciji sa objektima koje koristimo prilikom kreiranja aplikacije. Svi elementi korisničkog interfejsa koje smo prethodno dodali u vizuelni editor će biti prikazane na ovom mestu. Osim toga, preko ekranskog tastera Media, u projekat možemo dodavati svakojake zvučne i grafičke datoteke. Krajnji desni panel pod nazivom Properties je namenjen radu sa svojstvima izabranog objekta. Iznad područja namenjenog kreiranju aplikacije se nalazi glavni meni koji broji samo tri glavne stavke (ne računajući Help). Stavka Projects sadrži opcije vezane za (očekivano) rad sa projektima, kao što su započinjanje rada na novom projektu, snimanje, uvoz, izvoz i slično tome. U meniju Connect se nalaze tri opcije za povezivanje u svrhu testiranja na tri načina koja smo prethodno opisali. Tu su još opcije za resetovanje konekcije i „hardverski” reset emulatora, u slučaju da se počne ponašati nestabilno. Poslednja stavka menija pod nazivom Build je zadužena za finalizaciju rada sa aplikacijom, što bi se u programerskom žargonu reklo - za kompajliranje. Tu su nam na raspolaganju dve opcije od kojih jedna generiše QR kod za preuzimanje aplikacije na Android uređaj uz pomoć kamere, dok druga kreira fajl sa ekstenzijom APK koji snimamo u okviru fajl sistema našeg računara.
Desno od menija se nalazi opcija pod nazivom My Projects i klikom na nju se prikazuju svi projekti nad kojima smo do sada radili. Početnicima će od velike koristi biti mogućnost da analiziraju već gotove projekte koji su napisani od strane drugih korisnika ovog programskog okruženja i nalaze se pod opcijom Gallery. U trenutku pisanja teksta na raspolaganju je bilo preko četrdeset hiljada različitih projekata od kojih su mnogi dosta lošeg kvaliteta, ali ipak dovoljni da se iz njih ponešto nauči. Slaganje pazli Kada postavimo potrebne elemente korisničkog interfejsa, potrebno je da definišemo njihovo ponašanje koje nastaje kao posledica nekih događaja, što je u skladu sa filosofijom takozvanog „event-driven” programiranja. Uzmimo za primer najobičniji ekranski taster (objekat pod nazivom Button). Da bismo definisali šta se dešava kada ga kliknemo, potrebno je da pređemo u vizuelni editor programskog koda koji je rađen na principu pazli. Za to je potrebno kliknuti na ekranski taster Blocks u gornjem desnom uglu App Inventora. Radna površina menja svoj oblik i sada umesto elemenata korisničkog interfejsa sa leve strane imamo blokove za formiranje našeg programa. Blokovi se dele na tri osnovne grupe: ugrađene, one koji su vezani za funkcije svih objekata i one koji su vezani za funkciju objekata iz našeg projekta. Ukoliko iz spiska izaberemo pominjani ekranski taster, pred nama se pojavljuju „pazli” koji imaju vezu sa tim objektom. U našem slučaju su to događaji: Click, GotFocus, LongClick, LostFocus, TouchDown i TouchUp. Zatim slede funkcije koje se odnose na uzimanje i postavljanje svojstava objekta. U njih spadaju svojstva: BackgroundColor, Enabled, FontBold, FontItalic, FontSize, Height i tako dalje. Drugi objekti mogu imati razne druge „pazl” elemente u zavisnosti od njihove namene. U grupu ugrađenih (Built-in) blokova spadaju oni koji su vezani za kontrole toka programa, logičke i matematičke operacije, zatim operacije sa listama, tekstom, zadavanje boja, definisanje varijabli i pozive procedura. Što se tiče onih koje su vezane za kontrolu toka programa, na raspolaganju su nam petlje: If-Then-Else, Do-While i For Each (kao i varijacije na njihovu temu). Osim njih tu se nalaze i još neke funkcije, kao što su one za zatvaranje prozora i zatvaranje aplikacije. Logički i matematički operatori su, mogli bi tako reći, u granicama klasike, što znači da su nam na raspolaganju funkcije Bulove algebre, osnovne aritmetičke operacije, operacije vezane za slučajne brojeve i trigonometrijske funkcije. Jedno za početnike relativno kompleksno, ali istovremeno i moćno sredstvo za formiranje upotrebljivih aplikacija se odnosi na rad sa listama i za to imamo na raspolaganju dvadesetak različitih funkcija.Veliko olakšanje prilikom izbora odgovarajuće funkcije predstavljaju žlebovi na elementima koji daju do znanja da li je objekat pravilno izabran ili ne (kao što je slučaj i kod „pravih” pazli). Iako je App Inventor već celih šest godina dostupan brojnoj armiji poklonika, on je i dalje u statusu beta verzije, što je pomalo zbunjujuća stvar. I pored toga, već sada je reč o sjajnom i funkcionalnom načinu da se nauči programiranje, čak i kada su u pitanju apsolutni početnici i deca. Ako ste uvek želeli da napišete svoju aplikaciju, ovo je stvar za vas. |