Uploaded by cebotarivaleria43

Ministerul Educatiei al Republicii Moldova

advertisement
Ministerul Educatiei al Republicii Moldova
Universitatea Tehnica a Moldovei
Facultatea Calculatoare, Informatica și Microelectronică
Proiect de an
Disciplina: Ingineria Programarii
Tema: Aplicatie android “Apartment rent”
A efectuat:
st.
A verificat :
prof.unive.
Chisinau-2022
1
Cuprins
Introducere...................................................................................................................... 3
Capitolul 1 ...................................................................................................................... 4
1.1 Domeniul eventual al implementării softului .................................................... 4
Acces imobil ........................................................................................................... 4
www.999.md .......................................................................................................... 5
Airbnb..................................................................................................................... 6
1.2 Cerințele specializate pentru softul elaborat ........................................................ 7
Capitolul 2 ...................................................................................................................... 8
2.1 Instrumentele utilizate pentru dezvoltarea softului .............................................. 8
Android Strudio ...................................................................................................... 8
Cerințe de sistem .................................................................................................... 9
SQlite .................................................................................................................... 10
Caracteristicile SQLite ......................................................................................... 10
Limbajul de programare Java ............................................................................... 13
2.2 Arhitectura softului ............................................................................................ 14
Cum arata aplicatia ............................................................................................... 15
Capitolul 3 .................................................................................................................... 18
3.1 Descrierea componentelor functionale si nonfunctionale: ................................. 18
3.2 Testarea softului ................................................................................................. 18
Concluzia ...................................................................................................................... 21
2
Introducere
Tehnologia este definită ca un proces cuprinzător bazat pe aplicarea științei și
cunoștințelor în multe domenii ale vieții într-o manieră ordonată și atentă pentru a
atinge scopurile importante și valoroase pentru indivizi și comunități. ehnologia s-a
răspândit în toată lumea și oamenii o folosesc tot timpul. Nu se mai limitează la
muncă și în societățile dezvoltate, ci orice persoană, indiferent de nivelul său cultural
sau social, sau de vârsta lui, poate folosi un telefon mobil, de exemplu, pentru a face
poze, a le trimite și a le primi. Tehnologia ne ajută să păstrăm legătura cu oamenii
care sunt departe de noi. Folosim telefoane și computere pentru a vorbi cu ei și chiar
pentru a le vedea. Biroul nostru de lucru zilnic este, de asemenea, bazat pe tehnologie.
Oamenii nu mai folosesc pix și hârtie pentru a-și finaliza munca. Ne păstrăm sănătatea
mergând la săli de sport. Există aparate în sala de sport care ne ajută să ne reducem
greutatea și să ne menținem în formă. Ajungem să păstrăm o mulțime de informații
într-un dispozitiv mic și să le folosim când ne place. De asemenea, mașinile au
devenit mai bune odată cu utilizarea tehnologiei. Tehnologia nu poate fi adecvată în
anumite sarcini și are influențe negative. Toată lumea determină și decide cum să
folosească această tehnologie într-un mod negativ sau pozitiv. Aceeași tehnologie
poate fi folosită de două persoane într-un mod diferit.
Creare a diferitor obiecte tehnologice fizice( calculatorul, roboti, telefoane, si alte
gadjeturi) sigur ca este o performanta extraordinara, dar functionarea lor nu ar fi
perfecta fara o baza buna, adica fara un soft, ce reprezinta la fel o tehnologie
informationala: softurile, aplicatiile, web siturile toate au facut o extrema remarcabila
in viata sociala a omului. La moment print citeva clicuri poti gasi ce ai nevoie, poti
ajunge unde ai nevoie, de comunicare cu orice persoana de pe globul pamintesc pot sa
nu comentez, este un progress extraordinar! Deci sa punctam, progresul tehnologic
informational a facut ca viata sociala sa dezvolte, comunicarea intre persoane s-a
schimbat, este un impact si asupra economie, printr-un clic poti achita tot ce ai nevoie,
poti trimite bani in orice punct a lumii, ce influentiana macro economia, si cresterea
valutei, medicina tot nu a ramas in urma, acum printro aplicatie poti avea grija de
sanatatatea ta, si in cazul unui accident datorita unui soft este chemata abulanta sau alt
ajutor necesar.
Din acesta perspectiva uluitoare, a fost creat si softul meu, pentru comoditate
oamenilor, tematica aplicatiei android se bazeaza pe faptul, ca sa-ti poti gasi un
apartment sau o camera pe o perioada care o vreai tu, dece anume aplicatia asta e
diferita de cel pe piata? Deorece pentru inceput softul va verifica veridicitatea
documentelor, si pozelor apartamentelor cu relitatea, deorece pe fiecare platforma de
3
arendare a apartamentului, sunt escrocherii, si sigur stind undeva afara ai dori rapid si
fara problem sa iti gaseste un locusor de suflet.
Capitolul 1
1.1 Domeniul eventual al implementării softului
Sa incepem cu faptul ca piata imobiliara la momnetul actul (anii 2020-2021-2022),
creste in continui, nu vorbesc doar de preturi, dar si de vasta alegerea apaaruta, de
catogorii in care se clasifaca apartmantele si casele la moment. În anul 2021 in
Chisinau, prețurile imobiliarelor au crescut semnificativ. Potrivit agenților imobiliari,
creșterea a fost de aproximativ 20% -30%. Se observă că acest lucru s-a întâmplat din
mai multe motive – inflația, de circa 15% in anul 2021, o scădere a ofertelor de pe
piață și o creștere a numărului de credite ipotecare. Prețurile terenurilor cresc și ele
rapid. Datorita acestui fapt, multi oameni se gindesc ca investirea intru imobil, cum ar
fi cumararea lui, sau cumpararea si efectiv darea in chirie este o investitie buna in ziua
de miine. Sa nu uitam de faptul ca apratmentele sau alt imobil intodeauna o sa fie in
cerere, deorece putem observa cum timp de citiva ani consectivi lumea din suburbiile
indepartate se trag mai mult spre orase, fii din motive a unui trai stabil, lucru,
invatamint etc., dar se observa aceste migrari care la rindul sau ridica cererea in partea
pietii imobile.
Din aceste considerenta se creeaza si cererea unor softuri, care sa reprezinte totate
cerintele posibile pe piata imobiliara. Sigur ca infara de softul creeat, deja exista pe
piata unele exemplare cum ar fi:
Acces imobil
Este o aplicatie, bazata pe teriotoriul Republicii Moldova, care ofera clientilor gasirea
apartamntelor pentru chirie sau cumparare. Este o pagina web, dar nu un soft, dar este
unul detul de comod in utilizare. Un alt plus ar fi, este verificata veridicitatea
contentului plasat, daca apartamntul coincide cu documentele stipulate, si daca
fotografiile sunt la fel, cum arata apartmantul in real.
Dar am gasit unele minusuri, cum ar fi: este un blog adaugat care inunda cu informatii
care unor nu le este utila, sau necesara la moment.
Este o pagina web, dupa care se acunde o companie imobiliara, si in cazul folosirii
pagiinii web, in viitor o sa trebuiasa sa va confruntati cu agenti imobiliare si chiar sa
achitati pentru serviciile oferite a acestor.
Plus la asta daca doriti o cherie pe un termen scurt, 2-3 zile, sau doar o camera pentru
o noapte, n-o sa va fie de folos acesta pagina web.
Deci este o deosebire din ceea ce vedem, si ce va putea oferi softul elaborat.
4
Img.1 Pagina web Acces Imobil
www.999.md
Este o pagina web, dar are si un soft aparte elaborat pentru dispozitive android si Ios.
Ce este de mentionat, nu este un soft doar pentru imobiliare, este mai mult o tabla de
anunturi, in format electronic.
Img. 2 Soft-ul www.999.md
5
Din perspectiva utilizatorului am gasit doar un plus, multi utilizatori cunosc de
acesta pagina si publica in fiecare zi anunturi noi, din care poti gasi ceva interesant,
dar, trebuie sa monitorizezi pagina ore intregi, poate chiar si zile.
Cred ca ati inteles ca minusuri am gasit mult mai multe, in primul rind cum am si zis
de acesta pagina se poate folosi fiecare, deci la capitolul imobiliar petem gasi multi
iscrocheri, care pot sa va minta de bani.
Navigare incomoda, unele anunturi sunt vechi, si doar iti pierzi timp cautind stapinul
acelui anunt.
Airbnb
Img. 3 Soft-ul Airbnb
Acest soft este un bun exemplar, si un model de la care a ainceput implementarea
softului “Rent Apartemnt”, este o aplicatie pentru orice fel de dispozitive, care ofera
in chirierea apartmentelor din orice punct al lumii, inclusiv in Republica Moldova, pe
o perioada de la citeva zile, pina la citeva luni.
Este foarte comod in utilizare, suportul clintelor este la maxim, fiecare problema este
rezolvata. Este totul verificat, documentele, imaginele chiar si starea financiara a
persoanei care ofera apartamentul sau in cherie.
6
Din minusuri, cum am observat este o aplicatie pentru inchirierea apartamentelor sau
camerilor pentru o durata, maxim pina la 4 luni. Aici nu sunt apartamnte pentru
inchiriere.
Nu stiu daca pot numi si acesta un minus, dar foarte putine persoane de pe teritoriul
republicii moldova cunosc despre acesta aplicatie, mai mult este folosit de turisti, si
de persoanele care vin aici in privinta lucrului pe citeva saptamini.
Deci aici sunt unele exemple, a paginilor web si a aplicatiilor, care la moment sunt de
baza in Republica Moldova, care fac parte din domeniul in care intra softul elaborat:
“Apartement Rent”.
1.2 Cerințele specializate pentru softul elaborat
Cerințele de care a fost conduși in elaborarea softului „Apartment Rent” sunt:
 Sa fie un soft, accesibil, la intelesul fiecarui utilizator.
 In cadrul inregistratii utilatorului, pentru plasarea imobiliarului sau, sa fie
