The goal is to create an educational app that quizzes a user about a certain topic. The student should be creative about how to accomplish this. It’s up to the student what the quiz questions will be about and how to present them to the end user. (4 – 10 quiz questions are recommended for a reasonable scope of the app).
- Because I may replicate this for my students at Latinx Code, I decided to make the quiz geared towards those who are beginning to learn Java, much like myself.
- After testing the layout on a friend, I decided upon the current layout for the checkboxes.
- I edited the styles.xml file to reflect the color palette I made for Latinx Code.
- Planning an app app design before coding.
- Taking an app layout from drawing/wireframe to XML code.
- Creating, positioning, and styling views.
- Creating interactivity through button clicks and Java code.
- Commenting and documenting your code.
- App contains 4 – 10 questions, including at least one check box, one radio button, and one text entry.
- Questions are in a variety of formats such as free text response, checkboxes, and radio buttons.
- App includes a button for the user to submit their answers and receive a score.
- The code adheres to all of the following best practices:
- Text sizes are defined in sp
- Lengths are defined in dp
- Padding and margin is used appropriately, such that the views are not crammed up against each other.
- The app includes at least four of the following Views: TextView, ImageView, Button, Checkbox, EditText, LinearLayout, RelativeLayout, ScrollView, RadioButton, RadioGroup.
- The app gracefully handles displaying all the content on screen when rotated. Either by updating the layout, adding a scrollable feature or some other mechanism that adheres to Android development guidelines.
- The code runs without errors.
- Each question has a correct answer.
- Any question which uses radio buttons allows only one to be checked at once.
- The app contains at least one if/else statement
- The grading button displays a toast which accurately displays the results of the quiz.
- The grading logic checks each answer correctly. The app accurately calculates the number of correct answers and does not include incorrect answers in the count.
- All variables, methods, and resource IDs are descriptively named such that another developer reading the code can easily understand their function.
- The code is properly formatted i.e. there are no unnecessary blank lines; there are no unused variables or methods; there is no commented out code.
- The code also has proper indentation when defining variables and methods.
- Android Studio
- Balsamiq Mockups
- Ubuntu 17.10 64-bit
- Tested on Moto X Pure Edition (Android Phone)