This week I’ve spent a lot of time working on the UI. So far I’ve implemented some basic elements of what I designed last week and I’m not happy with how it works in practice – which is fine, it just means that I have to iterate some more on the designs.
I’ve also been trying to formulate some underlying principles of how the UI should work. One is to never require the user to provide input to the app. They can of course, but it should always be optional and the app should do its best to give a meaningful response regardless of how much or little it knows about what the user wants. One thing I find frustrating with other transit apps is to have to type a bunch of stuff – where I am, where I’m going, when I’m going, blah, blah, blah – before I get any response. I’d like the app to happily take any input you want to give it, but if you don’t it should still tell you something based on whatever it knows.