verificate toate datele necesare pentru excluderea escrocheriilor.
 Softul sa ofere informatii la capitolul apartamntelor existent la moment, cit
pentru cumparare -vinzare atit cit si pentru inchiriere sau oferirea chiriei.
 Sa fie o diferenta vasta de preturi, pentru placul fiecarui client.
 Implimentatrea aparte a departamentului „ Suport client”, pentru cei care ofera
serviciile, si pentru cei care le cumpara.
 Sa aiba un miniu simplu.
 Compartiment clar pentru plasarea imobiliarului. Care este clar stipulat, si se
catalogheaza in categoriile adaugate.
7
Capitolul 2
2.1 Instrumentele utilizate pentru dezvoltarea softului
Pentru dezvoltatrea unui soft, trebuie alese intrumente verificate care permit un lucru
usor dar cu succes. Am folosit platforma Android studio si pentruformarea unei baze
de date complexe am utilizat Sqlite database. Sa nu uitam si despre limbajul utilizat in
creearea acestui soft, am utilizat limbajul Java.
Android Strudio
Android Studio este mediul de dezvoltare integrat (IDE) oficial pentru sistemul de
operare Android de la Google, construit pe software-ul IntelliJ IDEA al JetBrains și
conceput special pentru dezvoltarea Android.Este disponibil pentru descărcare pe
sistemele de operare bazate pe Windows, macOS și Linux sau ca serviciu pe bază de
abonament în 2020. Este un înlocuitor pentru Eclipse Android Development Tools (EADT) ca IDE principal pentru dezvoltarea de aplicații Android native.
O caracteristică specifică, si de fololos a Android Studio este absența posibilității de a
dezactiva funcția de salvare automată.
Următoarele caracteristici sunt furnizate în versiunea stabilă actuală:
 Gradle-based suport de construcție.
 Refactorizare specifică Android și remedieri rapide.
 Instrumente Lint pentru a detecta performanța, gradul de utilizare,
