It’s been accepted to the Firefox OS marketplace as well!
Now that Weatherfire is feature-complete (at least for the first release), I just have some little things left to do.
The two biggest things from a user’s point of view is that the help needs to be written and the options screen still has to be implemented. The only thing that’s going to be on the options screen to start with is a button to choose whether the metric or imperial units should be used, but that’s pretty important.
There are a handful of minor things that need to be done as well. For instance, currently if there is a decimal value for one of the info fields it will display the entire length. “2.66666666667” (or however many digits it is) doesn’t look very good, and instead the number of decimal places will probably be limited to two.
Also, I’m going to work on some optimizations. As the program is right now there are noticeable delays when switching to a new screen, in particular the info screens, as the app is processing a large amount of data and locks up the UI while it’s doing so. This isn’t that big of an issue if the user has only entered in a small amount of data, but as more and more is added the lag will become more obvious.
- I’ve just been trying to get this done quickly without really caring about optimizations so far, so there is plenty of redundant code that can be cut. There’s a lot of computing the same data repeatedly within the same functions, so I can remove all the duplicates.
- I might move the data computing code into a separate worker so it doesn’t block the main thread. The UI would be created and displayed first, with the data filled in once the calculations are complete. I’m not certain that this is a good idea though, as it still makes the app look like it’s lagging.
- Currently if the info screens are accessed multiple times without additional data being added, the info has to be calculated each time, despite that it will still be the same. It would reduce the delays further if the calculated info was cached, so then if the screen was accessed again the data could simply be taken from the cache.
So it turns out that the name “Weatherfox” is already used, by another Firefox OS app. From now on my app will be called “Weatherfire” instead, or at least until I find that that is used as well.
Aside from that though, the app is progressing nicely. I’ve almost finished with completely implementing the features for version 0.1. The ability to add, view, delete, and clear data is done, and the general info screen is done. That only leaves the other info screens left to do, and now that I’ve got all the base code for those done it shouldn’t take too long. After that I have to write the help page(s), but that will be quick.
Weatherfox is a mobile version of WeatherLog for Firefox OS devices. However, as Firefox OS apps are nothing more than web apps that appear to be running natively, Weatherfox should also run in just about any web browser that supports enough of the HTML5 and related specs.*
Weatherfox will work about the same as WeatherLog; it has a main screen for displaying data, the ability to add and remove data, and the ability to view information like averages, ranges, highs and lows, etc.
I’m aiming to have the nearly the same feature set for Weatherfox as Weatherlog has. The only exceptions are profiles and importing and exporting data. Profiles are planned for the second release though.
Weatherfox is still in a pre-alpha state. Currently the ability to add, remove, clear, and display data are implemented, but I haven’t started with the info screens yet. If you’re interested, the code is on GitHub, and I have the app up on GitHub Pages as well.
Here are some screenshots, using the simulator because it’s easier:
* The only exception to this is with the datepicker field in the Add screen. Weatherfox uses dates formatted as “dd/mm/yyyy”, and takes as input either the format “yyyy-mm-dd” (used by Firefox OS) or “Mmm dd, yyyy” (as in “Jan 1, 2014”, used in iOS). Any other format is currently not supported, but may be in the future.