Sunteți pe pagina 1din 13
C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m

Cultur general :

e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

1.Modele i elemente ale structurii XML. Extensible Markup Language (XML) este un meta-limbaj de marcare care defineste un set de reguli pentru codificarea documentelor intr-un format care este atit human-readable cit si machine-readable. Recomandat de Consortiul Web pentru crearea de alte limbaje de marcare, cum ar fi XHTML, RDF, RSS, SVG etc. Aceste limbaje formeaz familia de limbaje XML. modele - este o parte a declara iei elementelor din DTD ( Document Type Definition , descrierea tipului de document) , care descrie ordinea din containere , compozi ia lor i tipurile de elemente din container .

Meta-limbajul XML este o simplificare a limbajului SGML (din care se trage i HTML) i a fost proiectat în scopul transferului de date între aplica ii pe internet, descriere structur date. XML este acum i un model de stocare a datelor nestructurate i semi-structurate în cadrul bazelor de date native XML. F ierele XML sunt secven e de text create pentru a structura, depozita i transporta informa ie. Un element XML este tot ce se contine de la inceputul unui tag pina la tagul de inchidere. Un element poate contine:

- alte elemente

- text

- atribute

- sau o combinatie din cele enumerate mai sus

Documentul XML trebuie sa inceapa cu sintaxa:

<?xml version="1.0"?>

urmata de un element de baza (radacina) care va cuprinde toate celelalte elemente.

Exemplu:

<bookstore> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author>

<year>2005</year>

<price>29.99</price>

</book> <book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author>

<year>2003</year>

<price>39.95</price>

</book>

</bookstore>

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m
e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

2.Utilizarea API-ului, Cerin e i aplica ii. Un API este o colec ie de func ii con inute în libr rii statice sau dinamice, ce pot fi folosite la un moment dat într-o aplica ie pentru a efectua diverse sarcini. Libr riile API con in fi ierele cu defini iile func iilor utilizate de produc torul respectiv, libr riile statice necesare în momentul compil rii sau libr riile dinamice necesare în monentul rul rii. API-urile con in de asemenea instruc iuni necesare programatorilor în ceea ce prive te apelul func iilor sau compilarea codului surs

3.Modele de mo tenire i sincronizare. Mostenirea se refera la posibilitatea de a crea o clasa – copil(subclasa, clasa derivata sau clasa descendenta. ), care are la baza o alta clasa – parinte(clasa de baza sau superclasa), astfel incat clasa copil „stie” sa faca tot ceea ce stie parintele, plus o serie de alte elemente care sunt proprii doar clasei copil.

In general, in programarea orientata pe obiecte, mostentirea poate fi simpla sau multipla. In cazul mostenirii simple fiecare clasa are cel mult o superclasa.In cazul mostenirii multiple o clasa poate avea mai multe superclase.

De exemplu, clasa Barbat si clasa Femeie au ambele toate atributele clasei Om, dar fiecare din acestea are si atribute specifice. Sincronizarea asigura siguranta datelor, adica prin sincronizare se previn situatile ca un fir de executie sa modifice o variabila care este tocmai utilazata de catre un alt fir de executie. Sincronizarea se bazeaza pe conceptul de monitor ,un monitor este de fapt un lacat atasat unei resurse pentru a preveni utilizarea resursei in paralel. Daca un fir ocupa un monitor, un alt fir care incearca ocuparea aceluiasi monitor, este blocat si asteapta pana la eliberarea monitorului.

4.St rile aplica iei i propriet ile lor.

In timpul utilizarii aplicatiei ea poate crea ferestre noi, sau sa fie minimizata, din nou

deschisa, etc.

Deci aplicatia trebuie sa aiba posibilitatea de a elibera resursele sau de a salvar date.

O aplicatie poate fi in 3 stari:

Resumed(Running) – Aplicatia se vede pe ecran, si este focusat pe el, utilizatorul poate interactiona cu ea. Paused – utilizatorul nu poate interactiona cu aplicatia, sistemul de operare nu este focusat pe aplicatie, dar el se vede(este acoperita partial cu alta fereastra).

Stopped – Aplicatia nu se vede(este acoperita complet cu alta aplicatie/fereastra), si desigur utilizatorul nu poate interactiona cu ea.

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m

5.Ini ierea firelor de execu ie i controlul asupra aplica iei. Firele de execu ie (threads) reprezint por iuni de cod ale aceluia i program care se pot executa în paralel una fa de alta. Programele de pân acum au fost de tip single-threaded, adic au

fost compuse fiecare din câte un singur fir de execu ie. Firele de execu ie reprezint modalitatea prin care limbajul Java suport programarea concurent . Execu ia paralel a firelor depinde practic de suportul de execu ie al programelor, hardware i software. În general, dac se dispune de un sistem cu mai multe procesoare firele vor fi distribuite pe acestea. O aplica ie care creeaz o instan a thread trebuie s furnizeze codul care va rula în acel fir. Exist dou moduri de a face acest lucru :

De a furniza un obiect Runnable. Interfa a Runnable define te o singur metod , con in codul de executie în Thread . public class HelloRunnable implements Runnable { public void run() { System.out.println("Hello from a thread!");

menita s

}

public static void main(String args[]) { (new Thread(new HelloRunnable())).start();

}

}

Sub clasa Thread . Clasa Thread se implementeaza Runnable :

public class HelloThread extends Thread { public void run() { System.out.println("Hello from a thread!");

}

public static void main(String args[]) { (new HelloThread()).start();

}

e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

}

Observam c ambele exemple invoca Thread.start , în scopul de a începe noul fir . Prima expresie , care are un obiect Runnable , este mai general , obiectul Runnable poate forma o sub clasa. Cea de a doua expresie este mai u or de utilizat în aplica ii simple , dar este limitat de faptul c clasa de sarcini trebuie s fie un descendent de fire de executie .

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m

Android:

e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

6.Instalarea i configurarea IDE Eclipse, SDK Tools si/sau alte produse pentru Android development. Android a devenit una dintre platformele mobile importante, alaturi de Windows Mobile, Symbian, iPhone si J2ME (Java Mobile Edition). Pentru a invata si de a dezvolta aplicatii Android aveti nevoie de (solutia prezentata este pentru o platforma de lucru Windows):

1. Descarca si instaleaza Java Development Kit (JDK), cel mai recent fiind versiunea 7, insa orice versiune incepand cu JDK 6.0 este recomandata. Puteti descarca JDK-ul de pe java.oracle.com.NU instalati doar JRE-ul (Java Runtime Environment), deoarece Eclipse si SDK-ul Android au nevoie de instrumente de dezvoltare incluse in JDK (Java Development Kit). Chiar daca aveti un sistem pe 64 de biti este recomandat sa instalati versiunea pe 32 de biti, deoarece exista inca unele probleme de compatibilitate in ceea ce priveste JDK-ul, Eclipse IDE si Android SDK.

2. Instalati Eclipse IDE. Utilizarea unui mediu de dezvoltare vizual de tip IDE nu este necesara, dar este recomandata, deoarece va salva o multime de timp si va permite sa va concentrati asupra solutiei, si mai putin asupra modului in care se face compilarea, generarea solutiei si executia ei. Eclipse este disponibil la adresa http://www.eclipse.org/ si ar trebui sa descarcatiEclipse pentru dezvoltatori Java sau versiunea Classic Eclipse. La fel ca si in cazul JDK-ului, instalati versiunea pe 32 de biti.

3. Descarcati si instalati Android SDK Starter Package. Sunt doua distributii pentru pachetul Starter, ambele disponibile la developer.android.com /SDK/index.html . Daca aveti Windows si ati ales distributia cu installer (si nu arhiva), care este versiunea recomandata, puteti obtine o eroare pe Windows 7 deoarece programul de instalare nu detecteaza JDK-ul Java. Solutia (in unele cazuri) este de selecta butonul Back si dupa care Next pentru a reveni la faza de detectie a JDK-ului. Instalati SDK-ul Android intr-o locatie fixa, cum ar fi C:\Android.

4. Utilizand Android SDK Manager (instalat la pasul anterior) descarcati Android SDK Components, care includ diferite instrumente de dezvoltare, documentatia, platforme Android, librarii externe, driver-ul USB pentru Windows si exemple de aplicatii. Cand SDK Manager-ul porneste, va verifica automat resursele disponibile de descarcat si update-uri pentru cele existente. Gestiunea componentelor de descarcat se face selectand categoria Available packagesin fereastra Android SDK Manager-ului.

5. Instalati ADT (Android Development Toolkit) Pluginpentru Eclipse:

in meniul aplcatiei Eclipse, selectati Help > Install New Software…; faceti clic pe butonul Add, aflat in coltul din dreapta-sus;

