2013/11/26

Zerrenda sinpleak - Listview widget-a

Androiden zerrenda bat erakutsi nahi bada ListView izeneko widget bat erabili beharko da. Hala eta guztiz ere widget horrekin ez da nahikoa izango zerrenda bat osatzeko, honako elementu hauek ere programatu beharko dira:
  • Array-a: zerrendan agertu behar duten datuen edukiontzia izango da. String (testuak), int (zenbakiak),...motatakoa izan daiteke.
  • ListAdapter-a: datuak listview-ari egokitzeko erabiltzen den elementu edo objektua da.
  • Listview-a: interfaze grafikoan, hau da, xml fitxategian kokatu behar dugun widget edo objektu grafikoa da. Zerrendak GUI-an izango duen itxura definituko du (zabalera, altuera, background-a,...).
Azter dezagun adibide batekin zerrenda sinple baten erabilera. Jarraian azalduko den kodearekin I. Ilustrazioan ikus daitekeen app-a lortuko da, bertan zerrendako elementu bakoitzean klikatzen denean, posizio horretako edukia edota testua bidaliko da pantailara Toast baten bitartez.

I. Ilustrazioa: Zerrenda sinple baten App-a

2013/11/21

Pantaila anitzeko App-ak - Intent-ak

Garatu nahi den App-ak interfaze edo pantaila bat baino gehiago baditu Intent-ak erabili behar dira.

Intent-a App bat osatzen duten osagai ezberdinen arteko komunikazio elementua edo objektua da. Kasu honetan helburua beste pantaila bat irekitzea denez Intent baten bitartez beste activity bati deituko zaio: lehenengoan testu bat, izen bat, idatziko da EditText kontrolean eta Ireki Button-ari klikatzerakoan 2. activity-aren interfazea zabalduko da EditText-ean sartutako testua erakutsiz. I. Ilustrazioan ikus daiteke lortu nahi dena.

I. Ilustrazioa: 2 pantailako App-a

Widget-ek sortzen dituzten ebentuen kudeaketa

Erabiltzaileak interfazearekin elkarreragiten duen momentuan, adibidez pantailako botoi bat pultsatzean, ebentuak deitzen diren gertaerak sortzen dira. App-ek ebentu horien aurrean erreakzionatzeko gaitasuna dute Listener izeneko objektuak kudeatuz.

Listener ak View class-eak eskeintzen dituen interfazeak dira eta mota ezberdinak existitzen dira, hala nola jarraian azaltzen diren hauek:

  • View.OnClickListener: klik ebentuaren aurrean erantzuten duten horiek dira.
  • View.OnLongClickListener:  klik luzearen ebentuaren aurrean erantzuten duten horiek dira.
  • View.OnFocusChangeListener: fokua hartzearen edota galtzearen prozesuari erantzuten duten horiek dira.
  • View.OnKeyListener: elementuak fokua badu teklatuaren pultsazioen aurrean erreakzionatuko duten horiek dira.
  • View.OnTouchListener: erabiltzaileak elementu bat ukitzean edo soltatzean sortzen den ebentua da.
  • View.OnCreateContextMenuListener: pultsazio luze baten ondoren agertzen den laster-menuari erantzuten diona da.

2013/11/19

Jakinarazpen iragankorrak - Toast mezuak

Androiden modu ugari daude erabiltzaileari abixu edota jakinarazpen bat pasatzeko. Horien artean oso erabilgarriak dira bistaratzen den activity-ari fokua guztiz kendu gabe segundu batzuetan pantailan mantentzen diren mezuak (Ikus I. Ilustrazioa): Toast-ak.

I. Ilustrazioa: Toast mezu bat

Tamainu ezberdinetako gailuen interfazeak diseinatzea

Telefono mugikor eta tablet-en ekoizle kopurua dela eta Android gailu ezberdin ugari daude merkatuan forma eta tamainuei dagokionez. Hau arazo bihurtzen da programatzailearentzat, erabiltzailearen interfazeak egokitu egin beharko baititu horietako bakoitzarentzat.

