Розробка трекінгу калорій у мобільному додатку

Зауважимо: коли база продуктів містить неточні дані, а формули КБЖУ дають помилку в 20%, користувачі швидко втрачають довіру. Ми стикалися з проектами, де через невірну інтерпретацію штрихкодів продукти потрапляли не в ті категорії, а синхронізація з HealthKit призводила до дублювання записів. Щоб ц

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка трекінгу калорій у мобільному додатку
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Зауважимо: коли база продуктів містить неточні дані, а формули КБЖУ дають помилку в 20%, користувачі швидко втрачають довіру. Ми стикалися з проектами, де через невірну інтерпретацію штрихкодів продукти потрапляли не в ті категорії, а синхронізація з HealthKit призводила до дублювання записів. Щоб цього уникнути, ми комбінуємо перевірені API (Open Food Facts, USDA), реалізуємо швидкий сканер штрихкодів за допомогою ML Kit та Vision, та інтегруємо розрахунки з системним HealthKit/Health Connect на рівні нативних фреймворків. Наш досвід — понад 10 проєктів з гарантією точності та стабільності.

На етапі проектування ми обираємо оптимальну базу продуктів. Open Food Facts обробляє запити в 2 рази швидше за USDA завдяки георозподіленим серверам, що економить бюджет на початковому етапі. Порівняємо основні джерела:

Джерело Доступ Якість Особливості
Open Food Facts Безкоштовний REST Добра для глобальних брендів, пропуски для локальних 3+ млн продуктів, відкрита ліцензія
USDA FoodData Central Безкоштовний API з ключем Детальна нутрієнтна інформація Орієнтований на США
Локальні бази (власні) Платний / краудсорсинг Контрольоване Підходить для регіональних продуктів

Локальне кешування популярних продуктів (топ-1000) прискорює пошук. Промах — запит до API. Використовуємо Room/CoreData.

Як працює сканування штрихкоду?

Найшвидший спосіб додати продукт. На iOS — DataScannerViewController (iOS 16+, Vision framework) або AVCaptureMetadataOutput для старих версій. На Android — CameraX + ML Kit BarcodeScanning:

Приклад коду для Android
val options = BarcodeScannerOptions.Builder() .setBarcodeFormats(Barcode.FORMAT_EAN_13, Barcode.FORMAT_EAN_8, Barcode.FORMAT_QR_CODE) .build() val scanner = BarcodeScanning.getClient(options) val imageAnalysis = ImageAnalysis.Builder() .setTargetResolution(Size(1280, 720)) .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST) .build() imageAnalysis.setAnalyzer(executor) { imageProxy -> val mediaImage = imageProxy.image ?: return@setAnalyzer imageProxy.close() val image = InputImage.fromMediaImage(mediaImage, imageProxy.imageInfo.rotationDegrees) scanner.process(image) .addOnSuccessListener { barcodes -> barcodes.firstOrNull()?.rawValue?.let { barcode -> onBarcodeDetected(barcode) } } .addOnCompleteListener { imageProxy.close() } } 

Чому важлива інтеграція з HealthKit/Health Connect?

Дані про харчування, збережені в системних сховищах, доступні іншим додаткам і покращують користувацький досвід. На iOS записуємо dietaryEnergyConsumed, dietaryProtein тощо. На Android використовуємо NutritionRecord.

let calorieType = HKQuantityType(.dietaryEnergyConsumed) let calorieSample = HKQuantitySample( type: calorieType, quantity: HKQuantity(unit: .kilocalorie(), doubleValue: 450), start: mealTime, end: mealTime ) healthStore.save(calorieSample) { _, _ in } 
val nutritionRecord = NutritionRecord( startTime = mealTime, startZoneOffset = ZoneOffset.systemDefault().getRules().getOffset(mealTime), endTime = mealTime.plusMinutes(30), endZoneOffset = ZoneOffset.systemDefault().getRules().getOffset(mealTime), energy = Energy.kilocalories(450.0), protein = Mass.grams(35.0), totalCarbohydrate = Mass.grams(60.0), totalFat = Mass.grams(15.0), mealType = NutritionRecord.MEAL_TYPE_LUNCH ) healthConnectClient.insertRecords(listOf(nutritionRecord)) 

