Mobile App Development: Final Project Instructions and Checklist For Reviewers
Your final project is the culmination of all your hard work in the course. Your goal should be to produce an app that will be a strong addition to your programming portfolio that is creative, well-designed, addictive, useful, and robust. Your app must have a clean design that feels simple, operate smoothly and without sluggishness, not crash, and have a clever twist. The app must take advantage of one or more of the unique capabilities of the phone and have the potential to stay interesting even after extended use. No explanation should be necessary to use the app beyond what someone might read on the Market when downloading it. The design should respect the ideas we have talked about in class and be in the scope of helping with some health-related issue. Doing this well will require that you took paper prototyping seriously ... either that or you got lucky.
Your team will present your idea during one of the two last classes using the Final Presentation Template. You will submit your assignment by publishing on the Market. You will also email a zipped Eclipse project directory of all of your code.
The following checklist will be used to evaluate apps relative to the grading criteria on the syllabus.
Concept:
- Will the 4000 character description and the app name entice people to try it? Why?
- Does this app have the potential to help someone in some meaningful way? How?
- Does the app make realistic assumptions about what people will and will not do? In what way?
- Does the app take advantage of unique capabilities of mobile devices? How? Does it do something that could not be done well on a desktop app?
- Can you see this app becoming “hot” on the Market? Why?
- Are there other apps that do what this app does already? If so, what is unique about this new app that will make it stand out?
Design:
- Is it clear from the Market description what the app does?
- Does the app immediately create engagement when run? What hooks the user in?
- Is information gathering about the user deferred as long as possible until after engagement has occurred?
- Does the app let the user learn by doing, versus learning by explaining?
- Are all the app screens intuitive, not requiring explanation to understand?
- Does the app introduce complexity gradually so that the user can slowly expand his/her cognitive model of the way the app works?
- Does the app have game-like qualities that will make using it addictive? In particular ...
- Does the app have simple gameplay or a simple interaction model?
- Does the app have an element of mystery and intrigue?
- Does the app make use of a compelling storyline that is easy to remember?
- Does the app cleverly balance reward and challenge, as a good game does, and at multiple levels simultaneously?
- Does the app encourage and succeed at getting someone to try to try to do “just one more” thing because it is so engaging?
- Is the complexity layered so that both novices and experts will be engaged by the app?
- Is there clearly evidence that inspiration has been pulled from apps, especially addictive apps, that we know are successful?
- Can the app be used in bits and spurts and allow the user to make forward progress?
- Does the app provide feedback in some clear way when it is making use of sensor data? Can the user tell if there is a problem with the sensors and if they are working?
- Do the colors/graphics look clean and professional, not distracting from (and hopefully enhancing) basic use of the app?
- Where the app has “rules”, are as many as possible explained pictorially instead of using text?
- Do a small set of rules create a large amount of interesting app use?
- Is sound and vibration used only when necessary to enhance the user experience and in a way that will not get annoying with repeated use?
- Do all screens of the app exude simplicity, minimizing options wherever possible so as to make the app easy to use? Would a someone who is computer-phobic be able to, and want to, use this app?
- Are the button sizes and placements appropriate for mobile use on the go?
- Does the design account for the fact that measurement using the phone’s sensors will be noisy? Where there is randomness in the sensing , is it exploited by the app or does it weaken the app?
- Does the app require the user to remember to do things (e.g., logging) in an unrealistic way? Or is the app so compelling that people will remember to use it when they need it?
- If the app is logging something and it makes a mistake, can the user correct the information somehow?
- Does the app have staying power that is self-sustaining? That is, does it require an unrealistic amount of manual content generation to be fun, or does it use either automatic content generation or is it possible for the team to generate enough content to make the app fun a very long time?
- Will this app take more time or save people time? If the former, why will people still want to use it?
- Does the app primarily use positive reinforcement? (Because we know negative reinforcement will make people more likely to stop using it)
- Does the app use interaction between people in some creative way? (This is not required, but may enhance some apps)
- Does the app include a mechanism by which the developers can get feedback from app users about how to make the app better? (This is a GOLD MINE for the developers)
- Does the app prevent (or strongly deter) cheating? (Not doing so will reduce the fun-factor dramatically for many users)
- Are there rewards for using the app? What are they?
- If the app has virtual rewards, what evidence is there to believe people will care about gaining them and why will this stay engaging for long periods of time?
- Does the app NOT require any money to be successful at scale? (Apps should not be dependent on real financial resources)
- Does the app minimize typing on the phone? If it does require data entry, is it a reasonable amount given the phone’s relatively painful data entry?
- If the concept requires a large database of any sort to work, have the developers obtained access to that database so the app can be fully tested?
- Can the app be easily paused/quit and returned to later?
- Does the app avoid the use of hidden menus and commands that users would not know about without reading instructions?
- Have the designers clearly thought about pacing ad how to use (or to not use) it to enhance the app?
- Have the app developers clearly worked to avoid all “computerish” terms such as “enter” “accept”?
- Do all buttons, whenever possible, use action words/verbs? (e.g., rather than “Camera”, “Take picture” or rather than “New game” “Start walking”)
Implementation:
- Is the app robust? Does it run without crashing?
- Does the app handle rotation of the phone in a reasonable way (and not crash!)?
- Is the app zippy without sluggishness?
- Does the app continue to function well even when the phone doesn't’t have access to the Internet (i.e., put into airplane mode)?
- Does the app function properly when sensors it uses are not available (e.g., location based sensing turned off on phone in in course vs fine-grained mode)?
(and does the UI give appropriate feedback?)
- If the app uses sound, does it respect the user’s settings for sound on the phone?
- Does the app disable hardware buttons that are not necessary when using the app if they might interfere with use of the app in some way?
Setup:
- Are your solutions for projects 1-5 available as NUMAD-[YourTeamName] on the phone's app home screen after installing your Market application? Does this include a new button, "Acknowledgements" that acknowledges the use of any code, images, or other resources that you did not create? Does it include a second new button that goes to a page with a list of the 3-4 most similar apps to your final project on the Market each with a 2-3 sentence description that indicates why the project app is an innovative improvement in some way relative to these existing apps?
- Is your final project solution appearing as FinalProject-[YourAppName] on the phone's app home screen after installing your Market application?
- When the final project app launches, does it first display the info screen that shows the 4000 character market description and the names and emails of the team members? On this screen there should be a single button, "Start." When that is pressed, does it open your final project app?
- Does the final project app show up on the phone app home screen with a new icon appropriate for the final project concept?
Testing:
- Does the acknowledgement page clearly explain the origin of any artwork, sounds, or code incorporated from other sources other than the two team members, and does it list the phone model(s) used for testing?
- Has the team done its homework to find 3-4 similar apps and clearly articulated what about the new app distinguishes it from the competition?
- Does the app use the AuthorizationChecker code provided to you so that others in the class can run your application but those not on the list are excluded?
- If the concept requires a lot of data to be in the app/system before it can be tested, has it been seeded with that information so it can be properly evaluated?
Logistics:
- Has the team emailed its final presentation powerpoint named TeamName.AppName.ppt?
- Has the team emailed a zipped project directory with all code and resources required to compile and run the code in Eclipse named TeamName.AppName.zip?