Lehenengo eta behin honako kontzeptu hauek jakitea komeni da:

  • Androiden 4 tamainu ezberdin existitzen dira: txikia (small), ertaina (medium), handia (large) eta oso handia (extra-large).
  • Androiden 4 dentsitate (hazbete bakoitzeko pixel kopurua) ezberdin existitzen dira: low (ldpi), medium (mdpi), high (hdpi) y extra high (xhdpi).
Horiez gain azpimarratzekoa da pantaila bertikalean (portrait) edota horizontalean(landscape) jartzeak ere eragina izango duela interfazean.

Baldintza guzti horiek kontuan hartuz programatzaileak tamainu guztietarako eta bi orientaziotarako interfaze edo layout bana diseinatu beharko du. Horretarako, I. Ilustrazioan ikus daitekeen moduan formato ezberdinetarako diseinaturiko xml fitxategiak, res karpetaren barruan tamainuarekin eta orientazioarekin lotzen diren izen espezifikodun karpetetan sartuko ditugu.

I. Ilustrazioa: res karpeta barruko tamainu ezberdinetarako karpetak

2013/11/14

Erabiltzailearen interfaze grafikoa - Layout-ak eta Widget-ak

Erabiltzailearen interfazea edo GUI-a XML lengoaian definitzen den App-aren elementu grafikoa da. Aurretik aipatu bezala, azpimarratzekoa da eclipsek bi aukera eskeintzen dituela GUI-ak diseinatzeko (Ikus I. Ilustrazioa):
  • Zuzenean xml kodea idatziz.
  • Ikuspegi eta ingurune grafiko batean elementu ezberdinak gehituz, kenduz eta euren propietateak editatuz.
I. Ilustrazioa: GUI-ak diseinatzeko lehioa


2013/11/12

App bat araztatzen - Eclipseren Logcat-a

App-en araztatzea edota depurazioa burutzeko eclipsek logcat izeneko erreminta eskeintzen du. Programazio bitartez log ezberdinak bidal daitezke logcat consolara eta ondorioz App-aren exekuazioaren jarraipena modu bisualean burutu daiteke (Ikus I. Ilustrazioa).

I. Ilustrazioa: Eclipseren logcat-a


2013/11/07

String fitxategia eta App hizkuntza eleanitzak sortzeko aukera

Eclipsen Android proiektu bat sortzen den aldiro Hello world! testua erakusten duen interfaze grafikoa gehitzen du automatikoki I. Ilustrazioan ikus daitekeen moduan.

I. Ilustrazioa: Hello word!


2013/10/31

Android proiektu baten anatomia eclipsen - Lehenengo proiektua

Eclipsen Android proiektu bat sortzeko  honako pausu hauek jarraitu behar dira:

  1. Android App proiektu berri bat sortzeko file menura jo:

    I. Ilustrazioa: Eclipsen Android App baten proiektua sortzeko 1. pausua

Eclipse garapen-ingurunea instalatzea eta konfiguratzea

Android App-ak java natiboan garatzeko zenbait erreminta instalatu beharko  dira ordenagailuan pausoz-pauso:
  • Lehenengo eta behin gure PC-a java ulertzeko eta exekutatzeko gai izan behar du eta horretarako Javaren makina birtuala eta konpilatzailea instalatzea nahikoa da. Oracle denez javaren jabetza duen enpresa honako web helbidetik egingo dugu Java SE Development Kit-JDK delakoaren deskarga. Ondoren instalazioa burutu.
I. Ilustrazioa: Javaren JDK jeisten

2013/10/24

Zer da android?

Telefonia mugikorrak oso modu eraginkorrean aldatu du gaur egungo gizartea, bere garaian internet-ek egin zuen moduan teknologia berri honek pertsonen ohiturak eta bizitza estiloa aldatzeko gai izan da. PC-a gure poltsikoetara eraman dugu, eta honek telekomunikazioen industrian iraultza ekarri du.