compatibilitatea versiunilor și alte probleme.
 Capacitățile de integrare și semnare a aplicațiilor ProGuard.
 Template-based wizards pentru a crea modele și componente Android
comune.
 Un editor bogat de aspect care permite utilizatorilor să traga și să plaseze
componentele UI, opțiune de previzualizare a machetelor pe mai multe
configurații de ecran.
 Suport pentru crearea de aplicații Android Wear.
 Suport încorporat pentru Google Cloud Platform, permițând integrarea
cu Firebase Cloud Messaging (anterior „Google Cloud Messaging”) și
Google App Engine
 Dispozitiv virtual Android (Emulator) pentru a rula și a depana aplicații
în studioul Android.
Android Studio acceptă toate aceleași limbaje de programare ale IntelliJ (și CLion),
de ex. Java, C++ și multe altele cu extensii, cum ar fi Go; și Android Studio 3.0 sau o
versiune ulterioară acceptă Kotlin și „toate caracteristicile limbajului Java 7 și un
8
subset de caracteristici ale limbajului Java 8 care variază în funcție de versiunea
platformei.Proiectele externe backport unele caracteristici Java 9.
În timp ce IntelliJ afirmă că Android Studio acceptă toate versiunile Java lansate și
Java 12, nu este clar la ce nivel Android Studio acceptă versiunile Java până la Java
12 (documentația menționează suport parțial pentru Java 8). Cel puțin unele funcții de
limbaj noi până la Java 12 sunt utilizabile în Android. Odată ce o aplicație a fost
compilată cu Android Studio, aceasta poate fi publicată în Magazinul Google Play.
Aplicația trebuie să fie în conformitate cu politica de conținut pentru dezvoltatori
Google Play Store.
Cerințe de sistem
Cerinte de baza ale platformei Android Studio
Dincolo de cerințele de bază ale aplicației Android Studio, Emulatorul Android are
cerințe suplimentare care sunt descrise mai jos:

SDK Tools 26.1.1 sau o versiune mai actuală;

Procesor cu arhitectura 64-bit;

Windows: CPU cu suport UG (unrestricted guest);

HAXM 6.2.1 sau o versiune mai actuală (este recomandat HAXM 7.2.0 sau o
versiune mai actuală).
Utilizarea accelerației hardware are cerințe suplimentare pentru Windows și Linux:

Intel procesor în cazul sistemelor de operare Windows sau Linux: Intel
procesor cu sprijin pentru Intel VT-x, Intel EM64T (Intel 64), și
funcționalitatea Execute Disable (XD) Bit;

AMD procesor în cazul sistemei de operare Linux: AMD procesor cu sprijin
pentru AMD Virtualization (AMD-V) și Supplemental Streaming SIMD
Extensions 3 (SSSE3);
9

