Differences

This shows you the differences between two versions of the page.

Link to this comparison view

android:proiect:2025:proiecte:recipefinder [2025/05/30 00:26]
violeta_ana.draica
android:proiect:2025:proiecte:recipefinder [2025/05/30 00:45] (current)
violeta_ana.draica
Line 1: Line 1:
-**RecipeFinder**+====== ​RecipeFinder ​======
  
-Draica Violeta Ana-Maria, AAC, github: https://​github.com/​violetaanamaria/​RecipeFinder ​ 
  
-## Descriere generală+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. 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+====== ​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.+**Căutare rețete** după ingredient sau nume (prin API-ul [TheMealDB](https://​www.themealdb.com)).
  
-**Navigare** prin meniul lateral între: +**Afișare detalii rețetă**: imagine, instrucțiuni,​ listă ingrediente + cantități.
-  - Search +
-  - Favorites +
-  - Settings+
  
-## Tehnologii folosite+**Favorite**:​ adăugare / eliminare rețete în/din lista de favorite.
  
-**Kotlin** ca limbaj principal de programare +**Dark Mode**: activare/​dezactivare mod întunecat din Settings. 
-**Jetpack Compose** pentru UI declarativ modern + 
-**Material 3 (Material You)** pentru design vizual adaptiv și modern +**Ștergere favorite**: buton în Settings pentru ștergerea completă a rețetelor favorite (Clear all favorites). 
-**ViewModel + StateFlow** pentru gestionarea reactivă a stării + 
-**Kotlin Coroutines** pentru programare asincronă +**Persistență locală** a rețetelor favorite cu Room Database. 
-**Retrofit** pentru utilizarea API-ului REST + 
-**Gson Converter** pentru parsarea automată a răspunsurilor JSON +**Navigare** prin meniul lateral între: 
-**Room** pentru stocarea rețetelor favorite local, folosind o bază de date SQL + 
-**Coil** pentru încărcarea eficientă a imaginilor din rețea+  *   ​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ă ======
  
-## 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:​ 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. +  * **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) +  ​* ​**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.+  ​* ​**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 ======
  
-## Endpoint-uri folosite 
  
 - `GET https://​www.themealdb.com/​api/​json/​v1/​1/​search.php?​s={nume}`  ​ - `GET https://​www.themealdb.com/​api/​json/​v1/​1/​search.php?​s={nume}`  ​
   Caută rețete după nume.  ​   Caută rețete după nume.  ​
   Exemplu: `https://​www.themealdb.com/​api/​json/​v1/​1/​search.php?​s=pizza`   Exemplu: `https://​www.themealdb.com/​api/​json/​v1/​1/​search.php?​s=pizza`
-## Bază de date locală+   
 +====== ​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 ======
  
-- 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:
  
-1. Clonează acest repo: +''​git clone https://​github.com/​violetaanamaria/​RecipeFinder.git''​ 
-   ​```bash +  ​- ​  Deschide proiectul în Android Studio. 
-   git clone https://​github.com/​violetaanamaria/​RecipeFinder.git +  ​- ​Asigură-te că ai internet activ pentru a apela API-ul. 
-   ``` +  ​- ​Rulează aplicația pe un emulator sau dispozitiv fizic.
-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.1748554003.txt.gz · Last modified: 2025/05/30 00:26 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