Development of SensorLab Application

Didarul Alam Rahat

Didarul Alam Rahat

šŸ“± SensorLab - All-in-One Sensor Toolkit

A comprehensive Flutter application that provides access to all device sensors with an intuitive, multi-language interface

šŸš€ Features

🌐 Multi-Language Support

4 Languages: English, Spanish, Japanese, Khmer
500+ Localized Strings: Complete internationalization
Dynamic Language Switching: Change language on-the-fly

šŸ“Š Comprehensive Sensor Suite

Motion Sensors: Accelerometer, Gyroscope, Magnetometer
Environmental: Light, Humidity, Noise, Proximity
Location & Navigation: GPS, Compass
Health & Fitness: Heart Rate, Activity Tracking, Calorie Counter
Utility: QR/Barcode Scanner, Flashlight

šŸŽØ Modern UI/UX

Material Design 3: Latest design system
Dark/Light Themes: System-adaptive theming
Responsive Layout: Optimized for all screen sizes
Accessibility: Full screen reader support

šŸ“‹ Requirements

System Requirements

Flutter SDK: >=3.0.0
Dart SDK: >=3.0.0
Android Studio: Latest version (for Android development)
Xcode: Latest version (for iOS development, macOS only)

Platform Support

Platform Minimum Version Recommended Android API Level 21 (5.0) API Level 33+ iOS iOS 11.0 iOS 15.0+ Web Modern browsers Chrome 90+

Hardware Requirements

RAM: 8GB minimum, 16GB recommended
Storage: 10GB free space
Processor: Intel i5 / AMD Ryzen 5 or better

āš™ļø Setup & Installation

1. Prerequisites Setup

Install Flutter SDK
# Download Flutter SDK from https://flutter.dev/docs/get-started/install
# Add Flutter to your PATH
export PATH="$PATH:`pwd`/flutter/bin"

# Verify installation
flutter doctor
Install Android Studio
# Download from https://developer.android.com/studio
# Install Android SDK and Android SDK Command-line Tools
# Setup Android emulator or connect physical device
Configure Development Environment
# Accept Android licenses
flutter doctor --android-licenses

# Install required dependencies
flutter pub global activate flutterfire_cli

2. Project Setup

Clone Repository
git clone https://github.com/Darahat/All-in-One-Sensor-Toolkit.git
cd All-in-One-Sensor-Toolkit
Install Dependencies
# Install Flutter dependencies
flutter pub get

# Generate platform-specific files
flutter packages pub run build_runner build
Configure Gradle (Android)
Ensure your android/build.gradle has:
buildscript {
ext.kotlin_version = '1.8.22'
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version'
classpath 'com.android.tools.build:gradle:8.1.0'
}
}
Generate Localization Files
# Generate localization classes
flutter gen-l10n

3. Running the Application

Development Mode
# Run on connected device/emulator
flutter run

# Run with specific flavor
flutter run --flavor development

# Run with hot reload enabled (default)
flutter run --hot
Build for Production
# Build Android APK
flutter build apk --release

# Build Android App Bundle (recommended)
flutter build appbundle --release

# Build iOS (requires macOS)
flutter build ios --release

# Build for Web
flutter build web --release

4. Environment Configuration

šŸ” Android Signing Setup
For building release APKs, you need to configure Android app signing:
# Copy the template file
cp android/key.properties.example android/key.properties

# Generate a keystore (replace with your details)
keytool -genkey -v -keystore android/release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

# Edit android/key.properties with your actual values
āš ļø Security Note: Never commit key.properties or keystore files to version control!
For detailed setup instructions, see: Android Setup Guide
šŸ”‘ Environment Variables Setup
For optional features (AdMob, API keys), configure environment variables:
# Copy the template file
cp .env.example .env

# Edit .env with your actual values (optional)
āš ļø Security Note: Never commit .env files to version control!
Configuration Overview
The app uses a two-file configuration system:
android/key.properties - Android signing and AdMob App ID
.env - AdMob ad unit IDs and API keys (optional)
Both files are excluded from version control for security.

šŸ—ļø Architecture

Clean Architecture Pattern

