Shorr 22-23 Android Dev-Per 2 Assignments

Upcoming Assignments RSS Feed

No upcoming assignments.

Past Assignments

Due:

Final Project Submission in Google Classroom

Final Project Submission

1. A link to the github repository with the final project. (Make sure it is PUBLIC or if private, you have invited gshorrSPHS).
2. A gif made using GIPHY capture showing the basic functionality of the app.
3. If in a group, a brief breakdown of what each member did to contribute.
Created by Garrett Shorr: Thursday, May 25 8:50 AM

Due:

Database Submission in Google Classroom

Database Submission

Using Giphy Capture, make a gif showing all 4 CRUD functions in your app.

1. Load the backendless Loan table in a browser window.
2. Put your emulator over that window so that the Name column of the person table is visible and expand the green recording area so that it shows your emulator, that name column, and your username from you being logged into Backendless in the browser.
3. Login to your app so that you have the LoanListActivity showing. This demonstrates the Read functionality.
4. Start the recording.
5. Demo Create: click the floating action button to bring up the detail activity with a new object. Click the edit menu item and save immediately.
6. Demo Delete: click the item you just created in your list activity. Click the delete button. 
7. Demo Update: click any person that already exists. Click the edit menu item. Change the name. Click the save button. Click the back button in the bottom left corner of the device to return to the list.
8. Stop the recording. 
9. Save the recording as an MP4. You can do this by selecting the recording in the bottom left area below the green recording area, then click save as and change the type from gif to mp4. Name it CRUD_{YourName}.mp4.
10. Upload your video here.

A demo video is attached.
Created by Garrett Shorr: Tuesday, April 11 11:10 AM

Due:

COVID API Submission in Google Classroom

COVID API Submission

Checklist:
* API call works and the list of CountyData object has fields for county, state, cdcTransmissionLevel, actuals, metrics, lastUpdatedDate, weeklyNewCasesPer100k, testPositivityRatio, cases, and newCases
* The recyclerView works and displays the County Name, weeklyNewCasesPer100k, and lastUpdatedDate for every county.
* The recyclerView has changed the colors of either the county name or the weeklyNewCasesPer100k to match the cdcTransmissionLevel (red for 3 (high), orange for 2 (substantial), yellow for 1 (moderate), blue for 0 (low))
* The recyclerView has added the appropriately colored warning icon attached to the county name textview for counties in moderate to high transmission levels.
* the menu has options to sort by county name and sort by transmission level descending (then by county ascending) in the options 3 vertical dots section. There is also a clickable item in the menu to show the dialog giving a brief legend of what the different colors & levels mean.
* clicking on an item will take you to the CovidDetailActivity, transferring the the entire parcelable CountyData object through with the intent.
* the transmission level colors are added as constants to the colors.xml file in the res/values folder
1. Take a screenshot of the list in default alphabetical order.
2. Take a screenshot of the list sorted by transmission level first, then county alphabetical order second.
3. Print the following files to PDF:
CountyAdapter
CountyListActivity
CountyDetailActivity
CovidDataService
RetrofitHelper
colors.xml
menu_county_data.xml (or whatever you called the menu in the CountyListActivity)
activity_county_list.xml
item_county.xml (or whatever you called the layout that the recyclerview uses)
4. Add the screenshots to the pdf using preview.

Submit the combined pdf file.
Created by Garrett Shorr: Friday, February 10 9:43 AM

Due:

Heroes Submission in Google Classroom

Heroes Submission

1. Add one more menu item to sort by description length (shortest description to longest)

2. Take a screenshot of the list activity with the options menu open
(click on the options menu, then cmd+shift+4 to screenshot)

3. Take a screenshot of the detail activity (pick any hero you want)

4. Print the Hero, HeroAdapter, HeroDetailActivity, HeroListActivity, activity_hero_detail.xml, activity_hero_list.xml, item_hero.xml,
herolist_menu.xml and save as pdf. Remember to make the font size 8 and the margins 0.25inches.

5. Upload all those things to the submission assignment
Created by Garrett Shorr: Wednesday, January 25 12:45 PM

Due:

Fall Final Experience in Google Classroom

Fall Final Experience

Meet link: https://meet.google.com/dgz-ieuc-wbd


Submit the doc you work on during class. I'll explain as we go what needs to be on it.
Created by Garrett Shorr: Tuesday, December 20 11:39 AM

Due:

Unit Tests Submission in Google Classroom

Unit Tests Submission

Print the following files:

RegistrationUtil.kt
RegistrationUtilTest.kt
Make sure that you have in your Unit Test Class:

 // Make tests for failures of
        // min length of 8 chars
        // at least one digit   (make sure it's at least 8 and has a capital letter)
        // at least on capital letter
    // Make a test for good matching passwords working

    // Make the tests for the other functions in the Util class with
    // the common failures and 1 success for each


Submit those as a pdf. Remember to use the font size 8 and 0.25" margins. See attached images.
Created by Garrett Shorr: Tuesday, December 13 5:10 PM

Due:

Submission in Google Classroom

Submission

Requirements:
View Binding is enabled and you are using the binding notation when referencing widgets. Example:
binding.buttonMainSong.setOnClicklistener { }
noteMap is implemented
playSong is a suspend function
a coroutine is used to launch the playSong function
Submit the following:
A pdf of your MainActivity done through the print menu item.
Created by Garrett Shorr: Tuesday, December 13 2:03 PM

Due:

Submission in Google Classroom

Submission

1. Screenshot of the activity_main.xml layout (with special instructions, see video)

2. print to pdf the activity_main.xml
Created by Garrett Shorr: Tuesday, December 13 2:03 PM

Due:

Soundboard Intro in Google Classroom

Soundboard Intro