AMD procesor în cazul sistemei de operare Windows: Android Studio 3.2 sau o
versiune mai actuală și Windows 10 April 2018 release sau o versiune mai
ctuală pentru funcționalitatea Windows Hypervisor Platform (WHPX).
Pentru a lucra cu Android 8.1 (API level 27) și cu imagini de sistem mai superioare,
camera web atașată trebuie să aibă rezoluția de 720p.
SQlite
SQLite este un sistem de gestionare a bazelor de date relaționale (RDBMS) conținut
într-o bibliotecă C. Spre deosebire de multe alte sisteme de gestionare a bazelor de
date, SQLite nu este un motor de baze de date client-server. Mai degrabă, este
încorporat în programul final.
SQLite urmează în general sintaxa PostgreSQL. SQLite folosește o sintaxă SQL
tastată dinamic și slab, care nu garantează integritatea domeniului. Aceasta înseamnă
că se poate, de exemplu, introduce un șir într-o coloană definită ca un întreg. SQLite
va încerca să convertească datele între formate acolo unde este cazul, șirul „123” întrun număr întreg în acest caz, dar nu garantează astfel de conversii și va stoca datele
așa cum sunt dacă o astfel de conversie nu este posibilă.
SQLite este o alegere populară ca software de bază de date încorporat pentru stocarea
locală/client în aplicații software, cum ar fi browserele web. Este, fără îndoială, cel
mai răspândit motor de baze de date, deoarece este folosit astăzi de mai multe
browsere, sisteme de operare și sisteme încorporate (cum ar fi telefoanele mobile),
printre altele. SQLite are legături la multe limbaje de programare.
Caracteristicile SQLite
Aratăm în continuare unele din caracteristicile SQLite-ului care sunt neobișnuite și
care fac SQLite diferit de multe alte motoare de baze de date SQL:

Zero-Configurare
SQLite nu are nevoie de "instalare" înainte de a fi folosit. Nu există procedura de
"setup". Nu există nici un proces server care necesită pornire, oprire sau configurare.
Nu este nevoie de un administrator pentru a crea o nouă instanță de bază de date sau
pentru a atribui permisiuni de acces utilizatorilor. SQLite nu folosește fișiere de
configurare. Nu trebuie făcut nimic pentru a atenționa sistemul că SQLite rulează.
Nici o acțiune nu este necesară pentru a recupera ceva după o cădere de sistem sau
după o pană de curent. Nu este nimic de rezolvat.

Fără server
10
Majoritatea motoarelor de baze de date SQL sunt implementate că un proces server
separat. Programe care doresc acces la bază de date comunică cu serverul folosind un
fel de comunicare interprocese (tipic TCP/IP) pentru a trimite cereri către server și să
primească înapoi rezultate. SQLite nu lucrează așa. Cu SQLite, procesul ce dorește să
acceseze bază de date citește și scrie direct din fișierele bază de date de pe disc. Nu
există nici un proces server intermediar.
Sunt avantaje și dezavantaje în a lucra fără server. Marele avantaj este acela că nu
există un proces server de instalat, setat, configurat, inițializat, administrat și reparat.
Acesta este unul din motivele pentru care SQLite este un motor de baze de date "zeroconfigurare". Programe care folosesc SQLite nu necesită suport administarativ pentru
a pregăti motorul de baze de date înainte că acesta să fie rulat. Orice program care
este capabil să acceseze discul este capabil să folosească o bază de date SQLite.
Pe de altă parte, un motor de baze de date care folosește un server poate oferi o
protecție îmbunătățită în aplicații client - pointeri rătăciți în un client nu pot corupe
memoria pe server. Și deoarece un server este un proces unic persistent, el este
capabil să controleze accesul la bază de date cu o mai mare precizie, permițând o
blocare rafinată și concurență îmbunătățită.

Un singur fișier bază de data
O bază de date SQLite este un singur fișier disc (ordinar) care poate fi plasat
(localizat) oriunde în ierarhia directoarelor. Dacă SQLite poate citi fișierul disc atunci
poate citi orice din bază de date. Dacă fișierul disc și directorul său sunt writeable
(permit scrierea în ele), atunci SQLite poate schimbă orice în bază de date. Fișierele
bază de date pot fi ușor copiate pe memory stick-uri USB sau trimise prin e-mail
pentru a partajare.

Compact
Când este optimizată pentru mărime, inreaga librărie SQLite cu toate opțiunile
activate este mai mică de 225KiO. Opțiunile nenecesare pot fi dezactivate în timpul
compilarii pentru a reduce mai mult mărimea librării până sub 170KiO.

Alocarea tipului de date evident
SQLite relaxează această restricție folosind modul de atribuire a tipului de date
evident. În acest mod, tipul de date este o proprietate a valorii însăși, nu a coloanei în
care valoarea este stocată. SQLite, astfel, permite utilizatorului să stocheze orice
valoare de orice tip în orice coloană necontând tipul declarat al acelei coloane.

Înregistrări de lungime variabilă
11
SQLite, în contrast, folosește numai cantitatea de spațiu pe disc necesară să stocheze
informația în o linie. Dacă stochezi un singur caracter în o coloană VARCHAR(100),
atunci un singur octet de spațiu pe disc este folosit. Folosirea înregistrărilor de
lungime variabila are un număr de avantaje. Se concretizează, evident, în fișiere bază
de date mai mici. De asemenea face bazele de date să ruleze mai rapid, de vreme ce
este mai puțină informație să fie mișcată de pe și pe disc. Și, această metodă face
posibilă lui SQLite să folosească atribuirea tipului de date evident în locul metodei de
alocare statică.

Cod sursă lizibil
Codul sursă a SQLite este proiectat pentru a fi lizibil și accesibil unui programator
mediu. Toate procedurile și structurile de date și multe variabile automate sunt
comentate cu grijă cu informații utile despre ceea ce fac. Comentariile elevate sunt
omise.

