Easy Trim

An Android application intedned to facilitate the altering of a boat's trim angle. Easy Trim will keep track of the boat's trim angle at specific speeds for fast and easy adjustments to the trim.

Technologies

Project Description

For the final project of my mobile computing course, we were tasked to create an Android application based on a set criteria. This criteria involved implementing one of the device's sensor, the GPS or camera, a database, as well as some other technical requirements. The application I developed was Easy Trim, which was responsible for monitoring the user's speed then using that information to provide an indication as to how to adjust the boat's trim angle.

three screenshots of the easy trim application showing its features
Screenshots from some primary sections of the Easy Trim app

Process

I split up the development of the application into three stages, as per the highest priority facets of the application. These stages include the basic functionality, standard functionality, and bonus functionalities. I also set personal deadlines to complete each stage.

Basic Functionality

For the first stage of the application development, I intended on putting together the basic functionalities to ensure everything was working carefully. I started off by implementing the GPS by working with the location manager services. This allowed me to calculate the device's speed. Next, I worked with the device's rotation sensor to calculate the device's current angle. To store all these values I then commenced the development of a SQLite database. To ensure application of all these components, I created a barebones XML structure of buttons and input fields that allowed me to test if everything was working correctly.

Standard Functionality

The standard functionality extended the work of what was done in the basic step. I began to link all components together by creating a nicer looking interface. I created a speedometer to showcase the current speed, as well as the main menu, a calibration screen, and a settings screen.

Bonus Functionality

The bonus functionality included portions of the application that were not vital, but would add to the overall success of the application. For this step I primarily worked on the design. I selected a suitable color palette, stylized buttons and text, and added animations. The animations were the most time consuming but it gave the application a look of professionalism. I also added some extra features such as the statistics screen.

Problems and Successes

Developing the application was not completely smooth the entire time, there were many obstacles and challenges I encountered. Many of which involved dealing with minor bugs, which testing and solving were quite time consuming. However, by going through this process gave me the opportunity to really learn many aspects of programming in Java and XML

Skills Learned

Developing this application allowed me to gain many new skills. The most vital skill I learned was working with databases. Much of my application was reliant on storing and accessing speed and angle data, and that led me to gain a thorough knowledge of how to work with databases. Another skill I learned was creating layouts in XML. Working with XML and linking it to Java to programatically develop layouts was an interesting task, and I learned a lot from it.

Live Demo

A short animation showcasing some of the applications features.

Tutorial View
an animation demonstrating the applications tutorial section
Main View
an animation demonstrating the applications main section