in formularul Add Repository, introduceti “Android ADT Plugin “(sau ce nume doriti) pentru Name si urmatoarea adresa URL pentru Location:

clic pe OK; daca aveti probleme la descarcarea plugin-ul, incercati sa utilizati protocolul “http” in adresa URL, in loc de “https“; in fereastra de dialog Available Software, selectati checkbox-ul de langa Developer Toolssi faceti clic pe Next; in urmatoarea fereastra (detalii instalare si revizuire componente selectate) faceti clic peNext;

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m

cititi si sa acceptati acordurile de licenta (bifati radio button-ul respectiv) si faceti clic peFinish;

6. Reporniti Eclipse.

e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

7. Configurati plugin-ul ADT pentru Eclipse.

o in meniul din Eclipse selectati Window > Preferences… pentru a deschide

panoulPreferences;

in fereastra Preferences selectati categoria Android in panoul din stanga; in panoul principal, clic pe Browse… si localizati directorul in care a fost instalat Android SDK-ul (in acest tutorial, SDK-ul Android a fost instalat la pasul 3 in C:\Android). faceti clic pe Apply si apoi OK.

8. Testati SDK-ul Android si platforma Android pornind un emulator de dispozitiv mobil.

Pentru a face acest lucru trebuie sa definiti un Android Virtual Device (AVD) folosind

SDK-ul Android si Managerul AVD:

o

deschideti Android SDK and AVD Manager direct din Windows cu Start > Programs > Android SDK Tools sau din Eclipse, utilizand optiunea Window > Android SDK and AVD Manager din meniu;

o

in panoul din stanga, selectati categoria Virtual devices;

o

in panoul principal faceti clic pe butonul New…;

in fereastra Create new Android Virtual Device setati numele emulatorului (A), platforma Android utilizata (B), dimensiunea cardului de memorie (C), imaginea emulatorului (D) si alte setari hardware (E); selectati dispozitivul virtual nou creat si lansati emulatorul folosind butonul Start…;

7.Crearea AVD-ului. Prima aplica ie Android - structuri bazate pe proiecte. a) - Configurarea mediului de dezvoltare Primul pas pentru a putea începe este s ne preg tim mediul de dezvoltare. Software Development Kit-ul (SDK) Android este livrat sub forma unui utilitar prin

intermediul c ruia putem desc rca versiunile necesare de API, precum i diverse add-on-uri.

- Configurarea IDE-ului

Acum c avem instalat SDK-ul de Android, trebuie s pregatim editorul de cod.

Pentru dezvoltare, vom folosi un Integrated Development Environment (IDE) i recomand IntelliJ Idea 12, care poate fi descarc t gratuit, în varianta Community Edition, pentru Windows i UNIX . În continuare, trebuie s configur m editorul, iar primul pas îl reprezint JDK-ul. Pentru a-l ad uga, va trebui s deschide i File -> Project Structure i laPlatform Settings/SDKs s adauga i JDK-ul instalat în sistem. Tot aici, vom putea s ad ug m i SDK- ul de Android, pentru versiunile dorite. Pentru a ad uga o versiune de SDK, trebuie s alegem de pe disc directorul care con ine versiunea respectiv . Acestea sunt situate în directorul unde a fost instalat SDK-ul, în subdirectorul platforms. Dup cum spuneam, avem nevoie de cel pu in versiunea 2.2, adic API level 8.

- Configurarea emulatorului

Pentru a crea un emulator, trebuie s folosim programul dedicat, care se poate porni din Idea de la Tools -> Android -> AVD Manager. Odat ajun i acolo, putem configura oricâte

device-uri dorim. Cei care au un telefon sau o tablet cu Android pot s le foloseasc pentru testarea aplica iei prin intermediul USB. Este necesar ca telefonul s accepte instalarea de aplica ii din Unknown Sources (setare accesibil în Settings ->

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m

Applications)

activat. Dac totul a decurs bine, atunci când e legat prin USB la calculator i rul m în command line adb devices, telefonul trebuie s apar în lista de device-uri disponibile. b) - Crearea unui proiect Începem de la File ->New Project. Aici trebuie s introducem câteva date. În primul rând, alegem tipul de proiect din lista din stânga i apoi introducem numele proiectului, calea unde acesta va fi stocat i alegem versiunea platformei. În sec iunea Target Device, putem alege cum dorim s rul m aplica ia pentru teste: în emulator sau pe un telefon conectat prin USB. Vom alege emulatorul i din lista de AVD-uri, NexusOne. Dup un click pe Finish, IDE-ul va crea proiectul.

