Healthcare Case study

FitMi: smart-scale nutrition and exercise tracker

FitMi, native iOS and Android apps that weigh food on a Bluetooth smart scale, log meals with nutrition data and track weight, sleep, water and exercise.

FitMi app icon linked by Bluetooth to a smart scale, above icons for weight, planner, food log, pairing, activity and sleep
Client
FitMi
Service
Mobile apps, Integrations, Web apps
Years
2016–2018 (2 years)
Stack
Android Studio, MySQL, PHP, Java and 5 more
Platforms
Android, Web

Overview

FitMi is a health and fitness app for people working on weight loss and fitness goals. It pairs with a Bluetooth smart food scale, so the weight of each portion goes straight into the food log with its calories and nutrition facts, and it adds a planner and trackers for weight, blood pressure, sleep, water and exercise, with separate profiles for several users. We worked on the iOS and Android apps, the server API behind them and an admin panel for health articles between 2016 and 2018, including the Android code migration to Android Studio.

The challenge

The scale and the app each hold a weight and a unit. Taring the scale, switching between units and keeping both in step had to work from either side, on two native platforms, and food logging had to keep working when the phone was offline.

What we built

  1. iOS and Android apps with a dashboard, food logging with favourites, a meal planner, profile and device management, and settings
  2. Two-way Bluetooth link to the smart scale: live weight into the food log, tare from the app, units changed from the app or the scale, and automatic background sync
  3. Barcode scanning and nutrition facts for quick food entry, with food data from Nutritionix
  4. Trackers with graphs for weight, blood pressure, sleep, water and activity, with several user profiles per account
  5. Account features such as sign-up, sign-in and password reset, and a PDF generation endpoint
  6. PHP API endpoints and a database rebuild behind the apps, and an admin panel for managing articles and content
  7. Icon and screen design work, testing across both platforms, and the migration of the Android code base to Android Studio

How a system like this fits together

Reference architecture: smart-scale nutrition and exercise tracker

Simplified reference architecture, not a client schematic.

Reference architecture: smart-scale nutrition and exercise trackerZones from left to right: clients (the iOS and Android apps), devices (the smart food scale), the application (the PHP API), data (MySQL) and third-party services (Nutritionix). Full description in the numbered list below the diagram.ClientsDevicesApplicationDataThird-party servicesBluetooth LERESTlookup, barcoderead / writeiOS appObjective-C: logging,planner, trackers, local dataAndroid appJava: same features,barcode scan, local dataSmart food scaleWeight, tare and unitsover Bluetooth LEAPIPHP Slim: accounts,meals, planner, trackersMySQLUsers, food logs,plans, trackersNutritionixFood search andnutrition factsReference architecture: smart-scale nutrition and exercise trackerZones from left to right: clients (the iOS and Android apps), devices (the smart food scale), the application (the PHP API), data (MySQL) and third-party services (Nutritionix). Full description in the numbered list below the diagram.ClientsApplicationDataDevicesThird-party servicesRESTBluetooth LElookupread / writeiOS appObjective-C: logging,planner, trackers, local dataAndroid appJava: same features,barcode scan, local dataAPIPHP Slim: accounts,meals, planner, trackersMySQLUsers, food logs,plans, trackersSmart food scaleWeight, tare and unitsover Bluetooth LENutritionixFood search andnutrition facts
Native iOS and Android apps talk to a smart food scale over Bluetooth, fetch nutrition facts from Nutritionix and sync with a PHP API backed by MySQL.
  1. The app pairs with the smart food scale over Bluetooth LE. The weight on the scale appears in the app, and pressing tare or changing the unit in the app is sent to the scale, so both always show the same reading.
  2. To log food, the user searches by name or scans a barcode on Android, and the app fetches nutrition facts from Nutritionix.
  3. The app saves the meal with its weight and calories in a local database, so logging works without a connection, and talks to the PHP API over REST for accounts, profiles, meals, the planner and the trackers.
  4. The API stores users, food logs, plans and weight, blood pressure, sleep, water and exercise entries in MySQL.

Technology used

Technology named in the project records, by layer
LayerChoicePurpose
DataMySQL on the server, local database on the phoneuser data and offline logging
APIPHP (Slim) REST endpointsaccounts, meals, planner, trackers and uploads
AndroidJava app built with Android Studio, background sync servicesame features, barcode scanning and automatic scale sync
DevicesBluetooth LE with the scale maker's SDKlive weight, tare and unit changes in both directions
Food dataNutritionixfood search and nutrition facts
iOSObjective-C app with local storagelogging, planner, trackers and scale pairing

What happened next

  • Delivered

    The work described above was delivered to the client.

  • Operational facts
    • Our work on this project spanned 2016–2018.

Could this be your project?

  • You are planning an iOS or Android app, or have one that needs a stronger back end behind it. Mobile app development
  • Your product has to connect to payment, accounting, messaging or other third-party systems.
  • You work in healthcare and want a team that has built for it before. Healthcare work

Request similar work

Questions about this project

How long did this project take?

Our work on it ran from 2016 to 2018.

What technology was used?

Android Studio, MySQL, PHP, Java, Slim, SQLite, Bluetooth LE, Nutritionix, Objective-C.

Similar work

Three Diluo app screens: warming up, ready to brew, and brew-type settings

Also Android and Java, same industry

Diluo: Wi-Fi formula machine apps and cloud admin

  • Healthcare
  • Mobile apps
  • Web apps
  • Integrations

2013–2014

iPhone and Android apps for Diluo, a Wi-Fi baby-formula brewing machine, with child profiles, diary and statistics, plus a Rails cloud admin and API behind them.

SchoolWiki app designs: the home menu, events and newsletters

Also Android and MySQL, also a web app

SchoolWiki: school communication app for parents and staff

  • Education
  • Web apps
  • Mobile apps
  • Integrations

2015–2018

SchoolWiki, a school communication platform: web API, parent site and iOS/Android apps for events, notices, messages, newsletters and absence reports, with a setup wizard.

Insurance-ordering online store for a medical supplier screenshot

Also MySQL and PHP, same industry

Insurance-ordering online store for a medical supplier

  • Retail and eCommerce
  • Healthcare
  • eCommerce
  • Web apps
  • Integrations

2014–2021

A PrestaShop store for breast pumps and accessories with insurance-covered ordering flows, a multi-step checkout, FSA and Tricare support and payment gateways.

Building something similar?

Tell us what you need and your industry. We will tell you what is realistic, what it would take, and show you the closest work we have done.

Are you ready to partner with us?

Our good-natured team is waiting to hear your business requirements.

Book a free project call