Skip to content

WorldFam/Java-Break

Repository files navigation

Java-Break

Taking breaks is an important part of daily life. First of all, having regular breaks can reduce or prevent even from being stressed. Secondly, it is important to have breaks during work time, because it can improve the overall process and help to concentrate easier. Furthermore, taking a break to stretch after a long time of sitting by your computer, can help you stay healthy and will also give your eyes a needed break.

Having this in mind I decided to create an application that would help to improve daily life and make it easier for people to track their break times. For the current solutions, there is no efficient way to keep track of when to take a break, because there is no integrated tool in android. For the alternative, it is possible to set a bunch of alarm clocks, but it is impractical. Already existing applications with a similar concept are missing intuitive design, include millions of ads or are paid, and are outdated.

Java Break; application includes all useful features with a user-friendly interface. A user can choose between two different types of breaks: productive (sets break remainder for selected time interval) and daily (sets break reminder intervals for the selected day of the week and time). A User will able to choose from the different options of getting a notification: sound, vibration, led. At the same time, the user will get a message with useful information to stay healthy.

MoSCoW requirements for the "Java Break;" application:

Must have

  • As a user, I must be able to get a notification to take a break.
  • As a user, I must be able to set how often I wanna have a break reminder in minutes and/or hours.
  • As a user, I must be able to choose from different types of break reminders (productive, daily).

Should have

  • As a user, I should be able to create a new break reminder by selecting the day of the week and time when I want my break reminder interval to be.
  • As a user, I should be able to choose between different options to notify me (sound, vibration, led ).
  • As a user, I should be able to see the list of daily break reminders.
  • As a user, I should be able to remove or update the daily break reminder.

Could have

  • As a user, I could receive a message with different stretch exercises or other useful information when receiving a break reminder.
  • As a user, I could set snooze and break duration as an additional option in the break reminder.
  • As a user, I could customize notifications and select preferred sounds.

Will not have

  • As a user, I will be able to receive notifications on my smartwatch.

Final thoughts

Link to the video: https://youtu.be/U1V_FFunQUc

Approximate amount of hours spend on analysis, research, design, and coding: 350h

In general, the majority of requirements were completed, and fully functional, although not properly tested. App itself is built for Android API level 26+ and is a single activity, which in my case was unnecessary because it brought a lot of additional work and even made the project more complicated.

As for other technical aspects used SharedPreference to store the time when the application stops and retrieve it, same goes for the configurations page and settings, where I saved the state of switches, sliders and etc. SQLite with a Room framework that was utilized to keep up to date the recycler-view with scheduled reminders. Also, I used viewModel to communicate between the fragments and activity.

Probably the most time-consuming and complicated part was the notification. As I wanted to create an application for Android +26, it had a lot of restrictions and user-permission allowed features. For this reason, new notification channels were created each time user would change settings, and old ones would be deleted.

Screenshots

About

Android application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages