Go to file
Cody Cook bcdb0e2287 Upload video proof of the app's workings 2024-04-23 08:52:14 -07:00
Project Unzip folder for post-school 2024-04-21 17:33:00 -07:00
Project 3 - Cody Cook (Weight-Tracking App).docx Add files via upload 2024-04-21 17:02:13 -07:00
README.md Update README.md 2024-04-21 17:10:35 -07:00
Screen_recording_20240423_075325.webm Upload video proof of the app's workings 2024-04-23 08:52:14 -07:00
app.apk Add files via upload 2024-04-21 17:11:01 -07:00

README.md

CS-360 Weight-Tracking App

Summary

The app I developed is designed to help users track their weight and set goals towards achieving their desired weight. The primary user need addressed by this app is the management and monitoring of personal health data, specifically weight. Users can log their weight regularly, view historical data, set target weights, and receive motivational messages or alerts when they achieve their goals.

User-Centered UI Design

The key screens needed to support the user needs included:

  • Login/Register Screen: Allows users to securely access their data.
  • Main Dashboard: Displays current weight, weight history, and progress towards goals.
  • Weight Entry Screen: Enables users to enter new weight data.
  • Goal Setting Screen: Allows users to set and adjust their weight goals.

Each of these screens was designed with simplicity and ease of use in mind, featuring large buttons, readable text, and intuitive navigation paths. The success of these designs lies in their ability to provide a straightforward, seamless user experience that minimizes confusion and maximizes user engagement by focusing on essential functionalities.

Coding Approach

When coding the app, I adopted several strategies:

  • Modular Development: Breaking down the project into manageable pieces (e.g., database management, user interface components, and background services) which made the process more manageable and testing simpler.
  • Iterative Testing: Regularly testing each module before integrating them into the main application. This helped catch issues early and ensure module compatibility.

These techniques can be universally applied to future projects to improve efficiency and reliability in app development.

Testing Process

I conducted both unit testing and integration testing:

  • Unit Testing: Each method and function was tested individually to ensure they performed as expected.
  • Integration Testing: After unit testing, the components were tested together to ensure the app worked as a whole. Testing is crucial because it ensures the app performs correctly, provides a good user experience, and identifies any bugs or issues before release. It revealed areas where performance could be optimized and where the user interaction might not meet expectations.

Innovation and Challenges

One significant challenge was ensuring the app worked smoothly across different Android versions and devices. To overcome this, I implemented responsive design principles and tested the app on multiple emulators and Pixel devices to ensure compatibility and performance. This required innovative problem-solving in terms of layout and functionality adjustments to accommodate various screen sizes and OS behaviors.

Demonstrating Knowledge and Skills

A particularly successful component of the app was the integration of the SMS feature, which alerts users when they reach a goal. This feature not only demonstrated my ability to work with Androids SMS APIs and handle permissions but also highlighted my skills in enhancing user engagement through interactive features. This component showcased my ability to integrate complex system functionalities in a user-friendly manner.