i USB Debugging (accesibil în Settings -> Developer Options) s fie

8.Elementele de ecran i propriet ile lor. un Activity este un ecran dintr-o aplica ie ex: lista de playlist-uri din Google Music. Activity- ul se concentreaz deci asupra unei func ionalit i specifice a aplica iei i doar asupra ei, având un ciclu de via propriu i o stare ce poate fi persistent . Intent-urile sunt un mecanism universal în Android, ele fiind folosite pentru a porni Activity-uri, servicii i pentru a emite broadcast-uri. Exist dou moduri prin care putem crea un Intent:

explicit- prin atribuirea unui identificator sub forma unui String unic implicit- prin specificarea instan ei clasei care emite inten ia i specificarea clasei de tipul c reia dorim s fie instan a creat login Activity codul care face ca aplica ia s func ioneze. Primul Activity este cel de login. Acesta va afi a un simplu ecran de login cu 3 componente (denumite i Views). Dou dintre ele sunt folosite pentru introducerea numelui de utilizator i a unei parole, iar al treilea este un buton care, atunci când este atins, trimite utilizatorul la cel de-al doilea Activity. Layout-urile ele au rolul de a descrie cum sunt a ezate pe ecran componentele interfe ei grafice

9.Fi ier Layout în Activity. Reprezent ri XML. Modificarea orient rii ecranului. In fisierul layout se afla elementele pe care dorim sa le afisam la ecran.La startara aplicatiei Activity citeste acest fisier si afiseaza ce este setat.

La creare fiecari Activity i se atribue un java class .La startarea aplicatiei se folosesc modelele prezentate in aceasta clasa.Initial e creat automat acest fisier MainActivity.java

Prin intermediul metodei

fisierul layout, insa noi nu indicam directia spre acest fisier dar spre o constanta care este ID

fisierului care se genereaza automat cu numele R.java .

In fisierul main.xml este prezentat cum va arata

si in format xml unde se afla descrierea elementelor View a fisierului layout.

Atributele xml sunt parametrii elementelor View aici se fac schimbarile pentru a le vedea pe ecran.\ Modificarea orientatiei ecranului

Pentru a permite aplicatiei de a folosi mod orizontal si vertical al ecranului este necesdar de a adauga pozitionarea orizontala(ca vertical e implicit) creind directia res/layout-load in care se introduce copia fisierului layout.

.

SetContextview(R.layout.main); se preiau componentele din

ecranul in mod graphic Graphical Layout

e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m
C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m
e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

10.Tipuri de Layout. Diferen ele cheie i propriet i. Principalelele tipuri de Layot: LinearLayout, TableLayout, RelativeLayout, AbsoluteLayout. LinearLayout - elemente de vedere , expuse într-o singur linie ( dac este orizontal ) sau coloane ( dac vertical ). TableLayout - afi eaz elementele in forma de tabel, pe rânduri i coloane . RelativeLayout - pentru fiecare element stabileste pozi ia sa în raport cu alte elemente . AbsoluteLayout - pentru fiecare element se indic o pozi ie clar pe ecran in sistemul de coordonate(x,y).

LinearLayout Acest tip de ViewGroup standart este propus la crearea noului fisier-layout. Este foarte u or de utilizat pentru a crea ecrane de complexitate diferita. LL are proprietatea Orientation, care define te modul în care vor fi amplasate elemente copil -pe linia orizontal sau vertical .

TableLayout (TL) TL consta din rânduri TableRow (TR). Fiecare TR, la rândul s u contine View-elemente, care formeaz coloane. Adica numarul de View-elemente in TR, este num rul de coloane. Dar num rul de coloane din tabel trebuie s fie acela i pentru toate rândurile. Prin urmare, daca în diferite TR se afla numere diferite de View-elemente(coloane), atunci num rul total se determina dupa TR cu numarul maximal.

RelativeLayout ( RL ) În acest tip de Layout fiecare View-element poate fi situat într- un anumit fel relativ la View- elementul specificat. Tipuri de rela ii :

1 ) din stânga , dreapta , sus , jos acestui element ( layout_toLeftOf , layout_toRightOf , layout_above , layout_below )

2 ) aliniat de coltul stang,drept,de sus, de jos a elementului ales( layout_alignLeft , layout_alignRight , layout_alignTop , layout_alignBottom )

