Context
CalorieTracking e o aplicație pentru iPhone, făcută pentru Frost Nova, în care îți urmărești caloriile și macronutrienții de peste zi. Ce o deosebește e scanarea meselor cu AI: fotografiezi farfuria, iar aplicația completează valorile.
Ideea
Într-o aplicație de calorii, un singur pas se repetă la fiecare masă: adăugarea ei. Acolo am pus AI-ul, ca o masă să se adauge dintr-o fotografie, fără tastat.
În rest, aplicația trebuia să aibă tot ce are nevoie cineva care își numără caloriile:
- cont, cu înregistrare, autentificare și recuperarea parolei;
- un chestionar la prima pornire, care stabilește ținta zilnică în funcție de datele persoanei, de greutatea actuală și de cea dorită;
- ecranul zilei, cu caloriile consumate față de țintă și cu macronutrienții;
- adăugarea manuală a unei mese, pentru cine o preferă;
- notificări care se pot opri din setări.
Ce am construit
Scanarea mesei cu AI. Fotografiezi farfuria din aplicație, iar AI-ul recunoaște felul de mâncare, estimează cantitatea și ingredientele și completează caloriile și macronutrienții. Toate câmpurile pot fi corectate, iar masa se salvează abia după ce o confirmi. Cine preferă o poate adăuga și de mână.
Ecranul zilei arată cât ai mâncat față de țintă, macronutrienții și lista meselor. Tot de aici adaugi o masă nouă.
Chestionarul de început e făcut din cartonașe, cu o bară de progres și un selector de greutate desenat special pentru el.
Activitățile fizice și statisticile. O activitate se adaugă cu tipul, durata, distanța și caloriile estimate. Statisticile arată cum se împart macronutrienții și cum evoluează greutatea.
Contul și notificările merg prin Firebase: înregistrare, intrare în cont, parolă uitată. Mesajele de eroare sunt scrise pe înțelesul oricui, iar notificările se opresc din setări.
Aplicația e nativă pentru iOS, scrisă în Swift și SwiftUI. Fiecare parte a ei (contul, chestionarul, mesele, setările) are codul ei separat, așa că o funcție nouă se adaugă fără să le afecteze pe celelalte. Toate ecranele folosesc aceleași culori, fonturi și componente, definite o singură dată.