I promised to start doing some UI stuff today, and sure that is what we’re going to do. But first I want to tackle a feeling that was creeping up my spine today. What am I doing, and does it still answer my big WHY. I know I am easily tempted to start working on nice technical challenges. And that’s not a problem by itself because I am doing this project in private time and for that allowed to have some fun! As long as it still fits the bigger picture, because this blog series needs to stay on topic: Making the smarter grocery app.
As stated in the first blog post on this topic, the intent is to:
- Take my stable stock list and put it on my grocery list
- Provide menu suggestions for the week, and upon making selection for daily meals, puts the ingredients on my grocery list as well
- Detect the grocery shops in the vicinity of my home and let me make a selection of shops to include for comparison
- Run my grocery list against the active product prices of those shops, including active deals
- Suggest the one or two to visit, with the expected total price for my grocery list
- Taking the additional travel cost (gasoline) in account, calculate if it makes sense to visit more distant locations
- Compile a grocery list for each of the shops I’m going to visit, minimizing costs.
At least I feel we’re not entirely off track, but we’re starting to work on a very small sub system of the bigger whole. The following figure tries to make it a bit more insightful.
The size of the circles indicates the gut-feel effort to put into solving a particular problem domain. There is some overlap between areas, and not everything is in scope of the app, as indicated. We’re now working on the Location problem, which might only provide 15% of the total solution. Bigger problems are around to solve that are also essential to get our app established.
Making this diagram helps to understand the context of work in the bigger picture. What is the value of solving this problem now? Does it make sense to start solving the smaller ones while we know bigger problems exist? In a commercial project model, that might not be the case … But as said before, it should also be a fun exercise in the context of my non-commercial project, and after having verified we’re still in scope of the bigger whole, it allows me to continue for now. At least I’m aware of the fact that I’m starting to work on only a very small piece of the total app. And with that I can put my mind at rest by putting the current practical work under the ‘Think big, act small’ paradigm. Let’s get going!
Location user interface
I started out drawing small images on pieces of paper. Very raw sketches, almost not readable or understandable anymore directly after creating them.
In the process of doing these sketches you establish small visions of what you’re looking for. To me, this was telling me that I was essentially interested in a map view, either centered around my current location, or centered around the location that l specify. With that, I started thinking again about the Google maps functionality provided by the Google Maps API. For example, below screens for the Google maps app on a mobile device would certainly do the trick for me.
It might look a bit differently in a web interface, but mobile devices are supported. Inspired by these possibilities showcased I think our first attempt should try to let the user interface for determining user location and nearest shops be provided by Google as a whole. In fact, I don’t want to be in the location business anyway. My goals and main interest are around high quality grocery data comparison, and saving money with that. And the Google Maps API seems to provide all the capabilities we need to get the Location problem resolved, including the user interface, in a way and at a level I will never achieve myself.
So we’ll start creating a Google Maps pilot application in a next post, and maybe we’ll see some real (mock-up) code as well! Keeping hanging in there you techies, it will get more interesting from that perspective. Hehe 🙂