| שדה במודל BodyComposition | מה בתמונה | דוגמה |
|---|---|---|
| weight | Weight | 95.7 kg |
| bmi | BMI | 29.9 |
| bodyFatPct | Body fat percentage | 28.2% |
| muscleMassKg | Muscle mass | 65 kg |
| boneMassKg | Bone mineral content | 3.7 kg |
| waterPct | Body water | 51.7% |
| bmr | Basal metabolic rate | 1854 Kcal |
| visceralFat | Visceral fat rating | 13 |
| proteinPct | Protein percentage | 15.4% |
| metabolicAge | Body age | 34 |
| leanBodyMassKg | Fat-free body weight | 68.7 kg |
| skeletalMusclePct | Skeletal muscle mass (נגזר) | 36 kg |
| subcutaneousFatPct | (נגזר מ־body fat) | ~22.6% |
| NEW: heartRateBpm | Heart rate | 71 bpm |
השדה החדש heartRateBpm דורש הוספה למודל BodyComposition + ל־Firestore schema. בונוס שלא היה אפילו ב־BLE protocol.
Google ML Kit on-device (מומלץ) — חינם, מהיר (~200ms), פרטיות מלאה, מתאים ללייאאוט קבוע כמו Mi Home
או Gemini Vision API — דיוק גבוה יותר, אבל cloud + עלות + תמונה עוזבת המכשיר
המלצה: ML Kit. הלייאוט קבוע ולא צריך understanding — רק קריאת מילים ומספרים.
תמיד להציג דיאלוג עם התמונה + הערכים השלופים, ולתת לערוך לפני שמירה
או לדלג אוטומטית כש־confidence>95% וסניטי תקין, ולהציג רק במקרי ספק
המלצה: תמיד להציג. שקילה זה event נדיר (פעם בכמה ימים) — שניית אישור נוספת לא מפריעה.
Firebase Storage — שומר את ה־PNG ב־users/{uid}/body_composition/{docId}/source.png. מאפשר אימות עתידי אם מתגלים מקרי קצה
או לא לשמור — תמונה מקומית נמחקת אחרי שמירה. חוסך אחסון + מהיר + פחות רגיש לפרטיות
המלצה: לא לשמור. אם ה־parser תקין אין צורך, וזה גם הרבה storage לאורך זמן.
אתה מאשר את 3 ההכרעות (או בוחר אחרת). כברירת מחדל אזוז עם ML Kit + תמיד דיאלוג אישור + לא לשמור תמונה.
אני אז מבצע:
אומדן: 2-3 שעות עבודה. הבדיקה האמיתית היא עליך — לשקול ב־Mi Home ולשתף את הדוח לאפליקציה.