Due Nov. 29, START OF CLASS
Android - using an OOP framework for Mobile
(start work with exercise in SW Engineering module)
Fellow Student Evaluation Due Dec. 1
peer reviewed -- CLICK here for our shared Google Drive document (to be done later)
Points 250
+ 30 points Fellow Students Evaluation
completed
This is a group project. You are to work in teams of 2 to 3
people maximum (note should somone leave from your group, you still
must complete all of the work). Your team will be responsible for implementing
an Android Application that runs on a Simulator inside the Android Studio IDE. The application must have some real functionality and have some kind of interactive interface.
The purpose of your application can be anything. Check out https://market.android.com/ for some examples of the many applications you could create. Unless you actually have an android device and an android market account you will not be able to download and run them. However, many of them have videos showing how they will work. I do not know of a way for you to either download them for running on the IDE --- as they are packaged for delivery from the market to hardware. As these are proprietary pieces of software --I doubt that a developer will give you their software for free. So, without a device you can only experiece "published" applications through whatever videos or screenshots that are provided at the market place.
NOTE: you can create your own applicaiton (the purpose of this project choice) and run it on the Android Studio IDE...as you actually are in posession of the source code.
NOTE: If you have an iPHone/iPad Android Apps are the same premise as the iPhone/iPad App you have experienced.
Another place to check out is http://www.android.com/ and developer.android.com which is the main entrance site for all things (officially?) android --- (there are lots of other resources on web you can search for). It can provide sample code, the SW needed, etc.
ORIGINALITY: It
is fine to look at publically available code to get ideas and to use ONLY BASIC code to get started, but,
you should NOT copy code. You should also design your own GUI's. If
found copying code, you will at the very least receive 0 points on this
project.
NOTE: YOU NEED TO quote!!! the references
you used in creating your code.!!!!!
Git
- you are required to create a new repository called "YourAppName" (where you give your actual app name). This should be shared by all the people in your group
- You are required to maintain excellent comments in your commits
- You are required to have JavaDoc code there
- You are required to have a wiki there that documents the CodeWorks.doc content inside the wiki
Team work
- all memebers of your team will recieve the same score.
- if there are problems in your team you MUST resolve them.
- only for things that are critical and can not be resolved come to me -- however if your group splits you will still be responsible for prodcuing an app for yourself. NOTE: I WILL NOT SPLIT UP GROUPS WITHIN THE LAST TWO WEEKS OF THE PROJECT
Specifications
- Create Android Application with non-trivial purpose (propose it to me through the exercise you will do earlier related to Project 3).
- Provide UML diagrams and Java Doc for your system.
- Use Git as described above
- You are not required to use any special mobile device HW features like GPS, Camera, etc. in your application (see extra credit).
- Extra Credit (50 pnts towards THIS project score): Use either the GPS, Camera, Microphone or GyroScope and its Android API in your application ---the results should be observable by a user.
- A request: I know some of you may think of doing a "test" or "quiz" app. This is bordering on trivial. If this turns out to be the case----A suggestion--- somehow make it uniquely intriguiing or very useful ---something that someone would really want to use. Remember seeing the same 10 questions over and over again is not really all that intriguing.
- WARNING --- DATA: If you are doing an application that requires data, one where you may have a large set of data (or should have a large set) that possibly changes you have a lot of options. Regardless of what you do, you must have a strong class structure desgined around this Data and its use in your Android App. Some Options might include (see Android website):
- Shared Preferences
- Store private primitive data in key-value pairs.
- Internal Storage
- Store private data on the device memory.
- External Storage
- Store public data on the shared external storage.
- SQLite Databases
- Store structured data in a private database.
- Network Connection
- Store data on the web with your own network server.
OTHER DATA SOURCES: Android provides a way for you to expose even your private data to other applications — with a content provider. A content provider is an optional component that exposes read/write access to your application data, subject to whatever restrictions you want to impose. For more information about using content providers, see the Content Providers documentation.
- IMPORTANT: with whatever you do ---you need to design and use meaningful classes and do a good job at OOP.
Deliverables
- CodeWorks.doc: contains the following components:
- A: Description- give a detailed description of how your system works including:
- A.1) List of Classes: with brief desciption of purpose, discuss any data structures/algorithms used.
- A.2) State of System: a description of what parts are or are not working ---give details. If your system is NOT working and you do not show screenshots of how it is failing and show you have through screen shots tried to insert breakpoints and done debugging you will have points taken off.
- B: URL: Posting of JavaDoc code to your server account. Turn in URL to website. Every class, its variables and methods MUST be documented/described --not just listed.
- C: UML/Design: contains the following
- C.1) UML Class Hierarchy Diagram: showing Hierarchy and Cardinality
and Object Associations for this project.
- D: Working Screenshots: Printout showing your Application working (capture screen dumps
into a word document and printout) for the following cases:
- D.1) Work Instance 1: Loading of Application
- D.2) Work Instance 2: Using it step 1
- D.3) Work Intsance 3: using it step 2
- D.4) Work Instance 4: using it step 3
- D.5) Work Instance 5: using it step 4
- D.6+++) give more work instances as necessary to demonstrate user fully using the application.
- E: Youtube video of application working --all features must be exercised. IMPORTANT: first part of video should show a piece of paper having:
- App Name & Name of ALL team members
- COMPLETION: yes or no --and if NO --what is not working or not implemented---I WILL LOWER YOUR GRADE IF YOU DO NOT HAVE THIS INFORMATION IN DETAIL
- Demo of app working --all features.
- F: URL to Youtube Demonstration of app
- Demonstrate Project working to instructor ON DUE DATE. and see item F in CodeWorks.doc for youtube video
- Code.zip zip up entired Android Eclipse Project!!!!!
- Specifications you must tell me the exact Android AVD used ---show screen shot and the version of the SDK used in development (exact version --if google api,etc. level)
- Upload all files above to blackboard project. MUST KEEP THESE FILENAMES.
Evaluation
-
the score will be the average of the student evaluations (the instructor reserves the right to adjust any very erroneous evaluations). Note I will assign per student --but, as some students in a group I will collect them for the group in general and that is the average you will get.
-
you will get 0 on the 30 points for evaluating if you do not evaluate ALL your fellow classmates (missing 1 still means a 0).
Fellow Student Evaluations
-
You will be given up to 30 points for an evaluation of your fellow students work. You are assessed on how well you have done at evaluating a fellow student.
- You will be given a set of student's work to evaluate
- HOW TO Create a Review
- This is the Fellow Student Evaluation questions you will use for evaluation
- If the instructor requests an paper copy - Put your name and students name on top as:
- STUDENT: the student's name
- REVIEWER: your name
- THEN give a numeric score for EACH line item AND MOST importantly add comments under each line item add the following items:
- A. SYNOPSIS of LINE ITEM: synopsis in english of what the student did on line item. If it doesn't work, try to give fellow student tips as to why this might be.
- B. CRITIQUE of LINE ITEM: tell student how well they did in English- think about understandability/readability, code reuse, good OOP standards as appropriate (encapsulation, inheritance, construction, appropriate methods, class variables), code efficiency. If item didn't work tell how much was implemented 10% or 50%, etc. and what was not done. If item did work tell how might improve.
- HOW TO Post your Review (turn it in)
- To keep a record (better than email) I want you to post your Peer Reviews for Project 3 to blackboard as discussed below.
SO YOU DON"T need to email me just post as discussed below.
1) Go to Blackboard ->DiscussionBoard->Project3-peer reviews
2) FOR EACH student you are reviewing make a SEPARATE posting titled "Review of LASTNAME" where lastname is the last name of
the student you are reviewing.
Deliverables
PUT ALL OF THE BELOW into a single ZIP file and Upload all files above to blackboard discussion board -> Project 3- Turn IN.
- CodeWorks.doc: contains the following components:
- A: Description- give a detailed description of how your system works including:
- A.1) List of Classes: with brief description of purpose, discuss any data structures/algorithms used.
- A.2) State of System: a description of what parts are or are not working ---give details. If your system is NOT working and you do not show screenshots of how it is failing and show you have through screen shots tried to insert breakpoints and done debugging you will have points taken off.
- B: URL: Posting of JavaDoc code to your server account. Turn in URL to website. Every class, its variables and methods MUST be documented/described --not just listed.
- C: UML/Design: contains the following
- C.1) UML Class Hierarchy Diagram: showing Hierarchy and Cardinality and Object Associations for this project.
- D: Working Screenshots: Printout showing your Application working (capture screen dumps into a word document and printout) for the following cases:
- D.1) Work Instance 1: Loading of Application
- D.2) Work Instance 2: Using it step 1
- D.3) Work Intsance 3: using it step 2 (number of different steps in using the application with vary for each application)
- D.4) Work Instance 4: using it step 3
- D.5) Work Instance 5: using it step 4
- D.6+++) give more work instances as necessary to demonstrate user fully using the application.
- E: URL to Youtube Demonstration of appYoutube video of application working --all features must be exercised. IMPORTANT: first part of video should show a piece of paper having the following components: NOTE it is crticial you make this YouTube, yo must make it unlisted (not private) or public and GIVE THE URL.
- App Name & Name of ALL team members
- COMPLETION: yes or no --and if NO --what is not working or not implemented---I WILL LOWER YOUR GRADE IF YOU DO NOT HAVE THIS INFORMATION IN DETAIL
- Demo of app working --all features.
- Code Android Studio Project Directory (and all contents)
- Specifications.txt you must tell me the exact Android SDK used ---show screen shot and the version of the SDK used in development (exact version --if google api,etc. level). If you used ANY special 3rd party packages you must describe step-by-step how to get these package(s).