healthyWear

Introduction

HealthyWear is an IoT flutter application developed for the Android/iOS devices to streaming and capturing various health data from MetaWear (MetaMotions S) sensors, HBand, and Sensoria Smart Socks wearables. It provides dual-device functionality and is particularly focused on offering real-time feedback on physical activities, aiding in enhancing doctors diagnosis and patient treatment process. The app collects, stores, and transmits real-time vital signs and physical activity data to a server. This enables doctors to remotely keep track of their patients' health, making it an essential tool in the management of their patients.

Features

  • MetaWear Integration: Connects to MetaWear sensors worn on each hand to monitor and record movements .
  • HBand Integration: Utilizes the HBand to track heart rate ,spo2 and blood pressure and providing vital health metrics.
  • Sensoria Smart Socks Integration: To incorporate data collection from smart socks for comprehensive foot movement analysis.
  • Data Management: Buffers and writting the data locally before sending it to the server, ensuring efficient transmission and minimal loss.
  • Doctor Dashboard: A server-side interface (not included in this repository) where doctors can view and analyze patient data.

Getting Started

Prerequisites

Installation (flutter)

Install Flutter SDK

  • Download Flutter:
  • Extract Flutter:
    • Extract the downloaded zip file and move the flutter folder to your desired installation location (e.g., ~/flutter).
  • Update Your Path:
    • Add Flutter to your path permanently:
      • Open or create the $HOME/.zshrc file with a text editor like Nano:
        nano $HOME/.zshrc
        
      • Add the following line and replace [PATH_TO_FLUTTER_GIT_DIRECTORY] with the actual path to your Flutter SDK:
        export PATH="$PATH:[PATH_TO_FLUTTER_GIT_DIRECTORY]/flutter/bin"
        
      • Save and exit the editor. Apply the changes by running:
        source $HOME/.zshrc
        
  • Run Flutter Doctor:
    • Check for any dependencies you might need to install to complete the setup:
      flutter doctor
      
  1. Clone the repository:

    git clone https://github.com/jordieres/IoT-Flutter-MS.git

  2. Navigate to the project directory

  3. Install dependencies:

    flutter pub get
    
  4. Connect physical device Android/iOS

  5. install flutter and dart plugins in the android studio setting

    Screenshot 2024-03-12 at 15 56 09

6.Run the app

flutter run

7.select the Device

iOS Installation Guide for Flutter App

Prerequisites

Ensure you have a macOS computer to run Xcode and install all necessary software.

1. Install Xcode

  • Download and Install Xcode:
    • Go to the Mac App Store and search for "Xcode".
    • Click "Install" to download and install Xcode on your Mac.
    • After installation, launch Xcode and agree to its license agreement. It might prompt you to install additional components, accept and continue.

2. Configure Xcode

  • Xcode Command Line Tools:
    • Open Terminal and run the following command to install Xcode Command Line Tools:
      xcode-select --install
      
    • Ensure Xcode command line tools are configured to the correct Xcode installation by running:
      sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
      
    • Agree to the terms of service when prompted.

3. Open the iOS folder with Xcode

  • Navigate to the iOS Folder:
    • Open the iOS subfolder in your project:
      open ios/Runner.xcworkspace
      
    • This command opens the project in Xcode. If the project does not open, make sure you are in the correct directory and that the project includes an ios/Runner.xcworkspace file.

4. Run the App

  • **Connect an iOS Device **:
    • Connect your iPhone via USB and trust the computer.
  • Configure Signing:
    • In Xcode, navigate to the project settings by selecting the Runner from the Project Navigator.
    • Click on the Signing & Capabilities tab.
    • Choose your Team under the Team dropdown. You may need to add your Apple ID in Xcode > Preferences > Accounts if you haven't already.
    • Ensure that the Bundle Identifier is unique and matches your provisioning profile if you are preparing for distribution.
    • Xcode may prompt you to fix issues related to provisioning profiles; allow it to do so if required.
  • Run the App:
    • Click the Play button in Xcode or use the keyboard shortcut Cmd + R to build and run the app.
    • The app should compile and then run on your selected device or simulator.

5. Troubleshooting Common Issues

  • Dependency Errors:
    • If you encounter errors related to missing packages or dependencies, return to the terminal in your project directory and run:
      flutter pub get
      
    • Then try building the project again.
  • Build Errors:
    • For errors during the build process, ensure all Xcode updates are installed. Check for any error messages in Xcode's console that might indicate what needs to be addressed.
    • Consider running flutter clean in your project directory to clean the build and then try running the app again:
      flutter clean
      flutter run
      

Architecture

  • Main.dart: Entry point of the Flutter application, common across all devices.
  • MetawearApi.dart: Handles communication with MetaWear sensors via platform channels.
  • SmartBandApi.dart: Manages data exchange with the Veepoo HBand using its Flutter SDK.
  • SensoriaApi.dart: Handles communication with Sensoria sensors via platform channels.
  • MainActivity/MainActivity.swift: Platform-specific entry points for Android and iOS, respectively.

Version 1.0.0

  • First release
  • Android native is functional

Version 1.0.1

  • UI improvement
  • Data handling improvement

Version 1.0.2

  • UI improvement
  • Minor bugs Fixed
  • Upload data improvement

Version 1.0.3

  • UI improvement
  • Minor bugs Fixed
  • Status Checker improvement
  • Notification handler improvement

Version 1.0.4

  • Uploading data improvement

version 1.0.5

  • Background uploading process
  • Battery status checking
  • UI improvement
  • Icon changed

version 1.0.6

  • Metawear disconnection improvement(Android)
  • iOS first release

version 1.0.7

  • UI improvement
  • Minor bugs fixed

version 1.0.8

  • Location Disclosure added (Android only)

version 2.0.0

-Test Recording Feature is added

version 2.0.1

-Some improvement in UI -Version is in splash screen

Libraries

Service/AppLocal
Service/BackgroundHandling
enums/device_connection_status
main
Api/MetaWearApi
Service/NotificationHandler
Api/SensoriaApi
Api/ServiceApi
Service/share_files
Api/SmartBandApi
splash_screen
Service/StatusChecker
Service/Uploader