Project 4: Using an SQLite database

Due: Monday, October 22, 2018

Specification

Make a list manager program that stores the list items in an SQLite database. Allow the user to view all of the list items, add items to the list (and the database), delete items from the list (and the database), and execute a query to see a subset of the list items from the database. Your app should include a detail view that displays a few attributes of each list item.

Your query should allow the user to specify a value that determines what list items will be displayed. For example, a list of to-do items might allow the user to specify a priority, like HIGH, and only show items with that priority. A list of shopping items might allow the user to specify a section of a store, like PRODUCE.

When I grade your program I need to be able to easily tell if the query is working correctly. Make sure that the field(s) used to select items can be entered for new items and are displayed in the list view and/or the detail view.

When the application runs the first time, the database should have enough records in it for interesting (non-trivial) queries.

Since this project builds on the previous project, you might run into problems with this project if you haven't finished Project 3. If you are in that situation, please talk to me so that we can work it out.

You can find links to web pages about SQL, SQLite, and using SQLite in iOS and Android apps here: databases.html

Android

Our Android textbook has good information about using SQLite on Android. See Chapter 14. You can also find helpful information at https://developer.android.com/training/data-storage/sqlite.html

iOS

The iOS Big Nerd Ranch Guide doesn't have information about using SQLite, but you can check the iOS section of my database notes page for options for using SQLite in iOS apps.

You can use Core Data instead of using SQLite directly if you'd like, but you do, you must use NSPredicate and NSFetchRequest and it needs have an underlying SQLite database.

Please don't use Carthage, CocoaPods, or any other libraries or framework that have to be installed before your app can be built.

Turn in

Put your complete project directory, including source files and resource files in a zip file. Turn in your zip file on Canvas.

Points
10 Database is populated when program starts
20 Program stores list items in an SQLite database
20 Program allows user to add new items to the list and database
20 Program allows user to delete items from the list and database
20 Program uses a query to display a subset of the items in the list
10 Query uses a user-specified value to determine which items should be retrieved
100 TOTAL