Found in 1 comment on Hacker News
gfodor · 2012-12-13 · Original thread
Now lets talk about Hall Pass. This is a pretty neat thing and I first want to point out that this is really innovative work and could actually be a very useful thing for your school. Hell, I could see some people starting companies around such a simple but obvious idea that technology could improve, so hats off!

A few points on the design though. First, my guess is most of the time, people are going to get hall passes for one of the options in the "List" view. So, instead of having the "Where to?" selection be a text box, you can make it a spinning selector (like the date selector in Calendar, or the time selector for an Alarm.) I like the design of your custom "List" box, similar to your "Jump" view, but it's very different than the rest of the app and remember: if you're being clever like this, you probably need to simplify! iOS already has controls for this type of problem: the spinner. You can still customize the look of the spinner a bit if you want to add some flash, but you should start there.

If you are really worried about people needing to specify one-off destinations that are not on your list (and so the spinner will not have their choice), you can always include an "Other" selection in the spinner and then let them type something. If you go with the spinner route, you should change the field on the form from a text-box to a nice, large, tappable button that lets you click to open the spinner and then the label is replaced with your destination. In general, you should always do what you can to make it so people do not have to type on their phone, unless they really, really have to.

The minutes thing is rigged up very well, though I would suggest perhaps also going for a spinner here since that is the standard way to input time duration. Here's the reason: most of the time people do not need minute-level precision (like say 17 minutes or 29 minutes) Instead, they need things at 5-minute precison. For a hall pass, which is probably no more than 2 hours long, that's only 60 minutes / 5 minutes * 2 hours = 24 choices, which is a perfectly fine number of choices to put in a spinner.

So, for Hall Pass, you can have two buttons, "Where to?" and "For how long?" that open spinners, one with a list of places (and maybe "Other") and one with a list of 24 time intervals ranging from 5 minutes to two hours (there is actually a built in iOS spinner mode to select time intervals I believe, search around the documentation.) Your two buttons in hall pass are a little weird since your other tabs follow the style of most iOS apps and have buttons in the navigation bar. I would move "clear" and "submit" to the left and right corners of the navigation bar. Also, its weird that you have two ways to "clear" a hall pass, though this might be a quirk with your school.

The Edline tab is totally fine :)

Finally, some high level points on the design. One of the things about iOS design is you should generally tend to be subtle. First on color. Your app has highly saturated red navigation bars, mixed with bright blue buttons and segmented controls, and the Hall Pass has red and green buttons for clear and submit. First, you need to choose a color scheme. Red isn't bad, but I'd dial down the saturation a bit since bright red is a danger color. (In users' minds, red means "Be careful!" So, you should only create red buttons when important things are going to be destroyed.) If you are going to choose red as your main title bar color, your segment controls should complement it. When designing an app, you generally choose a palette of colors that complement each other. (Google color palette or color scheme) So, I would change your segmentation control (if you keep it) to be a lighter tone of red or a grey in order to match the background of the table view. Also, your instructional banners are cyan -- they should also match the main palette of the app. Blue and cyan can complement red if they are used in very small amounts, but usually it's a bad idea.

Also, you need to be consistent with lighting, layout, and style. I'm not sure where your buttons came from for Hall Pass but they are a little weird and are not standard iOS-styled buttons. Finally, one more nit pick: in Assignments, the blue box at the top to add assignments can use a little adjustment. First, the cyan background does not match the red theme, as I mentioned, but more subtly I think it is a little too small as the "Tap here" text is up too far against the edges of the control. As I've mentioned earlier, you should always try to stick to convention: if there are other text boxes you've seen, make yours the same size.

One last point. Your launch screen has a logo for your app. This is totally fine and it's not really a solid point of criticism, but it's something to think about. What Apple encourages people to do is to make their launch screen be a image of their first screen, but without any data (since it needs to be the same every time.) In your case, it would be the "Calendar" tab, with nothing in the grey area at the bottom. So, remove the table view, take a screenshot, and make that your launch screen. When users launch the app they will see the calendar tab as the app opens and the table view will "pop in". Check out the other apps on your iPhone like notes and clock to see this in action.

I hope this has been helpful. Don't take this as an indication this isn't great work. You are more competent at iOS programming just by looking at this than many wannabe hackers. Great job. You got a lot of details right. I know how much work it was to get all this working, even though it probably seems simple to people who pick it up and just start using it. Just like when you clean your house the easiest thing to notice is that you left a sock on the floor, when you build software the easiest thing to notice is where it needs work, not all the work that went into what is there already.

Main things to remember: go with the flow, if something has been done before, just copy it (and maybe tweak it), don't be too clever. Think about what your users will actually use (do they really need to be able to type in 17 minutes in Hall Pass? Do they really need to be able to switch between 6th and 7th grade schedules in a single tap?) Every control you use or layout you design has consequences of what it makes easier, and in turn what it makes harder. Especially on a tiny screen like a phone. Always think about what things your design makes harder, not just what it makes easier. For example, if you add a segmentation bar, that makes switching easy, but moves some information off the screen, so you have to scroll to get to it. Also, if you add a segmentation bar for one thing, it means you can't add one for something else that might be better for it. If you use a spinner instead of a text box, choosing those choices is easier but one-offs are harder. Which is more important? Finally, don't be afraid to throw things out. Most of the feedback I've posted requires you to remove a lot of stuff. There's a lot less moving parts. In fact, by the end, you might actually have less code than you do now, despite making the app much better. This is normal and is a good sign that you are doing things correctly. If you are always adding new stuff and never removing stuff (or always adding more than you remove) then you very well might be going down the wrong track.

If you've read this far, I've got some questions for you. How did you get into this? Were your parents involved? How could we get more kids like you to try hacking on their iPhones?

Great work and keep it up! Finally, here's a short bibliography if you are interested in reading more:

- http://www.amazon.com/Tapworthy-Designing-Great-iPhone-Apps/...

- http://nathanbarry.com/app-design-handbook/

- http://designthencode.com/

- Anything by Tufte

Fresh book recommendations delivered straight to your inbox every Thursday.