Testuinguru honetan telekomunikazio sektoreko enpresek euren produktuetarako sistema eragile eraginkorrenaren bila jo dute: sistema eragile ekonomiko eta moderno baten bila.

Android plataforma irekia da, linux kernel bat oinarritzat hartuz gailu mugikorrentzat diseinaturiko sistema eragilea da. 2007. urterarte bere existentzia ofizialki argitaratu ez zen arren, bere lehenengo urratsak 2003. urtean eman zituen Android Inc. izeneko enpresa batean Palo Alton (California). Enpresa hau Google-en laguntza ekonomikoari esker zabaldu zen eta 2005. urtean lortzen ari zirena ebaluatu ondoren erosi egin zuen.

Googleen papera gakoa da Android-en existentzian: Google-ek gailu mugikorretan bere zerbitzuak integratuko zituen sistema eragile bat behar zuen; zenbat eta pertsona gehiagok erabili bere zerbitzuak, are eta diru sarrera gehiago.

Google-ek Android-en arrakasta ziurtatzeko gailu mugikorren sektoreko hardware ekoizle batzuekin lerrokatu zituen bere helburuak, I. ilustrazioan ikus daitekeen moduan Open Hanset Alliance izeneko taldearekin. Aipatu moduan 2007. urtean eman zen argitara ofizialki Android sistema eragilea talde honen babespean.

I. Ilustrazioa: Open Hanset Alliance taldeko kideak
Google-ek sistema eragile ireki bat eskeini die hardware ekoizleei, azken hauek softwarean inbertitzen zuten kostua jeitsiz. Bestalde enpresa horiek Android euren gailuetan integratuz Googlek bere helburua betetzen du: zenbat eta mugikor gehiagotan egon Android, are eta jende gehiagok izango du bere zerbitzuak erabiltzeko aukera.

Android ARM prozesadoreetarako diseinaturik dago. Kontuan eduki behar da android eta gailu mugikorretarako diseinaturik dauden sistema eragile gehienek PC batek egin ditzakeen funtzio asko burutzeko gai izan arren, bere hardware ingurunea oso murritza dela PC-ekin konparatuz, eta arazo horri aurre egiteko ARM arkitekturetara jo behar izan dela. 80. hamarkadatik existitzen diren prozesadore mota hauek berriz ere modan ipini dira, eta oso egokiak dira gailu mugikor bat bezain leku txikian ahalmen "handiko" prozesadore bat integratzeko.

Android software libre eta open source proiektu bat da eta apache lizentzipean banatzen da. Baina debatea handia da lizentziamenduari dagokionez zeren linux kernel bat izanik nukleoan GPL lizentziaren zati bat ere baduela esan liteke. Puntu honetan interes kontrajarriek topo egiten dute: Google-ek Android apache lizentziapean banatzen badu, gailu mugikorren ekoizleek android hartu, euren ezaugarrietara moldatu eta garapena itxi dezakete, hobekuntza horietan inbertitutako dirua etxean geratuko dela bermatuz. Honek enpresentzat oso erakargarri bihurtzen du Android; bestalde, software libreko komunitateak erabaki hau kritikatzen du, argumentu nagusia Linux kernelaren erabilera eta GPL lizentziamenduak suposatzen duen banaketa askea izanik.

Era berean Google, HTC, LG eta Samsung etengabe erasotuak dira Apple, Microsoft eta Oracle-engandik.  Itxura imitazioak, merkatua monopolizatzea eta Java kodearen kopia ilegala egiteaz akusatzen diete hurrenez hurren.

Android-en bertsioek postreen izenak hartzen dituzte II. ilustrazioa ikus daitekeen moduan.

II. Ilustrazioa: Android bertsioen izenak


Oso garrantzitsua da App-ak garatzeko garaian Android bertsio erabiliena zein den jakitea. Azterketa batzuen arabera 2.3.3-2.3.7-a (Ikus III. ilustrazioa) da oraindik ere erabiliena.