Declarațiile SQL compilează în cod mașină virtuală
Folosirea unei mașini virtuale în SQLite a fost de un mare folos dezvoltării librăriei.
Mașină virtuală oferă o crispă, o bine definită uniune între front-end-ul SQLite (partea
care parsează declarațiile SQL și generează cod mașină virtuală) și back-end-ul
acestuia (partea care execută codul virtual mașină și calculează un rezultat). Mașină
virtuală permite dezvoltatorilor să vadă clar și în o manieră ușor de citit ceea ce
SQLite încearcă să facă cu fiecare declarație pe care o compilează, care este de un
ajutor de neimaginat în debugging. Depinzînd de cum este compilat, SQLite de
asemenea are capacitatea de a urmării execuția codului mașină virtual - printand
fiecare din instrucțiunile mașinii virtuale și rezultatele lor în timpul execuției.

Domeniul public
Codul sursă pentru SQLite este în domeniul public. Nu există nici o pretenție de drept
de autor pe nici o parte din codul sursă de bază. Toți contribuabilii la core-ul SQLite
au semnat cum că nu au nici un interes de drept de autor asupra codului. Această
înseamnă că oricine este capabil să facă orice vrea cu codul sursă SQLite (legal).

Extensiile de limbaj SQL
SQLite oferă un număr de îmbunătățiri limbajului SQL ce nu le găsești în mod
obișnuit în alte motoare de baze de date. Cuvântul rezervat EXPLAIN și alocarea
tipului de date evident sunt specificate mai sus. SQLite de asemenea oferă declarații
că REPLACE și clauza ON CONFLICT care permite control asupra rezolvării
conflictelor. SQLite suportă ATTACH și DETACH, comenzi care permit ca mai
12
multe baze de date independente să fie folosite în același query! SQLite definește
API-uri care permit utilizatorului să adauge noi funcții SQL secvențe cumulate.
Limbajul de programare Java
Java este un limbaj de programare de nivel înalt, bazat pe clasă, orientat pe obiecte,
care este proiectat să aibă cât mai puține dependențe de implementare. Este un limbaj
de programare de uz general destinat să permită programatorilor să scrie o dată, să
ruleze oriunde (WORA), ceea ce înseamnă că codul Java compilat poate rula pe toate
platformele care acceptă Java fără a fi nevoie de recompilare. Aplicațiile Java sunt de
obicei compilate în bytecode care poate rula pe orice mașină virtuală Java (JVM),
indiferent de arhitectura computerului subiacent. Sintaxa Java este similară cu C și
C++, dar are mai puține facilități de nivel scăzut decât oricare dintre ele. Runtime
Java oferă capabilități dinamice (cum ar fi reflecția și modificarea codului de rulare)
care de obicei nu sunt disponibile în limbajele compilate tradiționale. Începând cu
2019, Java a fost unul dintre cele mai populare limbaje de programare utilizate
conform GitHub, în special pentru aplicațiile web client-server, cu 9 milioane de
dezvoltatori raportați.
Un obiectiv de design al Java este portabilitatea, ceea ce înseamnă că programele
scrise pentru platforma Java trebuie să ruleze în mod similar pe orice combinație de
hardware și sistem de operare cu suport adecvat pentru timpul de rulare. Acest lucru
se realizează prin compilarea codului limbajului Java într-o reprezentare intermediară
numită bytecode Java, în loc să fie direct la codul mașinii specific arhitecturii.
Instrucțiunile Java bytecode sunt analoge cu codul mașină, dar sunt destinate să fie
executate de o mașină virtuală (VM) scrisă special pentru hardware-ul gazdă.
Utilizatorii finali folosesc de obicei un Java Runtime Environment (JRE) instalat pe
dispozitivul lor pentru aplicații Java independente sau un browser web pentru appleturi Java.
Limbajul Java este un pilon cheie în Android, un sistem de operare mobil open
source. Deși Android, construit pe nucleul Linux, este scris în mare parte în C,
Android SDK folosește limbajul Java ca bază pentru aplicațiile Android, dar nu
folosește niciunul dintre GUI standard, SE, ME sau alte standarde Java stabilite.
Limbajul bytecode suportat de Android SDK este incompatibil cu bytecode Java și
rulează pe propria sa mașină virtuală, optimizată pentru dispozitive cu memorie
redusă, cum ar fi smartphone-urile și tabletele. În funcție de versiunea Android,
bytecode este fie interpretat de mașina virtuală Dalvik, fie compilat în cod nativ de
Android Runtime. Android nu oferă întreaga bibliotecă standard Java SE, deși
Android SDK include o implementare independentă a unui subset mare al acestuia.
13
2.2 Arhitectura softului
O aplicație Android tipică conține mai multe componente ale aplicației, inclusiv
activități, fragmente, servicii, furnizori de conținut și receptoare de transmisie.
Declarați majoritatea acestor componente ale aplicației în manifestul aplicației.
Sistemul de operare Android utilizează apoi acest fișier pentru a decide cum să vă
integreze aplicația în experiența generală a utilizatorului a dispozitivului. Având în
vedere că o aplicație Android tipică poate conține mai multe componente și că
utilizatorii interacționează adesea cu mai multe aplicații într-o perioadă scurtă de
timp, aplicațiile trebuie să se adapteze la diferite tipuri de fluxuri de lucru și sarcini
conduse de utilizator.Pe măsură ce aplicațiile Android cresc în dimensiune, este
important să definiți o arhitectură care să permită aplicației să se scaleze, să mărească
robustețea aplicației și să facă aplicația mai ușor de testat. O arhitectură de aplicație
definește granițele dintre părțile aplicației și responsabilitățile pe care ar trebui să le
aibă fiecare parte. Pentru a răspunde nevoilor menționate mai sus, ar trebui să vă
proiectați arhitectura aplicației pentru a urma câteva principii specifice.
Cel mai important principiu de urmat este separarea preocupărilor. Este o greșeală
comună să scrieți tot codul într-o activitate sau un fragment. Aceste clase bazate pe
interfața de utilizare ar trebui să conțină doar logică care se ocupă de interacțiunile cu
interfața de utilizare și cu sistemul de operare. Păstrând aceste clase cât mai slabe
posibil, puteți evita multe probleme legate de ciclul de viață al componentelor și puteți
îmbunătăți testabilitatea acestor clase. Rețineți că nu dețineți implementări ale
Activity și Fragment; mai degrabă, acestea sunt doar clase de adeziv care reprezintă
contractul dintre sistemul de operare Android și aplicația dvs. Sistemul de operare le
poate distruge în orice moment, pe baza interacțiunilor utilizatorului sau din cauza
condițiilor sistemului, cum ar fi memoria scăzută. Pentru a oferi o experiență de
utilizator satisfăcătoare și o experiență de întreținere a aplicațiilor mai ușor de
gestionat, cel mai bine este să minimizați dependența dvs. de acestea.
Un alt principiu important este că ar trebui să vă conduceți UI din modele de date, de
preferință modele persistente. Modelele de date reprezintă datele unei aplicații. Sunt
independente de elementele UI și de alte componente din aplicația dvs. Aceasta
înseamnă că nu sunt legate de interfața de utilizare și de ciclul de viață al componentei
aplicației, dar vor fi în continuare distruse atunci când sistemul de operare decide să
elimine procesul aplicației din memorie.
14
Cum arata aplicatia
Deci softul contine trei pagini principale:
Prima apagina este acea de logare, unde este cerut
inregistratrarea emailui si a parolei utilizatorului
15
Dupa aceea este pagina Meniului Principal:
Aici utilizatorul poate sa observe casuta de cautare a
locului unde se afla. Dup ace elege locatia,
utilizatorul allege, pentru cine este rezervat/
cumparat acest apartament (acest pas a fost pus,
deoarece cind cineva isi plaseaza imobiliarul, allege
cui vrea s ail ofere in inchierere)
Si dupa alege, doar o camera, un apartment intreg,
vrea sa procure.
Sigur trebuia sa fie adaugate si compartimentul case,
dar este o idee de viitor
Pentru plasarea a imobiliarului sau este nevoie de
apasare pe butonul> Post your property.
Unde se va deschide pagina a doua, intre care
trebuie sa alegi ce vrei sa oferi. Camera sau
apartment.
Dupa asta va apare un meniu unde va trebui de
adaugat toata informatia necesara, despre
apartamntul oferit, plus fotografiile
corespunzatoare.
16
Elaborarea componentelor a inceput, disiagnul aplicatiei, adica prima pagina a fost
create, pagina de logare. Am inceput cu disgnul acestei, plasarii componentelor cum
miar placea, adica a casutelor pentru inscrirea informatiei, + butoenele necesare.
Disignul aplicatiei era cea mai usoara parte, a elaborarii acestui soft, Deoarece
platforma Android strudio, ne ofera toate intrumentele necesare, pentru a modifica
instantaneu vizualul aplicatiei, fara a mai fi necesare alte platforme.
Dupa aranjare vizuala a paginii, am decurs la programarea acestora, la unirea lor prin
cod, adica functionalul.
Deoarece a fost o prima experienta de crerea unui soft Android, a fost observat ca
SQLite pentru crerea acestui soft a fost o alegere foarte bune, deoarece Andoid Studio
la fel are toate repositoriile necesare, daca tebuie adaugata o baza de date.
Facind comparative cu aplicatia web pe care am realizat la fel cu o baza date, pot sa
remarc, ca a fost mult mai greu cind foloseam MYSQL, deoarece elaborarea paginii
web era pe o platforma, baza de date a fost create pe o plaforma aparte, toate trebuiau
cumva fi unite la sfirsit, cee ace ia timp din lucru unui inginer la elaborarea unui soft.
17
Capitolul 3
3.1 Descrierea componentelor functionale si nonfunctionale:
Sa incepem cu componentele functionale, cum a fost mentionat si mai sus, partea de
logare este una functionala.
Plus partea cu plasarea apartmentului sau a camerei dorite spre darea in exploatare,
care a luat cel mai mult timp, pentru stabilirea functionalului acesteia.
Partea care nu este functionala, este casuta de cautare de pe pagina principal, deoarece
prin cod a fost scris sa fie gasit pina cind doar un oras, deorece nu am gasit o metoda
clara cum sa unesc softul creat cu o harta, sau alt soft, care va putea cauta toate
locatiele necesare.
Din perspectica inginerului care a creat acest soft as dori sa adaug, ca idea care era la
baza acestui soft, nu s-a realizat pina la cap.
Pentru a avea un soft ideal, ar trebui la pagina principala sa fie o casuta aparte pentru
apartamente care se vind, sau case.
Plus partea nefunctionala mai este” Suport client”, la moment este adaugat doar un nr
gen de contact, se preconize de la inceput sa fie un buton care te arunca automat intrun chat cu persoana de la serviu tehnic.
Nu este functionala si partea cu schimbarea limbii pentru aplicatie, softul este doar in
limba engleza, poate fi neclar pentru utilizator, utilizarea unor pagini.
3.2 Testarea softului
Testarea aplicațiilor mobile este un proces prin care software-ul aplicației dezvoltat
pentru dispozitivele mobile portabile este testat pentru funcționalitatea, gradul de
utilizare și consistența acestuia. Testarea aplicațiilor mobile poate fi un tip de testare
automată sau manuala.
Provocări cheie pentru testarea aplicațiilor mobile:
Trebuie să poată fi descărcată: aplicația trebuie să poată fi obținută pentru o anumită
platformă, în general dintr-un magazin de aplicații.
Diversitate în platforme/OS-uri mobile: Există diferite sisteme de operare pentru
mobil pe piață. Cele mai importante sunt Android, iOS și Windows Phone. Fiecare
sistem de operare are propriile sale limitări.
Disponibilitatea dispozitivelor: Accesul la setul potrivit de dispozitive atunci când
există o listă în continuă creștere de dispozitive și versiuni de sistem de operare este o
provocare constantă de testare a aplicațiilor mobile. Accesul la dispozitive poate
deveni și mai dificil dacă testerii sunt răspândiți în locații diferite.
18
Scriptare: varietatea de dispozitive face executarea unui script de testare (scripting) o
provocare cheie. Deoarece dispozitivele diferă în ceea ce privește apăsarea tastelor,
metodele de introducere, structura meniului și proprietățile de afișare, un singur script
nu funcționează pe fiecare dispozitiv.
Metoda de testare: Există două modalități principale de testare a aplicațiilor mobile:
testarea pe dispozitive reale sau testarea pe emulatoare. Emulatorii ratează adesea
probleme care pot fi detectate doar prin testarea pe dispozitive reale, dar din cauza
multitudinii de dispozitive diferite de pe piață, dispozitivele reale pot fi costisitoare de
cumpărat și consumatoare de timp pentru a fi utilizate pentru testare.
Compatibilitate: Este necesar să se testeze compatibilitatea; asigurând că aplicația
funcționează în mod consecvent chiar și cu proprietăți diferite ale dispozitivului, cum
ar fi diferite dimensiuni și rezoluții ale ecranului.
Tipurile de testari a aplicatiilor mobile:
 Testarea funcțională asigură că aplicația funcționează conform cerințelor. Cele
