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?