This is an old revision of the document!


RecipeFinder* Draica Violeta Ana-Maria, AAC, github: https://github.com/violetaanamaria/RecipeFinder Descriere generală Recipe Finder este o aplicație Android dezvoltată în Kotlin utilizând Jetpack Compose și Material 3 ca toolkit UI. Scopul aplicației este de a permite utilizatorilor să caute rețete după ingrediente, să vizualizeze detalii despre rețete și să salveze rețetele preferate local folosind o bază de date Room. Funcționalități principale - Căutare rețete după ingredient sau nume (prin API-ul [TheMealDB](https://www.themealdb.com)). - Afișare detalii rețetă: imagine, instrucțiuni, listă ingrediente + cantități. - Favorite: adăugare / eliminare rețete în/din lista de favorite. - Dark Mode: activare/dezactivare mod întunecat din Settings. - Ștergere favorite: buton în Settings pentru ștergerea completă a rețetelor favorite (Clear all favorites). - Persistență locală a rețetelor favorite cu Room Database. - Navigare prin meniul lateral între: - Search - Favorites - Settings Tehnologii folosite - Kotlin ca limbaj principal de programare - Jetpack Compose pentru UI declarativ modern - Material 3 (Material You) pentru design vizual adaptiv și modern - ViewModel + StateFlow pentru gestionarea reactivă a stării - Kotlin Coroutines pentru programare asincronă - Retrofit pentru utilizarea API-ului REST - Gson Converter pentru parsarea automată a răspunsurilor JSON - Room pentru stocarea rețetelor favorite local, folosind o bază de date SQL - Coil pentru încărcarea eficientă a imaginilor din rețea Arhitectură Aplicația este structurată folosind arhitectura MVVM (Model-View-ViewModel), o abordare recomandată în dezvoltarea Android pentru separarea responsabilităților și o mai bună testabilitate: - Model: include clasele de date (`Meal`, `FavoriteMeal`), clasa DAO pentru accesul la baza de date (`MealDao`) și `MealApiService` pentru interacțiunea cu API-ul extern. - ViewModel: `MealViewModel` gestionează logica de business și starea ecranului pentru rețete, iar `SettingsViewModel` controlează stările aplicației precum tema (dark/light) - View: este alcătuită din componente Composable definite în `ui/screens`, care observă datele din ViewModel și se actualizează automat în funcție de acestea. Endpoint-uri folosite - `GET https://www.themealdb.com/api/json/v1/1/search.php?s={nume}` Caută rețete după nume. Exemplu: `https://www.themealdb.com/api/json/v1/1/search.php?s=pizza` Bază de date locală - Se folosește Room pentru persistarea rețetelor favorite. - Tabel: `favorites` definit prin `@Entity` - Operații: - Inserare rețetă favorită - Ștergere rețetă după ID - Ștergere toate rețele favorite - Interogare toate retetele favorite Cum rulezi aplicația**

1. Clonează acest repo:

 ```bash
 git clone https://github.com/violetaanamaria/RecipeFinder.git
 ```

2. Deschide proiectul în Android Studio. 3. Asigură-te că ai internet activ pentru a apela API-ul. 4. Rulează aplicația pe un emulator sau dispozitiv fizic.

android/proiect/2025/proiecte/recipefinder.1748554138.txt.gz · Last modified: 2025/05/30 00:28 by violeta_ana.draica
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0