Skip to main content

First Android Application Released: River Water Level Stations

Update: I gifted this code and basically the entire project with related software tools I had made to my friend who I was trying to start a business with after we decided to stop. The app is still active and available on the market under his account and not “CWSolver” anymore.

A friend and I just finished our first Application targeted for the Android marketplace. The application basically allows the user to monitor the level of rivers in the United States thanks to publicly available data that is updated frequently. This is useful to anyone who does boating among other various activities that have some relation to rivers.

Here is the link to Water Level Stations on the Android market.




Here is our official description:

“Do you fish and hunt? Are you out on the river frequently for business or pleasure? It is important to know what the level and flow of the river is, so you can stay safe and maximize your enjoyment. We have an application tailor made for you.Water Level Stations allows you to monitor the flow and level of water in rivers throughout the United States of America. It is simple and easy to use with automatic GPS location acquisition that will load river stations in your area right after you start up the application. If you are interested in viewing stations in another area, it’s easy to turn off the GPS and select any location with the touch of a finger. Advanced graphing is available for many stations, allowing you to see how the water level has changed over a period of days and will also give you an estimate of where the water level will be in the future if that data is available.”

From a technical standpoint it has these features:

  • Fully multi-threaded, this means when it downloads additional information to create a water level graph it happens outside of the main process.
  • Full GPS capability with code to smartly use what is available to get the most accurate coordinates possible in the least amount of time.
  • Integration with Google maps for displaying of station location as well as selection of custom user defined coordinates.
  • Full screen graph of observed water levels as well as forecast if the data is available.
  • Unit conversion throughout the application (US-Units or Metric).
  • Customized help screen for each application screen.

Here are a few screens from the application.


The application took around 3 months longer than initially planned. We also didn’t realize there are a few competitors with our basic idea, but at this point our application has much more usability and functionality. We will most likely add improvements in the future, but I personally want to make sure the application will be lucrative to spend more time on it that I already have.


Edit: We already had to update the application.

We didn’t have the Google Maps API key set to the production keystore. What needs to be done is:

  • all the terminal command keytool -list -keystore /dir_to_file/keystorefile
  • Where keystorefile is your production key. Take the resulting code that was outputted and input it into the site: http://code.google.com/android/add-ons/google-apis/maps-api-signup.html, which will result in a code that should be placed in your XML layout files for all google map views.
  •  still need to figure out an easy way to get the maps to display for production and testing. There might be a way to link eclipse up with the production key so I can simplify things.


Popular posts from this blog

ChatGPT is a new, and faster, way to do programming!

Currently ChatGPT is in a free “initial research preview” . One of its well known use cases at this point is generating software code. I’ve also just used it to write most of this article… Well, actually a future article about cleaning up SRT subtitle files of their metadata faster than I have been by hand with Notepad++ and its replace functionality. Update: I recorded a screencast of writing the SRT subtitle cleaner application loading and processing portion. I relied heavily on ChatGPT for code. It was a fun process! https://youtu.be/TkEW39OloUA ChatGPT, developed by OpenAI, is a powerful language model that can assist developers in a variety of tasks, including natural language processing and text generation. One such task that ChatGPT can help with is creating an SRT cleaner program. SRT, or SubRip Subtitle, files are commonly used to add subtitles to video files. However, these files can become cluttered with unnecessary information, such as timing lines or blank spaces. To clean...

Theme error in 2010s Android App after AppCompat Migration

I plan on releasing a lot of my old work as GPL open source, but most of it has aged to the point that it no longer functions, or if it does work it’s running in compatibility mode. Basically it’s no longer best practices. Not a good way to start off any new public GPL projects, in my opinion. The current project I’m working on is an Android app that calculates star trails meant to help photographers get or avoid that in their night time photos. For now I’m going to skip some of the import process because I didn’t document it exactly. It’s been mostly trial and error as I poke around Android Studio post import. The Android Studio import process… Removing Admob Google Play code before the project would run at all. After removing dependencies, it kind of worked, but when running it in the emulator it shows a pop-up message saying that the app was developed for an old version of Android. Going through the process of updating code to match current best practices… I had the IDE convert the ...

Blogger Notable theme pop-up header issue fix (thanks to Gemini Pro)

I've made a few half hearted attempts over the years to to fix Blogger's Notable theme's rendering of the pop-up header that shows up when you scroll down the page a decent amount and then pull back to reveal that secondary header. On Chrome mobile I noticed a gray box that forms next to the magnifying glass icon. I never looked in detail on  Chrome desktop, but it had an issue as well which I'll detail below.  If you are looking for a solution and don't want all of the extra talk about how I was able to find it, here it is:  .centered-top-container .sticky .main_header_elements { overflow : hidden !important ; } I decided to try using Gemini Pro 2.5 to see if it was capable of finding the issue and giving me a fix. Turns out that it was able, but it took a bit of collaboration back and forth to find the actual problem.  Here is a modified article I asked it to give me based on our debugging chat (it was very colorful in the article which I scaled back a lot, ...