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.cacheFileNameandcacheLastLoginFileName: Files for storing cache and user login timestamp, respectively.firstNameandlastName: Strings representing the user's first and last names.data: A list ofDataItemobjects, 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 getto install project dependencies. - Configure Amplify: Update the
amplifyconfiguration.dartfile with your AWS Amplify settings. - Run the App: Execute
flutter runto 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.xcworkspaceunder theiosfolder. - 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.