mai multe dintre testele efectuate pentru aceasta sunt conduse de interfața cu
utilizatorul și fluxul de apeluri.
 Testele de laborator, de obicei efectuate de operatori de rețea, se realizează prin
simularea întregii rețele wireless. Acest test este efectuat pentru a afla
eventualele erori atunci când o aplicație mobilă utilizează voce și/sau
conexiune de date pentru a îndeplini anumite funcții.
 Testarea performanței este efectuată pentru a verifica performanța și
comportamentul aplicației în anumite condiții precum baterie scăzută, acoperire
proastă a rețelei, memorie disponibilă scăzută, acces simultan la serverul
aplicației de către mai mulți utilizatori și alte condiții.
 Testarea pierderilor de memorie: pierderile de memorie se întâmplă atunci
când un program de calculator sau o aplicație nu este în măsură să gestioneze
memoria care îi este alocată, ceea ce duce la performanța slabă a aplicației și la
încetinirea generală a sistemului.
 Testare întreruperi: o aplicație în timp ce funcționează se poate confrunta cu
mai multe întreruperi, cum ar fi apelurile primite sau întreruperea acoperirii
rețelei și recuperare.
 Testarea de utilizare este efectuată pentru a verifica dacă aplicația își atinge
obiectivele și obține un răspuns favorabil din partea utilizatorilor. Acest lucru
este important, deoarece capacitatea de utilizare a unei aplicații este cheia
succesului comercial.
19
 Testarea instalării: Anumite aplicații mobile vin preinstalate pe dispozitiv, în
