The rains of autumn wash away the warmth of summer and reset the environment for the long winter. Wait, where’s it raining? When’s it going to end? If only I could look at the radar… this is too many clicks, stupid phone!
In the spirit of these fall showers, I’m renewing my interest in development. I’ve got a new project: a weather app for my phone. Yes, I know that it’s the most obvious app ever, and there’s probably already at least twenty that do exactly what I want already. But that’s not the point. I’m using this as a learning experience. This will be my first mobile app, and it will be the first time in a while I’ll go through a somewhat-proper development cycle. I want to use the blog here to outline and document the process, though I’m going to try to stay away from the very development-specific aspects. This has always been a general-readership place, and I don’t want to lose anyone with deep technical discussion. Plus, it will give me something to go back to a the end to make sure I’ve hit all my goals.
The phone already has a “Weather” section on the main screen which shows the current conditions and also allows one-click access to an overview forecast for the next few days. While this is nice, it doesn’t actually solve my problem. I could just bookmark the page at the National Weather Service’s web site, but what’s the fun in that? Plus, then I have to deal with the overhead of a full web browser when I just want a quick glance. At first, I’m going to keep it to myself. Once I’ve polished it a bit and tested it, I’ll open it up to more people. I’m still trying to decide the long-term plan for the code, but that’s a long ways away still.
So, what are my goals for the project? The biggest is looping radar, because I spend entirely too much time looking at it already. I’d like it to be able to display all the information I can get on the National Weather Service website: current conditions, “forecast-at-a-glance” that provides a quick icon-based 5-day forecast, a fuller text forecast for more detail, and current watches and warning. I want there to be a simple navigation system, perhaps something with simple icon buttons to switch between views. The whole thing should just “feel” right, and it should definitely work with or without the touch screen. Knowing how often the various bits of data refresh, I’ll keep data calls down to a minimum, caching the current data as long as it is valid and only requesting what is new.
I’ve sketched out some rough UI ideas, which I’m sure I’ll flesh out as I get into development. I’m not really much of a graphic artist, or a drawer at all, but it explains the basics. There’s navigation buttons at the bottom. The radar page shows the radar and maybe some controls, the current conditions page shows the weather as an icon with a description, the temperature, and some more detailed conditions (wind, dew point, heat index/wind chill, etc.), and the forecast screen shows the next three days’ worth of weather-as-an-icon and temperature.
Now, there are some things I won’t put in, at least at first. This is first for me and my needs, and I’ll expand it to a more generic, anyone-can-use-it mode after I get a prototype working. For instance, I don’t need to change locations yet, because I’m not going anywhere special for a while. Plus, that interface will be a bit more complicated to be easy. My phone doesn’t have a GPS, so even if I wanted, I can’t put in auto-location detection. I only use my phone in “portrait” or “vertical” orientation, so I won’t worry about rotating everything yet, and I also only use one resolution, so no auto-resizing.
There’s still more to do, but that’s the basic plan. Time to get to work.