Інтеграція потребує уваги до дозволів та правил App Store Review Guidelines (розділ 5.1.1).

Розрахунок КБЖУ: формули та точність

Базові формули:

  • BMR (Mifflin-St Jeor): чоловіки: 10 × вага(кг) + 6.25 × зріст(см) − 5 × вік + 5; жінки: 10 × вага(кг) + 6.25 × зріст(см) − 5 × вік − 161. Mifflin-St Jeor equation.
  • TDEE = BMR × коефіцієнт активності (1.2–1.9). Дефіцит/профіцит — цільові калорії мінус TDEE.
  • Добова норма БЖУ: білок 1.6–2.2 г/кг, жири 0.8–1.2 г/кг, вуглеводи — решта від загального КБЖУ.

Перевіряйте коректність на тестових даних. Помилки в розрахунках — одна з частих проблем при самостійній реалізації.

Обробка відсутніх продуктів

Якщо продукт не знайдено в базі, можна додати його вручну або через краудсорсинг. Ми реалізуємо механізм зворотного зв'язку: користувач надсилає фото та дані, модератор перевіряє та доповнює базу. Автоматичне розпізнавання по фото за допомогою ML Kit ImageLabeling або Logmeal API допомагає прискорити процес, але точність залежить від якості зображення.

Що входить в роботу

Після підписання договору ми:

  • Складаємо технічне завдання з описом усіх сутностей (продукти, прийоми їжі, користувачі) та потоку даних.
  • Проектуємо архітектуру модулів (мережа, кеш, UI, Health інтеграція).
  • Реалізуємо сканер штрихкодів, ручне введення, розрахунок КБЖУ та синхронізацію.
  • Готуємо документацію для API та App Store/Google Play (політика конфіденційності, розділи інструкції).
  • Надаємо доступ до репозиторію, CI/CD пайплайну та TestFlight/Google Play Console.
  • Проводимо навчання команди замовника роботі з бекендом та метриками.
  • Надаємо підтримку протягом 3 місяців після релізу (виправлення критичних багів, доопрацювання під нові ОС).

Розпізнавання їжі по фото (опціонально)

Для визначення продукту по знімку використовуємо ML Kit ImageLabeling (MobileNetV2) або спеціалізовані API. Порівняємо підходи:

Метод Точність на стравах Швидкість Вартість Складність інтеграції
ML Kit ImageLabeling 45–55% (загальні об'єкти) до 200 мс Безкоштовно Низька
Logmeal API 92% на 1000+ страв 800 мс $0.01/запит Середня
Власна модель (CoreML/TFLite) >95% при 50+ тис. зображень 100–300 мс Витрати на навчання Висока

Співставлення результату з базою продуктів — нечіткий пошук по імені категорії.

Етапи розробки трекера калорій

  1. Аналіз вимог — обираємо API бази продуктів, стек сканера, формули розрахунку.
  2. Проектування архітектури — модулі, кешування, синхронізація з HealthKit/Health Connect.
  3. Реалізація — сканер штрихкодів, розрахунок КБЖУ, інтеграція з зовнішніми сервісами.
  4. Тестування — unit-тести, UI-тести, інтеграційне на відповідність еталонним даним.
  5. Документація та деплой — підготовка метаданих, реліз в App Store / Google Play.
  6. Пост-релізна підтримка — моніторинг помилок, доопрацювання під нові версії ОС.

Терміни та вартість

Базовий додаток з ручним введенням, сканером та інтеграцією в HealthKit/Health Connect — 6–10 тижнів. З розпізнаванням їжі по фото та аналітикою — 3–5 місяців. Вартість розраховується індивідуально залежно від складності функцій. Залиште заявку на консультацію — ми підберемо оптимальне рішення під ваш бюджет.

Наш досвід

Понад кілька років на ринку мобільної розробки. Реалізували 10+ проектів з трекінгом здоров'я. Використовуємо сучасний стек: Swift 5.9, Kotlin, Jetpack Compose, Flutter. Сертифікати та ліцензії підтверджують кваліфікацію команди.

Зв'яжіться з нами, щоб обговорити деталі. Ми допоможемо впровадити трекінг калорій у ваш додаток. Замовте розробку — отримайте надійне рішення.