III. Ilustrazioa: Android bertsioen erabileraren estadistikak
Hari honetatik jarraituz, Google-ek Android-en bertsio berri bat liberatzen duenean eta hardware ekoizleen eskuetara pasatzen da bertsio berri hori euren gailuetara prestatzeko eratzunkizuna. Honek arazo bat sortzen du, fragmentazioa deritzona: android erabiltzaileek ez dituzte sistema eragilearen eguneraketak momentu berean jasotzen, baizik eta euren gailuen ekoizleek erabakitzen dutenean.

Azterketa orokor honen ostean, onurak eta kalteak kontuan harturik, datu bat argia dago: Android mundu osoan zehar geroz eta gehiago zabaltzen ari den sistema eragilea da. Internet komunitate oso zabala du eta honek oso erakargarri bihurtzen du App-en garatzaile eta programatzaileentzat.

2013/10/23

Sistema eragilearen funtzionamenduaren arkitektura

Android App-en garapenean oso lagungarria da sistema eragilearen arkitektura eta funtzionamendua ezagutzea eta ulertzea. Programatzailearen lana errazteko Android geruza ezberdinetan banatzen da. Modu honetan goialdeko geruzetatik abiatuz eta liburutegien erabilerari esker behealdeko geruzetara iritsi gaitezke, maila baxuan programatzea eragotziz.

Androiden arkitektura Pila arkitektura da ( Ikus I. Ilustrazioa), hau da, geruza bakoitzak bere azpiko geruzako elementuak erabiltzen ditu bere funtzioak betetzeko.Azter ditzagun banan-bana geruza bakoitzaren ezaugarriak:

I. Ilustrazioa: Android arkitekturaren geruzak


2013/10/22

Android App baten osagaiak

Android App baten eraikuntzean honako oinarrizko elementu hauek topa ditzakegu (ikus I. Ilustrazioa):

I.Ilustrazioa: Android App baten osagaiak

Activity-ak

 Activity-ak interfaze grafikoaren osagai nagusiak dira. Modu sinplean esan liteke Activity-ak App-en lehio edo pantaila bakoitza direla. Activity-ak sistema eragilearen FIFO pila batean gordetzen dira (ikus II. Ilusrazioa).

II. Ilustrazioa: Activitien FIFO pila

2013/08/12

Activitie baten egoera aldaketak eta bitarteko metodoak

Android App bateko activitie bat egoeraz aldatzen den bakoitzean, metodo edo funtzio zehatz batzuei deituko zaie.
App-aren garapenean bere biziko garrantzia du metodo hauek ezagutzea, azken finean programatzaileak gailu mugikorrean jazotzen diren ebentu ezberdinen aurrean App-ak izango duen erantzuna eta erreakzioa aurreikusi behar baitu. Nola gorde, nola berreskuratu datuak App-ak fokua galdu badu???

I. ilustrazioan ikusten den bezala Android App baten bizi-zikloa bere egoeraren baitan definitzen diren eta logika bat jarraitzen duten metodoez osatzen da.

I. ilustrazioa: Activitie baten bizi-zikloan deitzen diren metodoak

2013/08/08

