• Nenhum resultado encontrado

My Bills Manager - UAIC

N/A
N/A
Protected

Academic year: 2023

Share "My Bills Manager - UAIC"

Copied!
45
0
0

Texto

Prin prezenta, declar că Lucrarea de licență intitulată „My Account Manager” a fost scrisă de mine și nu a fost niciodată depusă la vreo altă facultate sau instituție de învățământ superior din țară sau din străinătate. Prin prezenta declar că sunt de acord cu utilizarea lucrării de licență intitulată „My Bill Manager”, a codului sursă al programelor și a celorlalte conținuturi (grafică, multimedia, date de testare etc.) care însoțesc această lucrare în cadrul Facultății de Informatică. . De asemenea, sunt de acord ca Facultatea de Informatică a Universității „Alexandru Ioan Cuza” din Iași să utilizeze, să modifice, să reproducă și să distribuie programele de calculator, format executabil și sursă, realizate de mine în prezenta teză de licență, în scopuri necomerciale.

Introducere

  • Motivație
  • Context
  • Funcționalități
  • Specificații tehnice

Principalele câmpuri de completat la adăugarea unui cont nou sunt: ​​numele contului, data scadenței și plata totală. Utilizatorul primește o notificare când se apropie data scadenței contului (ora șapte dimineața). Plătite sunt marcate cu verde, neplătite sunt marcate cu roșu dacă sunt restante, iar dacă nu sunt restante și nu au fost încă plătite, sunt marcate cu albastru.

Utilizatorul poate filtra lista de facturi dupa urmatoarele criterii: facturi viitoare, facturi neplatite, facturi platite, facturi restante. Android Studio este un mediu de dezvoltare recomandat de Google pentru platforma Android care poate rula pe Windows, Linux și Mac OSX. Este un limbaj de programare orientat pe obiecte dezvoltat de Sun Microsystems și lansat în 1995.

Firebase Database oferă dezvoltatorilor de aplicații un API care le permite să stocheze date în cloudul Firebase.

Tehnologii utilizate

  • Sistemul de operare Android
  • Android API
  • Android Studio
  • Biblioteca Butter Knife
  • Biblioteca Google Maps
  • Bibliotecile Firebase

A fost adăugat și un sistem de automatizare a build-urilor numit Gradle, cu ajutorul căruia se pot configura build-urile realizate pentru aplicații. Cu acest Android biblioteci specifice pot fi descărcate cu o simplă linie de cod și apoi apăsând butonul Sincronizare. Un utilizator Firebase are un anumit set de caracteristici de bază: un identificator unic, o adresă de e-mail, un nume, o adresă URL a unei fotografii stocate în baza de date a utilizatorilor Firebase.

Utilizatorii Firebase nu pot avea alte proprietăți adăugate la ei, dar proprietăți suplimentare pot fi stocate într-o bază de date Firebase care este independentă de baza de date a utilizatorilor. A doua bibliotecă oferită de Firebase ne oferă posibilitatea de a ne conecta și de a crea instanțe în baza de date Firebase în care sunt stocate chitanțele utilizatorilor. În loc să utilizeze solicitări HTTP, această bază de date folosește sincronizarea datelor ori de câte ori se modifică, fiecare utilizator conectat primind actualizări în milisecunde.

Dacă telefonul nu are conexiune la Internet, SDK-ul păstrează datele de pe disc dacă, de exemplu, încearcă să salveze date pe bază, iar când conexiunea este restabilită, aceste date vor fi salvate și aplicația se va sincroniza cu starea curentă a serverului.

Figura 1: Arhitectura sistemului de operare Android  [3]
Figura 1: Arhitectura sistemului de operare Android [3]

Arhitectura soluției

  • Analiza problemei și găsirea soluției
  • Model View Presenter
  • View-ul în aplicațiile Android
  • Presenter-ul în aplicația My Bills Manager
  • Relația dintre View și Presenter
  • Modelul în aplicația My Bills Manager

Dacă ne uităm îndeaproape la arhitectura Android, în special la relația dintre View (Activități, Fragmente) și Model (structuri de date), putem concluziona că Model nu poate fi considerat un View Controller. Model View Controller este o alegere bună, dar o alegere și mai bună este șablonul Model View Presenter (MVP). Model View Presenter este un derivat al șablonului Model View Controller și este folosit în principal pentru a construi interfețe cu utilizatorul.

