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
- Flutter SDK(latest version recommended) ( https://docs.flutter.dev/get-started/install )
- Android Studio and Xcode for platform-specific SDKs ( https://developer.android.com/studio/install )
- Access to the required hardware (MetaWear sensors, HBand, Sensoria Smart Socks)
Installation (flutter)
Install Flutter SDK
- Download Flutter:
- Visit the Flutter installation page.
- Download the latest stable Flutter SDK for macOS.
- Extract Flutter:
- Extract the downloaded zip file and move the
flutterfolder to your desired installation location (e.g.,~/flutter).
- Extract the downloaded zip file and move the
- Update Your Path:
- Add Flutter to your path permanently:
- Open or create the
$HOME/.zshrcfile 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
- Open or create the
- Add Flutter to your path permanently:
- Run Flutter Doctor:
- Check for any dependencies you might need to install to complete the setup:
flutter doctor
- Check for any dependencies you might need to install to complete the setup:
-
Clone the repository:
-
Navigate to the project directory
-
Install dependencies:
flutter pub get -
Connect physical device Android/iOS
-
install flutter and dart plugins in the android studio setting
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.
- Open Terminal and run the following command to install Xcode Command Line Tools:
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.xcworkspacefile.
- Open the iOS subfolder in your project:
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.
- If you encounter errors related to missing packages or dependencies, return to the terminal in your project directory and run:
- 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 cleanin 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