3 ) aliniat de coltul stang,drept,de sus, de jos paruntesc ( layout_alignParentLeft ,

layout_alignParentRight , layout_alignParentTop , layout_alignParentBottom )

4 ) aliniat pe centrul vertical , pe centru orizontal, pe centru vertical i orizontal fa de mam ( layout_centerVertical , layout_centerHorizontal , layout_centerInParent )

AbsoluteLayout (AL) Ofer pozi ionare absolut a elementelor de pe ecran. Se specifica coordonatele pentru col ul din stânga sus al componentei. La început, se pare c acesta este modul cel mai convenabil si cea mai clara varianta pentru pozitionarea elementelor pe eccran- ele indata se aseaza acolo unde trebuie. Dar aceasta este doar in cazul in care proiectam la o anumita rezolutie a ecranului. Dac deschidem aceast aplica ie pe un alt ecran, toate elementele vor fi deplasate i nu vor, a a cum am pl nuit.Prin urmare acest Layout nu este recomandat de folosit. i compatibilitatea cu viitoarele versiuni de Android nu este garantat .

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m

11.Op iuni de aspect (Layout) pentru elemente view. Op iunile de aspect pentru elementele view:

Layout width i layout height Layout gravity Layout weight Layout margin

Layout width i layout height Layout gravity Layout weight Layout margin
Layout width i layout height Layout gravity Layout weight Layout margin
Layout width i layout height Layout gravity Layout weight Layout margin
e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

Layout width i layout height reprezint l imea i respectiv înal imea elementului, ea poate fi indicat cu valori absolute(dip, sp, px, in) sau cu constante(match_parent, wrap_content ). Dip - Density-independent Pixels, valoare absolut care permite ca aplica ia s arate la fel pe diferite rezolu ii.

sp - Scale-independent Pixels. La fel ca i dip numai c se folose te pentru marimea font-ului în elemente. px – pixel, nu se recomanda din cauza c pe diferite rezolu ii aplica ia va ar ta diferit. In – inch, se reprezint pe m rimea fizic a ecranului. match_parent (fill_parent) – semnific c elementul va ocupa tot spa iul accesibil de c tre elementul p rinte(l imea/în imea). wrap_content - l imea/în imea elementului va fi indicat de c tre con inutul s u.

Layout weight(greutatea) – spa iul liber între elemente va fi împ it propor ional bazîndu-se pe weight- valoarea. Cu alte cuvinte dac avem mai multe view-uri i dorim ca ele s ocupe tot spa iul propor ionl atunci e nevoie s utiliz m parametrul Layout weight.

Layout gravity – parametrul dat este similar alinierii din Word sau Excel, el amplaseaza view-urile in centru, sus stinga, sus dreapta, jos stinga, jos dreapta sau alte combinatii posibilite dintre valorile: top, left, right, center, bottom, right.

Layout margin – indic marginea elementului. El poate fi din toate p ile sau numai din p ile necesare. Pentru deplasarea obiectului dintr-o parte folosim Layout margin top, Layout margin bottom, Layout margin, left, Layout margin right.

12.Gestionari de evenimente, privind de exemplu Button.

Daca dorim sa scriem aplicatii bazate pe evenimente in Java trebuie sa utilizam mecanismul de evenimente al limbajul. Un eveniment este trimiterea unui mesaj. De exemplu un buton informeaza aplicatia ca utilizatorul l-a apasat. Aceasta informare se realizeaza cu ajutorul unui eveniment. Mesajele sosesc de la surse de evenimente iar destinatarii acestor evenimente sunt receptionarii evenimentelor. La receptia evenimentului, in obiectul receptor se executa o metoda. Evenimentul insusi este un obiect care contine informatii in legatura cu evenimentul produs. De exemplu daca dorim sa cream evenimente noi atunci va trebui sa extindem clasa java.util.EventObject. Toate tipurile de evenimente create de catre utilizatori trebuie sa fie subclasele acestei clase.

Evenimentele sunt trimise

Destinatarul (obiectul receptor) trebuie sa implementeze metode de tratarea tuturor tipurilor de evenimente ai caror receptor poate fi. Exemple de tipuri de evenimnete:

ActionEvent se genereaza la apasarea butoanelor, selectia din meniuri, terminarea editarii unei casete text (apasarea tastei Enter in caseta).