Ideea principală din spatele Model View Presenter este de a decupla implementarea vizualizării de logica aplicației și Model prin adăugarea unui concept numit Prezentator unde este implementată logica de prezentare (Figura 6). Fiecare Prezentator comunică cu baza de date Firebase atunci când vizualizarea dorește să fie completată cu date (de exemplu, în cazul ecranelor cu liste de facturi). Când o acțiune este efectuată pe o vizualizare (de exemplu, apăsarea unui buton), aceasta va apela o metodă publică pe Prezentator.

În șablonul Prezentator vizualizare model, vizualizarea este complet pasivă și trimite întotdeauna date către vizualizarea Prezentator. Vizualizarea și prezentatorul au o relație unu-la-unu, astfel încât prezentatorul este legat de o singură vizualizare. Există mai multe interpretări ale modului în care modelul View Presenter poate fi implementat în Android.

Vederea este, de asemenea, responsabilă pentru notificarea prezentatorului când modelul este distrus și pentru întreținerea modelului. Identificatorul unic de utilizator este utilizat atunci când se creează o referință la nodul bazei de date a utilizatorului autentificat sau chiar la nodul contului acestuia. Această metodă este utilizată de prezentatorul de meniu, iar e-mailul este trimis la vizualizarea meniului pentru a fi afișat acolo.

Instanțele clasei Bill sunt create atunci când utilizatorul completează câmpurile din ecranul Adăugare sau Editare Factură. Atunci când o solicitare este trimisă în baza de date pentru lista de facturi, se primește un obiect DataSnapshot, care va fi procesat de prezentator pentru a forma un ArrayList de facturi.

Figura 5: Model View Controller  [8]
Figura 5: Model View Controller [8]

Proiectare

Baza de date a aplicației My Bills Manager

Baza de date a aplicației care stochează facturile pentru fiecare utilizator poate fi accesată din consola Firebase făcând clic pe opțiunea Bază de date din meniul din stânga. Pentru a accesa acest nod din aplicația Android, o instanță a clasei DatabaseReference este creată pentru acel nod apelând metoda: FirebaseDatabase.getInstance(). Imaginea de mai jos arată JSON din consola Firebase a aplicației My Bills Manager.

Dacă un utilizator nu a adăugat încă o factură, nodul cu identificatorul său nu apare încă în baza de date.

Figura 8: JSON-ul aplicației My Bills Manager din Firebase
Figura 8: JSON-ul aplicației My Bills Manager din Firebase

Implementare

  • Activitățile și fragmentul de bază
  • SplashScreenActivity
  • Fereastra de autentificare
  • Fereastra de înregistrare
  • Meniul aplicației
  • Listele de facturi
  • Adăugare, modificare și vizualizare facturi
  • Notificări
  • Internaționalizare

Când este creat un fragment, metoda onCreateView este apelată în ciclul de viață al fragmentului. Înainte de a adăuga un nou fragment, obțineți fragmentul curent, setați-i booleanul isInForeground la false și apelați metoda onPause, deoarece acest fragment va fi tratat în fundal atunci când este adăugat unul nou. Metoda onBackPressed() este apelată atunci când butonul nativ înapoi este apăsat pe telefon sau tabletă.

Dacă stiva de fragmente conține cel puțin un element, ultimul fragment adăugat va fi eliminat din stivă prin apelarea metodei popBackStackImmediate din handlerul de fragmente. Dacă nu există fragmente pe stivă, activitatea de gestionare a fragmentelor va fi distrusă. Dacă utilizatorul a fost deja conectat ultima dată când a închis aplicația, obiectul FirebaseUser va fi primit atunci când ascultătorul este atașat.

Dacă aceasta este nulă, utilizatorul va fi redirecționat către fereastra de autentificare, în caz contrar se va efectua o autentificare automată și va fi redirecționat către fereastra de conturi viitoare a utilizatorului. Când utilizatorul face clic pe TextView cu textul „Înscrieți-vă acum”, se declanșează SignUpActivity, care se deschide în partea de sus a ferestrei de autentificare. Dacă autentificarea are succes, MenuActivity este deschisă și activitatea de autentificare este închisă prin apelarea metodei finish(), altfel va apărea pe ecran un mesaj cu textul „Eroare de autentificare” și vizualizările cu acțiunea pe acestea vor fi deblocate. .

Dacă unul dintre câmpuri nu este completat, este returnată o eroare de câmp obligatorie, care va fi setată în EditText corespunzător apelând metoda setError cu mesajul specific. Dacă acestea nu sunt valide, se setează o eroare și în funcție de aceasta, eroarea este afișată în câmpul corespunzător apelând metoda setError pe EditText. Când se face clic pe o opțiune de meniu, vizualizarea acesteia este salvată și setată ca selectată.

Dacă câmpurile sunt valide, se apelează metoda saveBillInFirebase sau editBillInFireBase, în funcție de modul ecran. Dacă salvarea sau modificarea are succes, utilizatorul va fi redirecționat către ecranul anterior. Dacă data scadentă este aceeași cu data curentă, notificarea este setată să fie primită după un minut, altfel va fi primită la ora 7:00 la data scadentă.

Această metodă va fi apelată (pentru a conține detaliile facturii) când va fi timpul ca notificarea să fie creată și postată.

Manual de utilizare

  • SplashScreen
  • Autentificare
  • Înregistrare
  • Facturi viitoare și meniul aplicației
  • Facturi restante și facturi neplătite
  • Facturi plătite
  • Adăugare și modificare/vizualizare factură
  • Selectare data scadenței și selectarea punctului de plată
  • Informații despre aplicație și notificări

Dacă înregistrarea are succes, utilizatorul este autentificat automat și va fi redirecționat ca pe ecranul de autentificare către conturile viitoare. Dacă se deschide meniul, veți observa că această opțiune este selectată (colorată în verde). Când faceți clic pe o factură din lista de facturi viitoare, se deschide o casetă de dialog cu următoarele opțiuni: Marcare ca plătită, Vizualizare/Modificare, Ștergere.

Meniul aplicației poate fi accesat din ferestrele listei de facturi sau din fereastra de descriere a aplicației. Fereastra de facturi restante poate fi accesată din meniu și afișează lista facturilor restante. Ca și în următoarea fereastră de facturi, făcând clic pe un articol din listă va apărea un dialog cu opțiunea de a vizualiza, edita, șterge sau marca acea factură ca plătită.

Făcând clic pe opțiunea Vizualizare/Modificare, utilizatorul va fi redirecționat către fereastra de modificare a facturii unde pot fi văzute toate câmpurile pre-completate cu datele de factură selectate. După selectarea datei, acea factură va fi mutată în lista facturilor plătite. Aceeași fereastră de facturi plătite poate fi accesată din meniu la fel ca și celelalte liste de facturi.

Utilizatorul trebuie să completeze câmpurile numele facturii, data scadenței și totalul plății. Aceste câmpuri sunt obligatorii. Când utilizatorul apasă butonul Salvare, acesta va fi redirecționat către ecranul anterior dacă factura a fost salvată cu succes în baza de date. Puteți deschide fereastra Vizualizare/Modificare Factură făcând clic pe opțiunea Vizualizare/Modificare din listele de facturi.

Când utilizatorul face clic pe butonul Ok, data va apărea în câmp și poate fi modificată făcând clic din nou pe ea. Când utilizatorul face clic pe câmpul Select Payment Point, va apărea un ecran de selectare a locației. Are un ac în centrul hărții și când utilizatorul ajunge în poziția dorită și apasă butonul Select, acesta va fi redirecționat către ecranul anterior și coordonatele selectate vor fi afișate pe ecran.

Aceste notificari au in titlu denumirea facturii si informatii despre scadenta si plata totala in organism.

Concluzii

Bibliografie

Imagem

Figura 1: Arhitectura sistemului de operare Android  [3]
Figura 2: Diagrama popularității versiunilor de Android, 9 ianuarie 2017  [4]
Figura 3: Android Studio – implementarea unei ferestre (parte de layout)
Figura 4:Utilizarea adnotărilor în Activitatea de Înregistrare
+7

Referências

Documentos relacionados

Se bazează pe călătoria noastră de aproape 30 de ani de cercetare în oceanul albastru, în care am studiat organizații mari și mici, pentru profit, nonprofit și instituții guvernamentale