Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Direcții viitoare de dezvoltare

  • adăugare suport rețete în mai multe limbi
  • mărirea bazei de date
  • posibilitatea de a crea propria rețetă
  • legare la server sau cloud pentru stocarea datelor și imaginilor
  • forum sau review pentru rețete
  • căutare vocală
  • adăugare suport pentru versiuni Android mai vechi de 4.0.3

Ideea

Motivația

Vă mulțumesc!

  • carte de rețete la îndemână
  • inspirație de gătit
  • ghidare pas cu pas
  • căutare rapidă a rețetei necesare
  • o rețetă după produsele din frigider

Interfața

Rezultat

Aplicația myCookbook care conține:

  • baza de date cu rețete variate explicate amanunțit, cu detalii avansate despre consistență
  • abilitatea de a căuta rapid de oriunde din aplicație rețeta dorită
  • ghidarea procesului de pregatire cu calculare de cantitate și track-ing de timp
  • generarea rețetelor dupa barcode-ul produselor la îndemână
  • interfață placută și comodă
  • deschidere către o piață largă de utilizatori datorită suportului în limba engleză

Demo

Functionalitati

b) Scanare

myCookbook

- presupune existența unui buton de scanare a unui cod de bare

- la accesare prin intent, se va deschide o altă aplicație Barcode Scan, prin intermediul căreia se va efectua scanarea produselor

- returnează codul de bare al ingredientului scanat

- caută rețeta în funcție de acesta

Detalii tehnice

- în metoda onClick() din ScanIngredientContentFragment are loc inițializarea noului intent catre BarcodeScan. IntentIntegrator din Zxing. Iar în onCreateView() se umple content-ul fragmentului cu layout-ul din xml

- onActivityResult() din MainActivity se primește rezultatul venit în urma scanarii, se verifică dacă s-a primit un rezultat diferit de null; daca există ingredientul scanat în baza de date; dacă da, se adauga ingredientul intr-un container, listă de tip IngredientModel; se crează checkbox-ul cu funcția addIngredientCheckbox()

- addIngredientCheckbox() verifică dacă ingredientul a mai fost deja scanat să nu fie readăugat, respectiv adaugă checkbox-ul din fragmentul xml (fragment_recipe_detail_content_ingredients_item), dacă elementul este selectat, va fi adăugat în lista checkedIngredients

Funcționalități

a) Căutarea

- presupune existenta unui buton de search în toate fragmentele activității Main

- la accesare, apare un câmp de text pentru introducerea cuvântului cheie dorit

- returnează lista de rețete al căror nume conține cuvântul căutat

Cuprins:

Universitatea Transilvania din Brașov

Facultatea de Matematica Informatica

Aplicaţii Pentru Telefonul Mobil Şi Tehnologii Internet În E-Business

Funcționalități

c) Extindere flexibila

Detalii tehnice

- structura claselor permite adăugarea numeroaselor rețete fară a afecta calitatea sau modul de interacține cu aplicația

- adăugarea de rețete direct în baza de date prin intermediu SQLite Studio

- adăugare rețete prin intermediul API-urilor disponibile

Cookbook Mobile Application

- onSearch() setează queri-ul ce va fi folosit în căutare

- setupSearchView() setează view-ul ce este afișat în momentul apăsării icon-ului de Search

- în cadrul RecipeListFragment.class :

- loadData() crează si lansează query-ul

- onDatabaseCallRespond() se preia raspunsul de la baza de date și se transformă intr-o listă de rețete

- renderView() populează fragmentul cu elemente grafice care reprezintă rețetele

  • Ideea
  • Interfața
  • Arhitectura aplicației

a) Activități și fragmente

b) Baza de date

  • Funcționalități

a) Căutare

b) Scanare

c) Extindere flexibilă

  • Direcții viitoare de dezvoltare

Autor:

Simona-Mihaela LUCA

Coordonator :

Conf. univ. dr. Livia Sangeorzan

Brașov

2017

Arhitectura aplicației

b) Baza de date

a) Activități și fragmente

SQLite Database

Baza de date SQLite este alcatuită din 3 tabele:

MainActivity

RecipeDetailActivity

- tabelul ingredients

- tabelul recipes

- tabelul categories

Descriere generală

- activitatea ce permite afișarea detaliilor unei rețete

RecipeListFragment

Drawer Adapter - responsabil de afișarea meniuli

  • încarcă lista cu rețete

- este inițializat cu o listă de categorii

- la selectarea unei categorii apelează metoda

selectDrawerItem care configurează recipeListFragment cu o listă de rețete corespunzătoare categoriei selectate

Design:

  • LinearLayout - fragment_recipe_list_recycler = fragment_recpe_list_item + fragment_recipe_list_footer

Design:

- fragment_recipe_details_content format din:

Are rolul de a extrage din baza de date detaliile despre rețeta selectată și respectiv de a le afișa pe ecran. Acesta este alcătuit din:

ScanIngredientFragment

fragment_scan_ingredient

Format din două FrameLayout-uri. :

  • scan_container
  • ingredient_list_container + ingredient_checkbox_container

Scan_container - deține partea de descriere din TextField și butonul de Scan ce face legătura cu Intent-ul de lansare a aplicatiei BarcodeScanner prin intermediul librăriei Zxing

  • fragment_recipe_details_content_intro
  • fragment_recipe_details_content_ingredients
  • fragment_recipe_details_content_ingredients_item
  • fragment_recipe_details_content_instruction

  • Tabelul ingredients este reprezentat de clasa IngredienModel ce este initializată și populată de clasa IngredientDAO.
  • IngredientDAO accesează baza de date și extrage informația necesară pentru a completa modelul.

onActivityResult()

  • același procedeu este respectat pentru celelalte tabele prin clasele RecipesModel și CategoriesModel

Zxing Library

lansarea unui intent

- lansat în cadrul fragmentului fragment_scan_ingredient prin intermediul unui intent

- scanează imaginea în cautarea unui cod de bare

- returnează codul de bare scanat catre MainActivity prin intermediul onActivityResult()

Learn more about creating dynamic, engaging presentations with Prezi