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.)