Question
Android Mini-App Description For your Android Mini App, you are going to build a simple TWU Bucket List app. Users will be able to open
Android Mini-App Description
For your Android Mini App, you are going to build a simple TWU Bucket List app.
Users will be able to open this app and add items to their bucket list of things that they want to do before graduation. Each item will have a name, description, latitude, longitude, and a way to record whether it has been completed or not.
Since we are early in the semester and have not yet covered data storage, the app should pre-populate with just a few example items of your choice (such as graduate on time etc.) at start up, work as intended while the app is in use, but it does not have to remember the state of the list from run to run (does not have to save new items added in the list after the app closes up).
For this assignment you do not need an Android Mobile Device (phone or tablet), testing on the Android Emulator (part of Android Studio) is sufficient and preferred.
This is a group assignment. You will work with a partner to complete this activity.
Begin by signing up for a Android Mini-app group in the People section of Canvas. The maximum size for each group is 2 people. In some cases I may allow a group of 3, but the expectations for a group of 3 will be higher.
If you choose to work alone, understand that the expectations and requirements for the project will not change.
Once you have formed your group in Canvas, one group member must create a group in GitLab and add their partner and create a new project.
Each group must add me as a Maintainer to their project.
Once you have created your GitLab project and added your instructor as a maintainer, begin working on the assignment.
Android Studio Config for Activity:
- Name your APP appropriately. Do not leave it as the default or "My First App". Same with Package name, it should not be "example.example" or "example.myfirstapp". Use something descriptive and creative.
- for this class we will use Android 9 - 10. Do not build for Android 11. Next to the minimum API level field you can see approximately what percentage of devices your app would run on. Notice Android 11 is less than 1%. while Android 4 (Ice Cream) is 100%. This would include many older devices used throughout the world. Instead we are going to focus on an older version like 9 or 10, that has a larger user base. You should use level 28 or 29 for this class.
- Select your save location.
- Your Language should be set to Java
- Press Finish and Android Studio will generate layout and activity.
Your submitted app should use the AndroidX library not appCpompat-v7 or v4 support libraries. Apps not using androidx library will receive a maximum grade of 50%.
Requirements and Specifications
Your app must meet the following requirements and specifications. Deviating from these will result in a reduced grade.
The app shall be made up of three activity screens - a list screen, a create new item screen, and an item information screen. More detailed information about each activity is found below.
You will (most likely) have five .java files for this assignment:
- BucketListActivity.java - an Activity for your main list
- AddItemActivity.java - an Activity that lets a user add an item to the list
- EditItemActivity.java - an Activity that lets a user edit an item already on the list and is pre-populated on launch
- BucketItem.java - the model representing a single bucket list item
- BucketListAdapter.java - the adapter class that handles how a BucketItem appears in the RecyclerView
You will also have the associated layout .xml files that go with these.
List Activity
- When the app starts up, the list screen should be the first one displayed.
- To make the list of bucket list items, you must use a RecyclerView. See the Name Generator example code from class on how to set this up with a data class and an adapter class.
- There should be a floating action button in the lower right corner with an icon indicating the ability to add something to the list.
- The items in the list should be in order from soonest due date to latest.
- Tapping on any item should bring up an Edit Item activity (see that Activity for more info).
- Tapping on the checkbox next to an item should flip it's done / not done status.
- Tapping on the floating action button should bring up the Add Item activity (see that Activity for more info). To launch this activity, you should use the startActivityForResult() method. Upon completion of the Add Item activity, you should use onActivityResult(int requestCode, int resultCode, Intent data) to parse the result and add the new item to the ArrayList in this activity.
Add Item Activity
- The screen should have a back arrow in the upper left corner, which cancels the add. This should be done using a custom Toolbar.
- The screen should have fields for each of the parts of a bucket list item, along with a DatePicker for the due date.
- The latitude and longitude fields MUST be numeric input only.
- There should be a save button at the bottom of the screen.
- The activity should send the info from the fields back as extra data fields in the return intent.
Item Info Activity
- The screen should look the same as the Add Item activity, but with the information pre-populated with the information from the item you tapped.
- Any changes made here should be reflected back in the original item.
- If the due date changes, you should re-sort the the list.
BucketItem
- This class should have all the fields for a bucket list item.
- This class should have a compareTo() so you can determine which items come before others in an ArrayList
- This class should have a static method called createInitialBucketList() that creates the initial, hard-coded bucket list ArrayList and returns it. This will be called in the onCreate() in the BucketListActivity.
BucketListAdapter
- Handle the tapping of the item name for launching the edit item activity and tapping the checkbox here in the onBindViewHolder() method.
Milestone Submission
You should have at least the main list screen appearing, with the floating action button and a pre-populated list, plus one other piece of basic functionality of your choice.
Grading Rubric:
Out of 20 possible points:
- 5 pts: App can launch properly
- 5 pts: The list is pre-populated and a floating action button appears
- 5 pts: Some other basic functionality is apparent
- 5 pts: Doesnt crash / looks reasonable (you must modify the theme. Apps that use the default Android material theme will receive a maximum of 2.5/5)
Submit:
All code must be kept in the GitLab repo you created as a part of your partner creation process above. We will do a checkout from GitLab of the latest push to the repo before the 11:55 PM deadline.
Create a README.md file in the root of your repo that describes your progress and what functionality you added.
Final Submission
You should have all required features completed plus a project report in your README.md file in your repo. Do not delete your earlier progress report - just leave it at the bottom of the full README.md file.
Assignment Report:
Your documentation must include:
- Team member list
- Device Name
- Project/App Title
- Basic instructions on usage
- Any special info we need to run the app
- Lessons learned (at least half a page)
Grading Rubric:
Android Final Build (out of 100):
/5 pts: App can launch properly and a screen with a pre-populated, sorted list appears /10 pts: Tapping on the floating action button launches the Add New Item activity /5 pts: The Add New Item activity has all appropriate fields /15 pts: The new item is put into the list in the correct location after saving /10 pts: Tapping on the check box registers the item as complete and it moves to the bottom of the list /5 pts: Tapping on the name of an item opens the Edit Item activity /10 pts: The Edit Item activity is pre-populated with all appropriate data /15 pts: Changes made in the Edit Item activity are properly reflected back in the list /10 pts: The back arrows in the upper left corner work properly for both Add New Item and Edit Item /5 pts: App does not crash on rotate (fully resetting the entire app on rotate: -2) /5 pts: Design / Style / Appearance / Usability /5 pts: Documentation / Report
Submit:
All code must be kept in the GitLab repo you created as a part of your partner creation process above. We will do a checkout from GitLab of the latest push to the repo before the 11:55 PM deadline. Please make sure that the latest version of your report is in the README.md file in the root of your repository.
Please create an app using Android Studio and provide me with the layout files and the java files as well.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started