I send emails pretty frequently and oftentimes I open up the Mail application to send an email and get sucked in, reading several emails when I quite frankly do not have the time. With the rise of newsletters, it is easier to get lost in the mail wormhole. I also found that I wanted to quickly control my computer's volume and iTunes music without fumbling around for the keys on the keyboard or going into iTunes. Out of this, SystemHelper was born.

Currently only available for macOS

What it does

SystemHelper is able to control the user's computer's volume and has the ability to shuffle or unshuffle, play and pause, and skip forward your iTunes music. The user can also draft and send an email to someone in their contacts, conveniently extending the window while the user writes the email. Once the email is sent, the box goes back to its normal size. The window also stays at the top of the user's screen so even as they click around different applications, it is always conveniently located. They can also move the window whenever and wherever so it will not cause difficulties. SystemHelper also lets the user know what song is currently playing, so they do not need to open iTunes or Shazam in order to see what it is in case it sounds unfamiliar. The now playing features also extends to songs that the user does not currently own, like previewed songs in the store. Whatever the users plays will be displayed!

Furthermore, if you happen to be in the iTunes application and pause or play your music, SystemHelper's window will automatically change itself to reflect that.

How I built it

I primarily built this application in Java. The graphical user interface is built with a JFrame and utilizes several layouts. Some of the functions, like sending the email and controlling the system, are done with AppleScript which is then executed in the Java program.

Challenges I ran into

One challenge was trying to get the play and pause button to be constantly updating and checking against the iTunes app. A particularly time-consuming difficulty was finding an adequate layout for my window in order to make sure that when the window extended for drafting an email, the other buttons did not grow in size.

Accomplishments that I'm proud of

I am particularly proud of running AppleScripts in this program, but also being able to obtain in my Java program a value that the AppleScript returned. I am also quite proud of the currently playing feature and play/pause buttons since those are constantly reflective and therefore able to change the text and button, respectively.

What I learned

I learned some new layouts for graphical user interfaces in Java and how to change the window size. Furthermore, I learned how to obtain the return value of an AppleScript and how to send an email using AppleScript.

What's next for SystemHelper

As of writing, I am not planning to add any extra features to SystemHelper as I think the number of features should be kept low so that way the window does not become burdensome. The beauty of the app is its relative simplicity. I am, however, looking to expand the number of platforms that SystemHelper works with. While iTunes is far more popular than Spotify, that application is statistically significant, so it would be good if users could play and pause their Spotify music instead. Furthermore, I am looking at how to implement this application for Windows and what features will be able to be carried over.

Built With

Share this project: