Această aplicație Android permite utilizatorilor să converteze sume dintr-o monedă în alta folosind un API valutar. Aplicația utilizează Jetpack Compose pentru interfața grafică și arhitectura MVVM (Model-View-ViewModel) pentru gestionarea datelor și stării.
'Jetpack Compose' – UI declarativ modern 'Kotlin' – limbajul principal 'MVVM' – Model-View-ViewModel pentru arhitectură clară 'Room' – salvarea locală a istoricului 'Retrofit' – consum REST API pentru cursuri valutare 'Multilingv' – suport pentru RO, EN, DE 'Gradle' – build & dependency management Această componentă gestionează salvarea și accesarea istoricului conversiilor valutare utilizând biblioteca Room.
Entitatea care reprezintă o conversie valutară în baza de date.
'id' – identificator unic generat automat 'fromCurrency' – codul monedei de origine 'toCurrency' – codul monedei de destinație 'rate' – cursul de schimb utilizat 'amount' – suma convertită 'timestamp' – momentul conversiei (în milisecunde) Interfața DAO pentru accesul la datele conversiilor.
'insert(conversion: ConversionEntity)' – inserează sau actualizează o conversie 'getLast10()' – returnează ultimele 10 conversii, ordonate descrescător după timestamp 'clearAll()' – șterge toate înregistrările din istoricul conversiilor Clasa abstractă care extinde RoomDatabase și oferă acces la DAO-ul de conversii.
'conversionDao()' – returnează instanța DAO pentru conversii Această componentă se ocupă de comunicarea cu API-ul extern pentru a prelua cursurile valutare actualizate folosind biblioteca Retrofit.
Modelul de date care reprezintă răspunsul primit de la API:
'date' – data la care se referă cursurile 'base' – moneda de bază pentru conversii 'rates' – map cu perechi valută–curs (cod valută → valoare curs) Interfața care definește endpoint-urile API-ului pentru Retrofit:
'getLatestRates(apiKey, base)' apiKey
– cheia de acces la API
base
– moneda de referință (implicit “USD”)
ExchangeRatesResponse
Obiect singleton care configurează Retrofit:
BASE_URL
– URL-ul de bază al serviciului de cursuri valutare
api
– instanța
CurrencyApiService
creată cu Retrofit (converter Gson)
Clasa extinde
AndroidViewModel
și se ocupă cu:
fetchRates(apiKey)
– încarcă cursurile valutare, actualizează starea și gestionează încărcarea/erorile
convert()
– realizează conversia, actualizează
result
și salvează conversia
getConversionRate(from, to)
– calculează rata de conversie între două monede
loadHistoryFromDb(language)
– preia ultimele 10 conversii și formatează textul în funcție de limbă
Clasa gestionează stările legate de configurarea aplicației (limbă, culoare butoane etc.)