The Flutter Noise App is a versatile mobile application built with the Flutter framework, offering seamless noise-related data recording and management for various studies. With a clean and intuitive interface, users can navigate through different tabs to access essential features, including Home, Data Storage, and Settings.
Final Demo: https://youtu.be/F8IYeJQc9fc
-
Authentication: Secure user authentication is facilitated through Amplify Auth Cognito, enabling users to sign up and sign in effortlessly.
-
Data Recording: Users can efficiently record dBA surround noise during real time. The app captures the stream of audio from the mic then using FFT to convert it into dBA values. After finish recording, user can upload or discard the recording.
-
Data Storage: The Data tab allows users to conveniently view and manage their recorded noise-related data, ensuring easy access and organization. User can upload the data to the AWS S3 buckets or delete it.
-
Settings: Customize your app experience with the Settings tab, providing users with options to modify their StudyID for the research.
The app employs well-organized global variables for efficient data management:
cache
: A map storing the current study ID and information about files already uploaded.studyId
: A unique identifier for the current study, facilitating seamless data uploads.userId
: The email address of the current user, ensuring personalized interactions.cacheFileName
andcacheLastLoginFileName
: Files for storing cache and user login timestamp, respectively.firstName
andlastName
: Strings representing the user's first and last names.data
: A list ofDataItem
objects, providing a structured approach to managing all data entries.
The app seamlessly integrates with AWS Amplify, leveraging powerful AWS services. The _configureAmplify
function sets up the connection to AWS, configuring necessary plugins like Amplify Auth Cognito and Amplify Storage S3.
- Clone the Repository: Begin by cloning the repository to your local machine.
- Install Flutter and Dart: Ensure you have Flutter and Dart installed on your development environment.
- Install Dependencies: Run
flutter pub get
to install project dependencies. - Configure Amplify: Update the
amplifyconfiguration.dart
file with your AWS Amplify settings. - Run the App: Execute
flutter run
to launch the app.
- Mac with Xcode installed from Apple Store
- iPhone and cable to connect to Mac
- Developer mode turned on in iPhone
- Open
Runner.xcworkspace
under theios
folder. - Configure signing and capabilities in Xcode.
- Assign "Runner" to your iPhone.
- Click the "Play Button" to build the app.
- Grant permission on your iPhone.
- Re-run the app by clicking the "Play Button."
Note: The app only runs when the runner is attached to the phone.
This project is licensed under the Noise App Group License. See the LICENSE file for detailed information.