MouseEvent se genereaza la operarea cu mouseul pe suprafata componenetei. Un eveniment de tip ActionEvenet contine numele actiunii, iar un eveniment de tip MouseEvent descrie pozitia mousului respectiv starea butoanelor.

de la o singura sursa si pot fi receptionate de mai multi destinatari.

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m

IOS

e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

Ce este iOS? Ce este iOS SDK? iOS este sistemul de operare pentru dispozitive mobile oferite de compania Apple pentru dispozitive precum iPod, iPhone, iPad. iOS SDK - este software development kit pentru iOS care contine componentele necesare pentru dezvoltarea aplicatiilor pentru iOS precum Cocoa Touch framework, iOS simulator

Arhitectura iOS?

precum Cocoa Touch framework, iOS simulator Arhitectura iOS? Ce este Objective-c? Objective-C este limbajul oferit de

Ce este Objective-c? Objective-C este limbajul oferit de compania Apple pentru dezvoltarea aplicatiilor Mac OS, iOS. Este o evolutie a limbajului C cu schimbari de sintaxa si concepte pentru a putea oferi si programarea orientata pe obiecte.

Ce este Cocoa Framework?

Cocoa este API-ul nativ obiect orientat al companiei apple destinat pentru dezvoltarea aplicatiilor pentru OS X.

Pentru iOS este un API similar numit Cocoa Touch care include recunoaterea gesturilor, animatii si un user interface library diferit. Ciclul de viata a aplicatiilor iOS. cel mai simplu ciclu:

viewDidLoad

viewWillAppear

Running

viewWillDisappear

viewDidUnload

dealloc

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m
e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m
e g n a r a t c . k w h e w r C
e g n a r a t c . k w h e w r C
C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m
e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

Ce este Xcode? Xcode este un mediu interactiv de dezvoltare care ofera toate instrumentele necesare pentru dezvoltarea aplicatiilor Mac OS si iOS.

Ce este Interface Builder? Este o aplicatie componenta a Xcode care ofera programatorilor posibilitatea crearii interfetelor grafice. de obicei lucreaza cu fisiere .xib sau .nib

Destinatiile fisierelor (.h) si (.m). .h - fisiere header in care sunt declarate clasele si atributele(si IBOutlet), metodele(si IBAction) acestora. .m - fisiere in care sunt implementate clasele. aici se scrie codul metodelor

Ce este MVCpentru iOS? MVC este arhitectura care se foloseste la dezvoltarea aplicatiilor iOS. Model - aici se pastreaza datele cu care se lucreaza si prelucrarea lor View - interfata grafica Controler - prelucreaza inputul din View asupra datelor din Model si ofera un output.

Ce sunt IBOutlet si IBAction? Sunt niste macro-uri care:

IBOutlet - semnifica ca variabila in cauza face o legatura cu elementul grafic reprezentindul. IBAction - semnifica faptul ca metoda in cauza este chemata in urma unui eveniment generat de un element grafic.

Diferentele intre delegate si data source. Un delegate este un obiect care interactioneaza cu alte obiecte atunci cind observa aparitia unui eveniment intr-un program. Acesta se ocupa mai mult de evenimentele aparute de la obiectele User Interface. Pe cind un data source, este acelasi delegate, dar se ocupa de evenimentele legate de controlul datelor.

Definitia/ descrierea si diferentele dintre Emulator si Simulator

descrierea si diferentele dintre Emulator si Simulator Definitiile letz pridumai :D(Curcudel) Emulatorul imita,

Definitiile letz pridumai :D(Curcudel)

Emulatorul imita, mimeaza functiile pe care un device real le poate indeplini. Pe cind un simulator incearca sa creeze o masina virtuala cit mai aproape de dispozitivul real.

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m

Care sunt diferentele intre drain, release, dealloc si retain pentru Objective-C?

- retain: incrementeaza contorul de referentiere (reference count) pentru un obiect

- release: decrementeaza contorul de referentiere (reference count) pentru un obiect

- drain: este folosit in locul lui release numai pentru obiectele NSAutoreleasePool

- dealloc: este chemat de system sau garbage colector in cazul in care retainCount al unui obiect a ajuns la 0 Ce este Automatic Reference Counting (ARC) ? Este o functionalitate oferita de iOS, care se ocupa de managementul memoriei si anume, daca

inainte programatorul trebiua sa foloseasca mereu release, retain

