CS 342: Mobile Application Development

Mockups, navigation, and feature lists

A lot of modern software development is done using one form or another of agile, iterative methodology. The rough idea behind these approaches is that you set goals for a short iteration of work, do the work, and then reevaluate where the project stands before planning the goals for the next iteration. Agile projects often start with a pretty detailed understanding of the end goal, but they also recognize that a project's goals tend to evolve during its implementation. We're going to approach your project with an agile-ish point of view, and an iteration length of approximately one week.

Before the iterations begin, we have the inception phase, during which we describe the project's goals, estimate difficulty, identify project risks, and prepare requirements for the project. Your inception phase begins with your meeting with your client. Following up on that meeting (and possibly starting in the meeting), you will prepare visual mockups of the rough appearance of the app's screens, along with a description of the navigation between screens (e.g. if the user taps on the "i" icon, the About or Info screen appears). Mockups are a quick, cheap way to make sure that all parties are communicating clearly about how they expect the app to behave.

Still in the inception phase, it's a good idea to create lists of desired features (for example, expressed in the form of user stories). Especially when the development time available is very short, as it is with this project, it's important to work with your client to arrange the features into priority order. Usually, the clients and developers have bigger ambitions than will fit in the available time, so getting early agreement on prioritization of work helps reduce conflict as the project proceeds.

What to turn in

With all that in mind, here's what you will turn in next.

There are lots of ways to create mockups, including paper and pencil. I would like you to use one of the digital options. For this purpose, I have invited you to join a balsamiq.com project created for the CS 342 2015 class. Another option would be to use Xcode storyboards or the Android Studio layout editor to create mocked-up screens, and turn them into .png files by using your computer's screenshot capabilities or running them on the emulator and taking screenshots from there.

I also encourage you to include mockups of nutty ideas that may occur to your team. Here, I'm thinking of screen arrangements or ways of approaching the app that might not be standard, conservative collections of lists and buttons. You won't necessarily have any wacky ideas, but if you do, inception is a great time to sketch them out and discuss them.

The schedule

For class on Friday, May 1, bring first-draft mockups and a prioritized feature list to class in some form that enables you to show them to your classmates. (Image files on a laptop or tablet or phone, printouts, etc.) We'll spend the hour getting feedback from each other.

Before the due date of Wednesday night, May 6, share your mockups, navigation description, and prioritized feature list with your client and obtain feedback.

By 11:59PM, Wednesday, May 6, submit your images and text via Moodle.