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:27]
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. 
 + 
 +**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ă ======
  
-- **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:​ 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}`  ​
Line 47: Line 59:
   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.1748554065.txt.gz · Last modified: 2025/05/30 00:27 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