Interview with WaveUp creator juanitobananas!

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.

Advertisements

Interview with Tomas, the creator of Your Local Weather app!

As you already know, I like open source software. I also really like knowing what the weather is currently, and what it is supposed to be over the next couple of days. These two desires coincided lately in a great weather app for Android called Your Local Weather!

I particularly like the graph features in this app!

With tons of features and even some very handy widgets, I’m sure that you will enjoy Your Local Weather. Even better than finding a good app to use was finding a developer who was kind enough to participate in an interview by email! I was curious to see what drives someone to commit the time and effort into these open source projects and to hear their perspective and plans for future builds or projects.

If you were wondering as well, then I have good news for you, because below is the interview!

The Interview

Tomas, what a great Android weather app! Your Local Weather does just what
it claims, with simplicity and ease, as well as a few nifty features. With so
many weather apps already available, what helped you decide to make your own?

Yes, you are right, Weston. There are lot of weather applications
available. I used some of them, but then I found that a location is not
updated properly in widgets. For example – I was in my office for several
hours and weather widget always shows my home location. I’d tried several
applications, but the result was always the same. I didn’t want to develop my
own weather application. But, no application update location properly. I
started investigation to find where the problem is. I found an open source app
which is suitable for my investigation – the app is called Good Weater –
https://github.com/qqq3/good-weather. I started to learn how to write
application for Android. I just wanted to find the problem – not develop my
own application. It took several weeks to find where the problem is. I’ve made
a pull request and my changes had been accepted. Then, I found some bug in my
implementation, but my next changes had not been accepted for several weeks.
So I decided to clone Good Weather application and started to release it with
the new name – Your local weather.

I personally love the graph feature in the app. Did you have to include
extra libraries for those, or did you work those out by hand?