šŸ“ lib/
ā”œā”€ā”€ šŸ“ src/
│ ā”œā”€ā”€ šŸ“ core/ # Core functionality
│ │ ā”œā”€ā”€ šŸ“ constants/ # App constants
│ │ ā”œā”€ā”€ šŸ“ errors/ # Error handling
│ │ ā”œā”€ā”€ šŸ“ services/ # Core services
│ │ └── šŸ“ utils/ # Utility functions
│ │
│ └── šŸ“ features/ # Feature modules
│ ā”œā”€ā”€ šŸ“ health/ # Health & fitness tracking
│ │ ā”œā”€ā”€ šŸ“ domain/ # Business logic
│ │ │ ā”œā”€ā”€ šŸ“ entities/ # Core entities
│ │ │ ā”œā”€ā”€ šŸ“ repositories/ # Repository interfaces
│ │ │ └── šŸ“ usecases/ # Business use cases
│ │ ā”œā”€ā”€ šŸ“ infrastructure/ # External data sources
│ │ ā”œā”€ā”€ šŸ“ application/ # Application services
│ │ └── šŸ“ presentation/ # UI components
│ │ ā”œā”€ā”€ šŸ“ screens/ # Screen widgets
│ │ ā”œā”€ā”€ šŸ“ widgets/ # Reusable widgets
│ │ └── šŸ“ providers/ # State management
│ │
│ ā”œā”€ā”€ šŸ“ accelerometer/ # Motion sensor
│ ā”œā”€ā”€ šŸ“ gyroscope/ # Rotation sensor
│ ā”œā”€ā”€ šŸ“ compass/ # Navigation
│ ā”œā”€ā”€ šŸ“ geolocator/ # GPS tracking
│ ā”œā”€ā”€ šŸ“ light_meter/ # Ambient light
│ ā”œā”€ā”€ šŸ“ noise_meter/ # Sound level
│ ā”œā”€ā”€ šŸ“ humidity/ # Humidity sensor
│ ā”œā”€ā”€ šŸ“ proximity/ # Proximity detection
│ ā”œā”€ā”€ šŸ“ heart_beat/ # Heart rate monitor
│ ā”œā”€ā”€ šŸ“ qr_scanner/ # QR/Barcode scanner
│ ā”œā”€ā”€ šŸ“ flashlight/ # Device flashlight
│ └── šŸ“ app_settings/ # Application settings
│
ā”œā”€ā”€ šŸ“ l10n/ # Localization files
│ ā”œā”€ā”€ šŸ“„ app_en.arb # English translations
│ ā”œā”€ā”€ šŸ“„ app_es.arb # Spanish translations
│ ā”œā”€ā”€ šŸ“„ app_ja.arb # Japanese translations
│ └── šŸ“„ app_km.arb # Khmer translations
│
└── šŸ“„ main.dart # Application entry point

šŸ“š Modules Documentation

Core Modules

Module Description Documentation šŸ„ Health Activity tracking, calorie counter, health metrics šŸ“– Health Module šŸ“Š Accelerometer 3-axis acceleration measurement šŸ“– Accelerometer Module šŸŒ€ Gyroscope Device rotation and angular velocity šŸ“– Gyroscope Module 🧭 Compass Magnetic field and navigation šŸ“– Compass Module šŸ“ Geolocator GPS positioning and location services šŸ“– Geolocator Module šŸ’” Light Meter Ambient light measurement šŸ“– Light Meter Module šŸ”Š Noise Meter Sound level monitoring šŸ“– Noise Meter Docs šŸ’§ Humidity Environmental humidity sensing šŸ“– Humidity Module šŸ“ Proximity Distance detection sensor šŸ“– Proximity Module ā¤ļø Heart Beat Heart rate monitoring via camera šŸ“– Heart Beat Module šŸ“± QR Scanner QR code and barcode scanning šŸ“– QR Scanner Module šŸ”¦ Flashlight Device flashlight control šŸ“– Flashlight Module āš™ļø App Settings Application configuration šŸ“– Settings Module

šŸ”§ Integration & Usage

For Developers

Want to use SensorLab features in your own app? We've got you covered!
Guide Description Best For šŸš€ Quick Start Template Ready-to-use health app template Beginners, rapid prototyping šŸ“– Integration Guide Complete feature integration guide Custom implementations šŸ“š Module Documentation Individual module guides Specific feature integration

Popular Use Cases

Health & Fitness Apps - Activity tracking, user profiles, settings
IoT Sensor Dashboards - Real-time sensor data visualization
Educational Projects - Learning Flutter, sensors, localization
Prototype Development - Quick sensor integration testing

šŸ¤ Contributing

Development Setup

Fork the repository
Create a feature branch: git checkout -b feature/amazing-feature
Commit changes: git commit -m 'Add amazing feature'
Push to branch: git push origin feature/amazing-feature
Open a Pull Request

Coding Standards

Write tests for new features
Update documentation

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.
Made with ā¤ļø using Flutter Made with ā¤ļø by darahat ⭐ Star this repository if you find it helpful! ⭐
flutter dart mobile sensors accelerometer gyroscope compass gps health tracker qr scanner internationalization cross platform android ios real time data clean architecture material design riverpod sensor toolkit measurement app
Like this project

Posted Dec 3, 2025

Developed SensorLab, a multi-language app for sensor access using Flutter.

Likes

0

Views

0

Timeline

Apr 4, 2025 - Oct 15, 2025