My first Android app is now on the Google Play store. I can truthfully say that I’m an Android developer. I’m not saying that I’m a great developer or even claiming that I’m a professional Android app developer.
Cash Buckets is currently in beta, it’s functional but a long way from how I imagine the finished product.
What did I make Cash Buckets?
I had two reasons to make this app. First reason was to learn about making Android apps. Almost everything can be learnt better through doing than reading or watching videos. Going through tutorials helps but you’re working towards a predetermined end that’s selected by someone else. Making an app do what you want to quickly highlights areas you need more work on. This is a reasonably basic app but I still found myself searching Google. Many things I tried didn’t work on the first go. It didn’t always work how I expected it to. While that was frustrating at times I learnt a hell of a lot.
The other reason I made this app was because it’s an app I wanted. There are other app out there that are similar but I think they unnecessarily complicate things. The principle that Cash Buckets works on is the envelope budgeting method. With this method you put your money in envelopes of predetermined amounts. If you know you’re going to need $250 for your rent, put it in the rent envelope. And so on for all your needs, food, electricity, insurance etc. I’ve heard that finance guru Dave Ramsey advocates this technique, I’ve never read his work so I can’t say for sure.
How to use Cash Buckets
With Cash Buckets you create virtual buckets, that way your money can stay in the same place. The red buckets represent the things that you can’t live without like food, shelter. Or at least have the potential to severely affect your life if you don’t have them. The blue buckets are for the things that you regularly purchase but you could live without if needed. And the blue ones are for the one off purchases. After buckets have been created the top line is to enter all the funds available. Hit calculate and it fills up each bucket from the bottom, left to right. If there’s an money left over it’s shown in the left hand reserve column.
How long did it take to make
It took me around 23 hours from start to release. That probably sounds like a long time for a fairly straightforward app, but as I said I was learning as I went. I started learning about Android development at the end of last year, before that I had a tiny bit of experience programming embedded systems (C/C++) and Python. As you can see I’m not some super-hacker programmer guy….. yet.
SQLite was the cause of most obstacles
SQLite is the database that Android uses. It’s what I used to save user data so that you don’t have to re-enter each bucket after you close the app. The language is relatively close to plain English and if you were to read someone else’s SQL code it’s not too hard to work out what it’s supposed to do. However, using it within Android studio presented a couple of problems.
The language of Android Studio is Java (and now also Kotlin). If you try to do something silly, like tell an int that it equals a string, you instantly know you can’t do it.
SQL commands are obviously not Java (or Kotlin) and they’re put into a string after the “execSQL” command. Android Studio doesn’t check them. As I discovered many times, if there’s a missing comma or bracket, it just won’t work when you run it. It will either not do what’s expected or it will crash.
The other problem I had with SQLite was that there were some commands that just didn’t work the way I thought they would.
What I expected the above snippet of code to do was to loop through the database until it came upon an empty row. What it did instead, was to keep going and going and going even if the next row should return “null”.
This is how I solved this issue:
It’s not the most elegant code, and I’m sure there’s a better way to do it. But it works.
Cash Buckets has a lot of room for improvement
For a start, I’m not entirely happy with the name. And there are quite a few features I plan on implementing. For now I’m happy that I’ve got my first Android app out into the world.
If you’d like to try it out here’s the beta version:
Please let me know if there’s anything you like or dislike about it. Or if you would like any specific features added.