The graphs are originally created in the Good weather app. So I inherited
the way how to create the graphs. The graphs uses MPAndroidChart library
(https://github.com/PhilJay/MPAndroidChart). I just updated the version of
this library in my app and added one more graph (for pressure – the change is
done on user’s request). Now, I’ve just prepared new kind of combined graph
for widgets – so we can see this graph in widgets soon.

How long have you been programming, and what is your favorite programming
language?

My professional career as a software developer started 13 years ago. But I
made my first piece of software when I was teenager – it had been done on
computer Didagtic gama (a clone of ZX Spectrum computer). So I started from
Basic programming language, then I continued with assembler (machine code) and
the latest was Java. My favorite programming language is Java and enterprise
Java. I learned JavaScript also, but my experience with this language is not
so strong as in java.

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 Your Local
Weather under an open source license?

I believe that the answer to this question is obvious from the history of
this project – the licence has been inherited with the code. I can benefit
from the fact that lot of people helped me with a translation. This is really
good. But still, I often think of the next development. I want to leave the
app free and open source. But I want to make lot of improvments and want to
offer paid access to openweathermap.com service also. And this is not possible
without the time and money. I’m still not decided how to solve this problem.

About how much time would you say you spent working on this app? Both
initial development, and now upkeep?

It seems to me that I spent every evening of the last several months coding
this app. But that’s really not the true. I’ve started about one and half
years ago. I learned a lot about android development, location services,
making a graphs, updating widgets etc. It was a lot of ways to a blind street.
Lot of testing the solution without any success. But I’m still looking forward
for the next development 🙂

How did you go about testing? Did you do all testing in house, or do you
have a team of trusted testers?

Every change is tested on my phone – when I make some change I usually
spend some time walking with the new version on my phone. When testing is
finished I release the app to the public audience. I often check the developer
board for ANRs or Exceptions to be able immediatelly make the fix. So my
approach is a short release cycle for bugs. It’s really interresting that
release which works fine on my phone causes problems on other versions of
Android or other devices. I’ve also thought about automated tests, but I
haven’t done any yet.

Do you feel that your work on Your Local Weather is complete, or do Android
updates and user interaction keep pulling you back into working on this
project?

I have a lot of feedbacks from YLW users and I have a several ideas what I
can do more – the improvements and new features. It’s not so easy to decide
what to do earlier, becuse I want to implement everything. So yes, I’m going
to enhance YLW application with a new features. I want to keep the app free
and open source as much as possible, but some features needs a lot of access
to the openweathermap.com service. So this leads me back to thinking how to
get money for the access and for the development also.

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

When I started to investigate the problem with location I participated on
two more projects – UnifiedNLP (https://github.com/microg/
android_packages_apps_UnifiedNlp) and RadiocellsNLP provider (https://
github.com/openbmap/radiocells-nlp-android). Some of my changes has been
accepted, but I’m going to put all my forces on YLW application. I would like
to participate on OsmAND project also (https://github.com/osmandapp/Osmand) –
improvements regarding find of location, navigation (fixes and improvements).
But I haven’t enough time to do it.

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?

Yes, if you have some idea – write your idea to an application and release
it. You can see lot of the simliar applications, but there could be one small
point which makes you app unique.

Great advice!

Learn more about Your Local Weather

Be sure to check out the source code for YLW on GitHub! Who knows, perhaps it will inspire you to make your own app, just like Tomas did! You can also download the app from the Google Play Store, or from the F-Droid repositories. Tomas is also known as ThOsp on the Google Play Store, or as thuryn on GitHub.

Linux – keep it simple.

Interview With Frozen Bubble App Creator Pawel Fedorynski!

Frozen Bubble has been one of those fun staples of the Linux community for quite some time now, so when I realized that it was also available on Android, I had to pick it up! I can’t begin to tell you how many hours I’ve spent playing this game as a youth, but guess what? It’s just as playable now as it ever was, and now you can get in on the action on your Android device!

The game is fairly simple, according to Wikipedia:

Frozen Bubble’s protagonist is a penguin a la Tux, the mascot of Linux and popular feature in many free software/open source games. In this game Tux has to shoot coloured frozen bubbles to form groups of the same colour. Such groups disappear and the object is to clear the whole screen in this way before a bubble passes a line at the bottom.

While that captures the gist of the game, there are several elements to the game play that are not described there, like new bubbles being added while you play, and the way the point system works. While it is a simple game, it certainly is entertaining!

Several people have worked on this game over the years, and while I was not able to speak with all of them, I did get the pleasure of conducting an email interview with Pawel Fedorynski, who ported the game from Linux to Android.

Enough talk, here’s the Interview!

Mr. Fedorynski, I was just reliving my youth while playing Frozen Bubble on my Android phone! While considered a classic now, it has just as much playability as it ever did! You were not the original Frozen Bubble author, what pushed you to develop it on Android?

I got a G1 phone as a Christmas gift from my employer and wanted to develop something for it, Frozen Bubble port seemed like a good choice, especially since the phone had a trackball.

You also made an Android level editor, is that original with you, or ported from something else?

The editor was actually contributed by Rudolf Halmi, https://halmi.sk/.

How long have you been programming, and what is your favorite programming language?

I started in 1986 in BASIC on ZX Spectrum+ 🙂 My favorite language is C++, mostly because I know it best.

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 Frozen Bubble under an open source license? Was it a requirement of porting a game already established under that license?

It was indeed a requirement (the original Frozen Bubble is covered by GNU GPL.)

About how much time would you say you spent working on this game? And that time compared to playing it?

I think about half a year, one day a week. Non-trivial fraction of which was figuring out how to write a Hello World app for Android. Android was pretty new then.

How did you go about testing the game? Did you do all testing in house, or did you have a team of testers?

I don’t recall testing it very much 🙂 Since it was not an original game, but a port, the gameplay and the levels didn’t need any tuning. Once it started running I just uploaded it to the Android Market.

Do you feel that your work on Frozen Bubble is complete? Or do Android updates and user interaction keep pulling you back into working on this game?

The development was taken over by Eric Fortin, who added a lot of new features, including the arcade mode.

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

I had a bunch of other hobby projects, some of which I made open-source, but nothing of general interest that is available right now.

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?

I guess one important thing is to choose projects that will keep your attention (as opposed to trying to do something useful or important.)

That is great advice for new programmers like myself!

More about Frozen Bubble and Pawel Fedorynski

If you are interested in playing Frozen Bubble on your Android device, it is available on F-Droid and the Google Play Store for download! You can also read more about the game from the Wikipedia article as well, but best of all, you can check out the official website: http://frozen-bubble.org/!

If you are looking for some entertainment, be sure to check out Mr. Fedorynski’s other game on the Play Store, the Busy Beaver! You can also jump over to the Frozen Bubble Github to check out the code and see what additions Eric Fortin has made to the game!

Linux – keep it simple.

Interview with Simple Mobile Tools Open Source Developer Tibor Kaputa!

This slideshow requires JavaScript.

There are a lot of great open source apps out there, for personal computers, cell phones, smart televisions, and everything in-between. But when it comes to Android, I can’t think of a better suite of open source apps than those made by Simple Mobile Tools. Collectively, these apps span everything from note taking apps to calendars, and are really intuitive, simple apps to use.

Oh, yeah, and they don’t have any advertisements in them!

Perhaps one of the better known apps from Simple Mobile Tools are the Simple-Gallery app, which is incredible for quickly sorting your photos. But don’t let the “simple” part fool you. That just means simple to use, not that it isn’t feature packed, because it is! They actually have a large collection of apps for Android:

  • Simple App Launcher
  • Simple Calculator
  • Simple Calendar
  • Simple Camera
  • Simple Clock
  • Simple Contacts
  • Simple Draw
  •  Simple File Manager
  • Simple Flashlight
  • Simple Gallery
  • Simple Music Player
  • Simple Notes

With an inventory like that, you can just about replace all the built in apps that come with your phone! One of my personal favorites, however, is Simple Draw. I just love that app. Easy, simple, fun! And it’s great for using with the kids. I wrote an email to Tibor Kaputa, the creator of Simple Mobile Tools, asking if he would be willing to complete an email interview with me, to which he graciously accepted. You can read through the interview below, but first, a few pieces of original art while using Simple Draw!

I know, mad skills, mad skills. By the way, that’s Mr. Blue in his crop duster plane. There is a story behind that and his girlfriend, Ms. Purple….. A story for another time perhaps.

And now, what you’ve really been waiting for: the interview!

Hi Mr. Kaputa, thanks for visiting with me. You, of course, maintain a whole host of mobile apps, under the umbrella of Simple Mobile Tools, and I use quite a few of them. One of my favorites, and perhaps my children’s favorites, is Simple Draw. I was wondering what brought you to create this drawing app? Was it specifically filling a hole in the “simple” app set, or was it inspired by something in particular?

As all apps, this one was created by me needing it personally. Sometimes I just want to draw something simple and don’t have any paper. I don’t need any fancy filters, brushes, butterfly shapes etc, just a pencil and a couple colors.

All of the “simple” apps in your suite have an orange color scheme. Is that your favorite color, or did you just use it for continuity?

My favourite color is yellow, but it doesn’t really fit Android apps that much, so I chose orange. It used to be a brighter orange initially, but over time it got darker and the dark theme was set to default in all apps. I really like the current orange/grey combination.

How long have you been programming, Java or otherwise? What got you started?

I’ve been programming for like 8 years now. My first language was C++, then I worked on some databases, websites. I’ve tried out a lot of things before playing around with Android like 6 years ago, I think it was Android 1.6 back then. It was difficult in the beginning as I didn’t have an actual device and the emulators were really slow. The situation today is a lot better. I have many testing devices which I bought for testing Simple Mobile Tools apps and most importantly, I replaced all Java code with Kotlin 🙂 That saves me a lot of nerves.

There are a lot of Android apps out there, and not all of them are open source, but I’m glad yours are. Why did you decide to release your Simple Mobile Tools apps under an open source license?

I’ve always been an opensource fan, that’s one of the reasons I use Linux for everything I do. When I was working on some commercial apps I often struggled with the development, as Google really complicates many things unnecessarily. I often couldn’t find any good sample apps, so hopefully these apps will help developers too, not just actual users. From a developers point of view the apps are simple, but not easy. They cover many basic Android functions like playing music, storing and syncing calendar events, contacts, browsing images, working with files, widgets, camera and many more. It is not easy to learn the fundamentals of all those aspects of Android, but I think it goes pretty well so far.

Is there a reason that you chose the Apache License 2.0 in particular?

I read through many licenses, their pros and cons. Apache 2 is the most widely used one, so I picked that too.

You are regularly putting out updates for your apps, including Simple Draw, do you have a particular direction that you hope to go with the suite of apps? Is there another Simple Mobile Tools app in development?

My slogan is “Replacing your Android apps one by one since 2016”, so that is the direction I want to go. I want to work on apps for basic usage used by casual people, not some IT experts or so. People can vote on what would they like to see at https://simplemobiletools.github.io/ (by pressing the orange floating button at the left side of the screen), plus I’m also communicating with people via different streams a lot. That helps me seeing what they want to see. I’d say that the roadmap is pretty clear now, I just need time for the development. The most requested app was Simple Dialer, but when I started thinking of the implementation, I realized that making it a part of Simple Contacts would make the most sense as many things are needed by both apps and I want to avoid duplication as much as possible. Some people also requested a Launcher which is on the roadmap too, but it won’t be created anytime soon. There are already some really popular launchers out there and my goal is not fighting anyone unnecessarily.

About how much time would you say you spent working on Simple Draw? Your commit history is astounding!

I’m usually working on multiple apps at once, so I cannot really say how much time I spend on Simple Draw itself. Developing these apps is already my fulltime job so I usually spend like 10 hours a day on them, including weekends. Not counting replying emails, github notifications, fb/g+ messages. I work a bit less during summer as I want to enjoy it too, do some sports etc 🙂

Thanks for taking the time to answer a few questions. Do you have any advice for someone who wants to start programming?

Yeah, my advise would be to just get into it. Don’t overthink it too much, just start doing what you have on your mind. It will eventually clear up which functions are needed, which are not. Don’t get too nervous about the technical part of it, like which architecture should you be using or so. I’m not using any either, I just write code the way it makes sense to me, I don’t care what is the “cool” way of doing it.

More about Simple Mobile Tools and developer Tibor Kaputa

It was great that Mr. Kaputa took the time to visit with me, I hope that you will be checking out his apps, both on the Google Play Store, and on F-Droid. You can check out his personal website, or visit the Simple Mobile Tools website. But, if you are into open source programming like me, you will probably make a bee line straight over to his GitHub to check out his source code!

Linux – keep it simple.

Interviews With Open Source Developers!

Hey everyone! I’m really excited about an up and coming series on the site. It’s probably obvious that I’m big into open source. With that, I’ve always wondered about the stories behind some of these great open source apps. What causes a developer to go an open source route? Why did they pick a particular programming language or platform? Is programming their day job, or just a hobby?

Hopefully, over the next month, we will be able to find out! I’ve sent out requests to numerous open source developers to participate in an email interview with me. Several have graciously agreed, from Google software engineers to hobbyists! While these interviews will certainly not be exhaustive, I’m hopping to learn a few things myself from these outstanding devs! And to kick it all off, on the first Friday of September we will be talking with the developer of Simple Mobile Tools and his full time job of developing open source applications!

Linux – keep it simple.