timp ce altele trebuie să fie instalate de magazin. Testarea instalării verifică că
procesul de instalare decurge fără probleme, fără ca utilizatorul să fie nevoit să
se confrunte cu vreo dificultate.
 Testare de certificare: pentru a obține un certificat de conformitate, fiecare
dispozitiv mobil trebuie testat conform regulilor stabilite de diferite platforme
mobile.
 Testare de securitate: verifică vulnerabilitățile la hacking, politicile de
autentificare și autorizare, securitatea datelor, gestionarea sesiunilor și alte
standarde de securitate.
 Testarea locației: conectivitatea se modifică în funcție de rețea și locație, dar nu
puteți imita acele condiții fluctuante într-un laborator. Doar în țară testerii
neautomatizați pot efectua teste cuprinzătoare de utilizare și funcționalitate.
 Testare software învechită: nu toată lumea își actualizează în mod regulat
sistemul de operare. Unii utilizatori de Android ar putea să nu aibă nici măcar
acces la cea mai nouă versiune. Testerii profesioniști pot testa software-ul
învechit.
 Testarea încărcării: atunci când mulți utilizatori încearcă să descarce, să încarce
și să utilizeze simultan o aplicație sau un joc, pot apărea timpi de încărcare lenți
sau blocări, ceea ce determină mulți clienți să abandoneze aplicația, jocul sau
site-ul dvs.
 Testarea umană în țară efectuată manual este cea mai eficientă modalitate de a