asta si incrementeaza sau decrementeaza reference count pentru fiecare obiect, iar cind reference count este 0, obiectele sunt deallocate automat. Diferenta intre UIView si UIViewController Acestea se explica prin arhitectura utilizata in iOS, si anume MVC. UIViewController este clasa in care se vor prelucra toate evenimentele, pe cind UIView este o clasa ce reprezinta un element grafic. Care este diferenta intre frame si bounds? frame contine date despre originea si dimensiunea view-ului fata de view-ul parinte (super view), pe cind bounds contine dimensiunile interne ale view-ului si se foloseste cel mai des la lucrul cu grafica.

Ce este "push notification"? Este un serviciu cread de Apple si lansat impreuna cu versiunea iOS 3.0, care are ca scop transmiterea notificarilor de catre aplicatiile tertze catre dispozitivele Apple printro conexiune IP. Notificari precum insigne, sunete sau alerte text. Diferenta intre method si selector? selector reprezinta numele unei metode cu tot cu doua puncte la chemare (ex: setObject:forKey:), pe cind o metoda este o combinare dintre selector si implementare (cu alte cuvinte e ca o functie). Ce este “lazy loading”? Lazy loading este un pattern des utilizat in programare care amina initializarea obiectului pina acesta nu este incarcat complet cu informatia necesara. (de exemplu incarcarea unor imagini, nu se face tat odata ca sa gruzeasca compu, da se face cite o leaca sh astfel se amina initializarea obiectului, pina nu se incarca tot)

, acum compilatorul se ocupa de

e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

Stocarea datelor in aplicatiile iOS. are loc cu ajutorul:

Property Lists - reprezinta niste arbori de obiecte, de obicei nodul este de tip NSDictionary sau NSArray. SQLite: Seeding (cind SQLite opereaza dintrun singur fisier) command reference (date accesibile prin functii, sheva de genu) Core Data - by default se foloseste SQLite pentru stocare, insa cererile de prelucrare a datelor nu sunt vizibile pentru programator

Care sunt diferentele intre C++ si Objective C?

- In primul rind diferenta de sintaxa.

- C++ ofera mostenirea multipla, pe cind Objective C ca si Java, nu

- Objective C ofera tipul id ca un tip general

-

- In Java sunt chemate metode, pe cind in Objective Csunt trimise mesaje

Objective C foloseste

protocoale, iar C++ clase abstracte

C h X a - n - r s F e o g k f
C
h
X
a
-
n
-
r
s
F
e
o
g
k
f
t
D
c
e
w
a
P
r
a
t
r
.
Click to buy NOW!
e
w
.
c
w
o
w
m
e g n a r a t c . k w h e w r
e
g
n
a
r
a
t
c
.
k
w
h
e
w
r
C
-
w
s
X
o
-
f
F
t
D
w
P
a
r
Click to buy NOW!
e
.
c
o
m

Care sunt diferentele intre Objective C si Java?

- In Objective C declararea si implementarea se face in fisiere diferite (.h si .m)

- Sintaxa diferita

- Objective Cfoloseste protocoale, iar Java interfete

- In Java sunt chemate metode, pe cind in Objective Csunt trimise mesaje.

Tiurile de notificari pentru iOS? Sunete: o alerta audio Alerte/Banere: un popUp sau un baner apare pe ecran Insigne: o imagine sau numar care apare pe iconita unei aplicatii

Ce sunt serviciile de localizare? Sunt niste servicii care permit usor realizarea unei aplicatii in mai multe limbi cu ajutorul a Localized.strings astfel incit in dependenta de setarile telefonului gazda, aplicatia va folosi limbajul respectiv, evident in cazul in care programatorul a prevazut si oferit fisierele necesare pentru lucrul in acea limba.

Ce este atomic si nonatomic?

- atomic definind o variabila, garanteaza ca seterul/geterul acesotra vor returna o singura valoare,

indiferent daca acestea se cheama in fire de executie diferite.

- nonatomic insa inseamna ca daac in firul A se cheama geterul variabilei, iar in acelasi timp in firul B

se seteaza alta valoare, iar in C alta prin seter, atunci in A vor fi returnate toate valorile setate, ceea ce poate cauza probleme.

- Nonatomic este mai rapid totushi ca nonatomic, insa nu garanteaza siguranta intre firele de executie (thread safety)

Cum pot fi testate aplicatiile iOS? Starile aplicatiilor iOS. Not running. Foreground:

- inactive

- active

Background

Suspended