Android App-en bizi-zikloa

 Jakina da Android PC arruntek ez dituzten ezaugarri berezietako gailu mugikorretarako diseinaturiko sistema eragilea dela. Hala nola, pantailaren tamainua, bateria bidezko elikadura eta eskura dauden hadware baliabide erabilgarriak (PC arruntetan baino askoz ere urriagoak, adibidez ARM prozesadoreen abiadura, RAM memoriaren kapazitatea e.a.) dira App-ak garatzerako garaian kontuan hartu beharko liratekeen ezaugarri batzuk.

 Azpimarratzekoa da gailu mugikorrak komunikazio tresneria edo ekipoak direla, eta hauen helburua edota lehentasuna komunikazioei arreta eskeintzea dela. Adibidez inork ez luke gustoko aplikazio bat itxi behar izatea dei bat jasotzeagatik.

 Android, gailuan instalaturik eta exekuzioan dauden aplikazio guztien kudeaketa modu automatikoan egiteko diseinatua izan da, erabiltzaileak modu eroso eta eraginkorrean gailuari ahalik eta errendimendurik handiena ateratzeko.

 Testuinguru honetan, ondorio bat atera dezakegu: Android App-en bizi-zikloa beste sistema eragileengandik ezberdina da. Normalean erabiltzailea izaten da aplikazioen bizi-zikloa kontrolatzen duena PC arruntetako sistema eragileetan, baina Android sistema eragilea bera App-en kontrola egiteko diseinatu da.


 App-en bizi-zikloaz hitz egitea baino askoz zuzenagoa da activitie-n bizi-zikloaz hitz egitea. Modu sinple batean azalduz, Activitie bat App-a osatzen duten erabiltzailearen interfaze edo pantaila bakoitza da; modu konplexuagoan ordea, Activitie bat App bat osatzen duten oinarrizko elementuetako bat da.


2013/08/07

App Inventor erabiliz bluetooth bidez sentsore baten irakurketa burutzea

Jarduera honetan Android gailu bat PIC edota Arduino mikrokontroladore batekin bluetooth bidez komunikatuko da LM35 tenperatura sentsore analogiko bat irakurtzeko.






Helburuak

Jarduerak jarraian aipatzen diren helburu hauek beteko ditu:

- Interfaze grafikoko elementu gehiago ezagutzea.
- Bloke editoreko aukera gehiago ezagutzea.
- Bluetooth komunikazioa lantzea.
- PIC bat eta Arduino bat LM35 edota orokorrean sentsore analogiko bat kontrolatzeko programatzea.
- Android gailu batekin sentsoreen irakurketa burutzea.


Materiala

-PC bat.
-Android gailu mugikor bat.
-PIC School, PIC bat (16f887 bat erabili da kasu honetan), arduino bat eta beharrezkoa den erreminta( hariak, goraizeak,...)
-LM35 tenperatura sentsorea.
-PIC-arentzat Bluetooth modulua: LINVOR JY-MCU
 

App Inventor erabiliz bluetooth bidez LCD bat kontrolatzea

Jarduera honetan berriz ere Android gailu bat PIC mikrokontroladore batekin komunikatuko da bluetooth bidez, baina kasu honetan PIC-a PIC school-eko LCD-a kontrolatzeko programatuko da.








Helburuak

Jarduerak jarraian aipatzen diren helburu hauek beteko ditu:

- Interfaze grafikoko elementu gehiago ezagutzea.
- Bloke editoreko aukera gehiago ezagutzea.
- Bluetooth komunikazioa lantzea.
- PIC bat LCD bat kontrolatzeko programatzea.
- Android gailu batean testua idaztea eta LCD batean ikustea.


Materiala

-PC bat.
-Android gailu mugikor bat.
-PIC School, PIC bat (16f887 bat erabili da kasu honetan) eta beharrezkoa den erreminta( hariak, goraizeak,...)
-PIC-arentzat Bluetooth modulua: LINVOR JY-MCU

2013/08/05

App Inventor erabiliz bluetooth bidez led-ak piztea

Jarduera honetan Android gailu bat PIC mikrokontroladore batekin komunikatuko da bluetooth bidez. PIC-a behar bezala programatu ondoren diseinatutako Android interfaze grafikotik LED-ak piztu eta itzaliko dira.







Helburuak

Bigarren jarduerak jarraian aipatzen diren helburu hauek beteko ditu:

- Interfaze grafikoko elementu gehiago ezagutzea.
- Bloke editoreko aukera gehiago ezagutzea.
- Bluetooth komunikazioa lantzea.
- PIC bat programatzea.

Materiala

-PC bat.
-Android gailu mugikor bat.
-PIC School, PIC bat (16f88 bat erabili da kasu honetan) eta beharrezkoa den erreminta( hariak, goraizeak,...)
-PIC-arentzat Bluetooth modulua: LINVOR JY-MCU