WaveUp is by far one of the handiest tools you can add to your Android arsenal! I’ve used this app for over a year now, and I love it! It’s like playing Jedi mind tricks on your phone! You can turn your screen on and off, simply by a wave of your hand over the proximity sensor of your phone, which is really useful to me personally. ‘juanitobananas’ was kind enough to answer a few questions for me in an email interview, as I have been trying to get in touch with open source developers and learn about the story behind the apps.

Screenshot_20180823-125715

A straight forward interface.

The Interview

juanitobananas, You mention in the readme.md for GitLab that WaveUp was your first Android App. I’ve used this app myself for over a year now. Actually, I used to include it in several custom ROMs that I built, such as SlimRoms Nougat for the Samsung Galaxy S4 and Note Edge. It is incredibly simple and super handy! (Pun intended!) While it’s function is really obvious, I was wondering what inspired you to jump into Android development and create it? Did you just need to be able to wake up your screen by waving, or was it a project for a class or school, or a hobby that turned into something bigger?

First of all, thank you, alaskalinuxuser! I’m glad you like WaveUp and
that you find it handy! šŸ˜‰

As a huge open-source fan, I always try to use the open-source
counterparts of the apps I like. That is, if they are available. This
was not the case for ‘Gravity Screen On/Off’. This is where the
maybe-I-could-develop-such-an-app-myself idea started forming in my head.

Basically, the reason for me to create WaveUp was a combination of the
following: already being a programmer, my love for open-source software,
the non-existence of an open-source equivalent of an app I liked and a
will to contribute in some way to the open-source world, which had been
an itch I’d wanted to scratch for a long time.

Regarding the ‘jump into Android development’ part, I’d say WaveUp was
the perfect app for me to get started with something new, due to its
very simple nature. I was pretty certain I’d be able to develop
something like that relatively fast and in my free time.

With each version of Android that comes out, do you need to revamp some of the underlying code for your app, or is it a pretty seamless transition?
Due to the very simple functionality of the app, normally it is very
straightforward. Although this was definitely not the case for Oreo.
Without getting into too many details, Oreo introduced a much more
restrictive background execution policy. WaveUp needs to constantly run
in the background to work properly. To be more accurate, it just needs
to listen for proximity sensor events. I had always wanted to avoid
adding a permanent notification, but Google made it impossible in Oreo.
I had to put in some work to make WaveUp compatible with Oreo, and I’m
quite sure I haven’t been able to solve all the problems that arose.
How long have you been programming, and what got you started?
I have been a programmer for about seven years now. The first three not
being very intense (programming-wise I mean). My story isn’t the one of
a ‘natural hacker’, hacking stuff since I was a kid. I actually just
learned a little bit of Java and (less) C at university. With these
modest skills I landed my first job, where I would not only program. The
more I programmed the more I liked it. Today it’s my job and one of my
hobbies.
There are a lot of Android apps out there, and not all of them are open source, but I’m glad yours is. Why did you decide to release WaveUp under an open source license?
I didn’t even think about it. It was out of question: WaveUp had to be
released under an open-source license. Contributing to the open-source
world was just one of the main reasons for me to start playing around
with WaveUp. If I get a little deeper into this, I also believe in a
naĆÆve and (scarcely) philosophical way that open-source makes the world
a slightly better place. I also enjoy believing that open-source is one
of the best expressions of freedom we have nowadays in our world.
Is there a reason that you chose the GNU General Public License v3.0 in particular?

The Germans use a word I love: ‘jein’. Jein is a combination of ‘ja’
(yes) and ‘nein’ (no). The answer to your question would be, jein. When
I decided to license it, I took a look at the most common open-source
licenses. I wasn’t sure if I wanted to license it under one of the more
restrictive licenses like GPL or one of the less restrictive (freer)
ones like MIT or Apache.

