david-shao / codepath-app0

ToDo app for pre-submission
0 stars 0 forks source link

Pre-work - ToDo

ToDo is an android app that allows building a todo list and basic todo items management functionality including adding new items, editing and deleting an existing item.

Submitted by: David Zhuohao Shao

Time spent: 20 hours spent in total

User Stories

The following required functionality is completed:

The following optional features are implemented:

The following additional features are implemented:

Video Walkthrough

Here's a walkthrough of implemented user stories (in reverse chronological order):

With styling improvements, moved date picker to its own dialog fragment, pressing enter adds item, added checkboxes, and added sorting:

Optional Features Demo

With priority support and using a DialogFragment for editing:

Optional Features Demo

With due date support:

Optional Features Demo

With SQLite and Custom Adapter for ListView:

Optional Features Demo

Basic:

Required Functionality Demo

GIFs created with LiceCap.

Notes

Figuring out how to see content in the File Explorer in Android Device Monitor required some research. Apparently when using a virtual device with API 25 it doesn't show anything. I had to change the device to use API 23 for it to work properly. I had a lot of trouble modifying table columns after I started using FlowDB and decided to update my TodoItem model. I tried using migrations but couldn't get it to work. Eventually decided it was faster to simply uninstall the app and start with fresh database every time I had to change the model, though I realize this would not work for an app that's live in production.

License

Copyright 2017 David Zhuohao Shao

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.