Download and unzip the SoundboardStarter project and open it in Android Studio. Follow along with the questions in the google doc and answer them in a different color.


I've attached a zip with sounds for a full piano, if you want more than the 2 octaves I've provided. They are listed by key number and you'll have to figure out which key number matches up with each note.

The only thing that is due is the 4 questions.
Created by Garrett Shorr: Tuesday, December 13 2:03 PM

Due:

Quiz App Submission in Google Classroom

Quiz App Submission

Submission Checklist:
Quiz works and completes without crashing

Score is calculated correctly

Changing the phone language to your chosen second language fully translates the entire app to that language

No hardcoded strings--all strings are in strings.xml

All quiz logic is handled by the Quiz class (i.e. things like score variables are stored in the Quiz class and not the MainActivity)

Quiz & Question classes have no knowledge of Android-specific functions


Print the following files to a pdf:
MainActivity.kt
Quiz.kt
Question.kt
activity_main.xml (i forgot to mention this in the video)
both question.json files 
both strings.xml files
Print using the following settings:
JetBrains Mono font size 8
Margins of 0.25 all around
Color Printing
Save as a pdf (you can open in preview first to see that the settings were correct, but then you'll have to open the print dialog again from within preivew and save as pdf from there)
Created by Garrett Shorr: Tuesday, December 13 5:10 PM

Due:

Code Review in Google Classroom

Code Review

Go through the checklist items below and respond to each prompt. If there is a problem, note the class or xml file along with the line number of the issue. On your Google Doc, note whose code you are reviewing.

Code Formatting - Code should be formatted such that it is easy to read and follow. Naming conventions should be followed to help with understanding. 

Open firefox, sign in, and make a google doc. At the top of the doc, write your name and whose code you are reviewing.

1. Is everything aligned and indented appropriately? When a new code block starts or ends, is it obvious?

2. No one should have to scroll horizontally to see a full line of code. Are all lines shorter than the vertical guideline provided for you by the code editor?

3. Has all commented-out code been removed? Commented-out code should never be committed to the repository. You can retrieve that old commented code using the version control system and looking at prior commits.

4. Are all naming conventions being followed? 

All classes are in PascalCase?
All methods and variables in camelCase?
All xml files in snake_case?
All xml identifiers in camelSnake_case?
All identifiers are descriptive?
Regarding identifier descriptiveness, for example, activities all follow the format PurposeActivity, fragments are PurposeFragment, and class and variable names are descriptive of what they are intended to do or store--no x, y, z, etc randomly popping up in your code. XML ids follow the what_where_why naming scheme. Wired widget variable names include their type and purpose (e.g. buttonSubmit or submitButton).


5. Is the business logic kept completely separate from the activity in a plain kotlin object? Things like score or the current index of the current question or whether there are more questions should be taken care of by variables or functions in the Quiz class.


6. Are there no hardcoded strings in the project? Check the xml files and the plain kotlin object. Everything appearing in a button, textview, or toast should be represented in the strings.xml file.


Leave a copy of the feedback in a textedit for the person. Turn in the google doc once complete.

Created by Garrett Shorr: Tuesday, December 13 5:10 PM

Due:

Kotlin Data Classes & JSON in Google Classroom

Kotlin Data Classes & JSON

One thing programmers often do is learn by reading through tutorials. Use the various resources provided in the document to find the answers to the questions and use a different color when answering.


Will probably be due near the end of class on Thursday. You can work in groups but each turn in an individual document.
Created by Garrett Shorr: Tuesday, December 13 2:03 PM

Due:

Logging & Lifecycle in Google Classroom

Logging & Lifecycle

Due Monday during class.

The bolded sections of the attached document have things for you to write and complete. The non-bolded sections have instructions for you to follow but don't need to have written answers for.


Complete the sections in a different font color so it's easy to see your work inline.


In the video: intro to the stopwatch app, how to use XML and add a chronometer widget, how to override a function through autocomplete, how to make a static constant in kotlin through a companion object.
Created by Garrett Shorr: Tuesday, December 13 2:03 PM

Due:

Useless Machine Wrap-Up in Google Classroom

Useless Machine Wrap-Up

Use a different color font to answer the questions directly inline with your copy of the document.
Created by Garrett Shorr: Tuesday, December 13 2:03 PM

Due:

BiggerNumber Solution Comparison in Google Classroom

BiggerNumber Solution Comparison

In a google doc, answer the following questions.


Compare your code to the code I've provided and answer the following questions:


1. Do you notice anything different about the content of the onClickListeners?

2. In the code provided, what do you notice about the organization of all the findViewById method calls?

3. In the code provided, where do you notice the logic is for comparing numbers and keeping score?

4. What advantages might there be for separating the game logic from the UI logic?
Created by Garrett Shorr: Tuesday, December 13 2:03 PM

Due:

Syllabus in Google Classroom

Syllabus

Please bring back the signed back page of the syllabus next class.
Created by Garrett Shorr: Tuesday, December 13 2:03 PM

Due:

Kotlin vs Java? in Google Classroom

Kotlin vs Java?

What are 5 differences that you see in the Main Activity between Kotlin and Java?










1. No semi-colons

2. override is now a keyword and not an annotation

3. No public/private written on MainActivity -- default class visibility is public

4. extends --> :

5. Specify the constructor you want when extending so () in kotlin line

6. in Kotlin: name: Type for parameters

7. ? in the data type means it is NULLABLE. it CAN be null.

no ?, not null

8. kotlin has the fun keyword to say something is a function
Created by Garrett Shorr: Tuesday, December 13 5:10 PM

Due:

First Day Survey in Google Classroom

First Day Survey

Created by Garrett Shorr: Tuesday, December 13 2:03 PM