I really like the Free Software Foundation and see Richard Stallman as a
visionary, so I decided to go for GPL without thinking much further. I
like the idea of the derivative works being open-source too (although I
see it as a limitation of freedom). I might change it, but for now, I am
happy with GPL.

Your comments on your app read me files, as well as your profile picture suggest that you like having fun with your projects. Sometimes programming can feel like drudgery. Is there anything you do to try to make it more fun, or is it an attitude or perspective that you just naturally bring to your projects?

Good question! I know what you mean. The amount of frustration you have
to be able to bear as a programmer is pretty high.

I guess I *do* have a natural positive attitude towards things. That
helps. A lot. Throughout the years I have gained a lot of patience. This
is essential. But it has just become better after years. It is not
something I have consciously done to make my job (or hobby) better.

There definitely is a difference between me as a hobby programmer and as
a professional programmer. At home, I fight with stuff until it isn’t
fun anymore, and then look for something fun to do. My motivation at
home is to have fun with it and learn. At work I do fight a little
further. But not too much. If I hardly had fun at my job, I could really
not do it.

How much user interaction do you get from WaveUp, in the form of communication, comments, or issues?

I get quite a lot of reviews in Google Play Store, but the way the
reviews in the Play Store are designed don’t really allow for a lot of
interaction.

I receive a couple of emails a week, I’d say. I haven’t really counted.

WaveUp’s gitlab repo has had a total of 107 issues in its two and a half
years.

I’d also count all the people who translate it as an interaction, and
that’s beautiful. WaveUp’s first translation (apart from the languages I
translated myself) was Japanese. That was a Merge Request in GitLab. I
was really happy to see that. Most of the translations are done by
people using transifex, which kindly hosts open-source projects for free.

About how much time would you say you spent working on WaveUp?
I have no idea. A lot! A lot more than I’d ever thought.
Do you feel that your work on WaveUp is complete? Or do Android updates and user interaction keep you on your toes?

Mostly I see it as complete. At least for me. Although I *am* currently
I am working on a new feature to avoid locking the screen if a certain
app is running in the foreground.

I get a new feature request once in a while. Some of these I implement
but most I try to politely deny. Not because I don’t think they’re good,
but because I prefer to keep the app really simple, which I think is one
of the good things about WaveUp.

I still work on WaveUp once in a while, but not as much as I did the
first (and maybe second) year. Well, or some months ago with the Oreo
compatibility issue I spoke about earlier.

How about open source projects other than this one? Are you currently working on anything that you would like to share?

There isn’t much here, maybe ‘Scrambled Exif’
(https://gitlab.com/juanitobananas/scrambled-exif) which is a simple
Android app to remove metadata from pictures before sharing them.

Right now I am also working on ‘Drowser’
(https://gitlab.com/juanitobananas/drowser). The motivation behind this
one was to learn some Kotlin and write a replacement app for Greenify.
For those who don’t know, Greenify is a great app written by oasisfeng
used to basically stop apps from running in the background, but
unfortunately proprietary. Although I’d trust the developer, I prefer
the code to be open. So in order to learn some Kotlin and kill some
rogue apps in the background I started creating Drowser.

Thanks for taking the time to answer a few questions. Before we go, do you have any advice for someone who wants to get started in programming?

You’re very welcome! Thank you too!

I’d say: Go ahead! Make mistakes. Be patient. Have fun!
Also, if you ask for help politely, you’ll probably get it.

Great answers! I really appreciateĀ juanitobananas taking the time to answer these questions for me. It’s really interesting to learn about other developers reasoning on code, licenses, and projects!

 

Learn more about WaveUp

Want to know how WaveUp works? Well, you can read all about it at the WaveUp GitLab! Don’t feel like compiling yourself? You can get WaveUp on the Google Play Store and F-Droid as well! You can even check out his other projects, such as Scrambled Exif, too!

Linux – keep it simple.

Leave a Reply

Your email address will not be published. Required fields are marked *