testa sarcina.
 Testare cutie neagră: în cazul în care aplicația este testată fără să se uite la
codul și logica aplicațiilor. Testerul are date de testare specifice de introdus și
ieșirea corespunzătoare pe care aplicația ar trebui să le producă și introduce
datele de testare în căutarea programului pentru a scoate date în concordanță cu
ceea ce se aștepta testatorul.
 Testare crowdsourced: În ultimii ani, testarea crowdsourced a devenit
populară, deoarece companiile pot testa aplicațiile mobile mai rapid și mai
ieftin folosind o comunitate globală de testeri. Datorită diversității tot mai mari
de dispozitive și sisteme de operare, precum și nevoilor de localizare, este
dificil să testați aplicațiile mobile cuprinzătoare cu echipe interne mici de
testare. O comunitate globală de testeri oferă acces ușor la diferite dispozitive și
platforme. O echipă distribuită la nivel global îl poate testa și în mai multe
locații și în diferite condiții de rețea. În cele din urmă, problemele de localizare
pot fi testate prin angajarea de testeri în zonele geografice necesare. Deoarece
utilizatorii reali care folosesc dispozitive reale testează aplicația
20
Testarea softului elaborate, era fectuata manual, la fiecare component in parte de la
inceput, si tot asa cu cit se adaugau mai multe componente si legaturi intre aceste
componente.
Dupa elaborarea acestui soft, il putem evalua ca unul ne finisat, cred ca in cazul
testarii din partea unui utilizator, se vor gasi mai multe baguri.
Concluzia
In concluzi pot spune, ca dupa elaborarea unui soft, care a durat un curs intreg a
disciplinii Ingeneria Programarii, putem constata ca fiecare proiect fie cel soft, sau
hard incepe cu pasi mici, de la inceput invatam cum arata si se creiaza un soft a unui
calculator de buzunar, pentru a elabora un proiect mai vast la sfirsitul programului de
studio.
Am realizat ca sunt multe nuante, legate de cod, care trebuie fi stiute pentru a crea o
aplicatie Android, am invata lucru pe o platforma noua, Android Studio, este cea mai
buna alegere, daca doreste sa lucrez in domeniul dezvoltarii aplicatiilor mobile, pentru
un incepator. Si alegerea folosirii SQLite, a usurat mult lucru la elaborarea softului.
Ce la fel arata ca lumea tehnologiilor informationale se dezvolta pe z ice trece, pentru
a usura viata inginerilor, care se ocupa de crerea aplicatiilor.
Dupa implimentarea idee de proiect, in decursul elaborarii acestei idei, iti dai seama
cit e de greu sa intercalezi, sis a faci unirele logice intre componentele functionaluilui.
Iti dai seam ace trebuie sa fie exclus sau a daugat deja in momentul implimentarii,
deci un sfat bun ar fi elaborarea unei sheme cit mai exacte, a bezei de date a palicatiei,
deorece daca este o baza de date utila, care exclude toate conexiunele nelogice intre
componente, si dupa care te poti ghida, atuci exact ajungi la rezultatul final dorit.
Deoarece acesta a fost si greseala mea, la implimentarea unei baza de date, am
folosite prea multa informatie, care nu este utila, si am creat componente putine.
Partea cea mai grea, din perspectiva unui inginer, care a creat acest soft, este testarea
acestuia, deoarece, cred ca o privire rece, din partea unui utilizator ar fi mai efectiva
in gasirea bagurilor in aplicatie. Si testarea ar fi una din cele mai importante parti din
crearea unui soft, care in viitor se va folosi de o parte buna de oameni.
Cred ca acesta incercarea de creea de sinestatator un proiect soft, este un inceput bun
de ati testa cunostintele si abilitatile intr-un domeniu nou invatat, in rezultat iesi cu
anumite puncta care trebuie sa le perfectezi in cunostintele tale, ca sa poti progresa in
acest domeniu, si deoarece e deabia inceputul progresului tehnologic, in fiecare zi o sa
avem ce invata, pentru a fi cei mai buni in domeniu.
21
Bibliografie






✅ Android Studio Tutorial - Android Material Design UI no75 - YouTube
Куда летят цены на землю и недвижимость в Молдове - YouTube
Java (programming language) - Wikipedia
Guide to app architecture | Android Developers (google.cn)
Software architecture - Wikipedia
Testarea aplicatiilor web (scrigroup.com)
22
Download