Saving Data on Android

Learn various ways to persist data in your app: SharedPreferences, saving data to files, using SQLite, and using the Room library from Google. By Joe Howard.

Login to leave a rating/review
Save for later
Share

Part 1: SharedPreferences

1
Toggle description

Find out what's covered in our Saving Data on Android video tutorial series: SharedPrefences, saving to files, SQLite, and Room.

Toggle description

Download the starter app, build it in Android Studio, and review the existing app code. Review the Model-View-Presenter (MVP) and Repository patterns.

Toggle description

Learn about use cases for SharedPreferences, see how to access the default SharedPreferences, and also see how to setup a custom SharedPreferences.

Toggle description

Learn how to save data into SharedPreferences, and how to read the data back in.

Practice what you've learned so far to save data into SharedPreferences and then read the data back in.

Toggle description

Switch from saving the app data from an in-memory repository into a repository backed by SharedPreferences. Learn about the limitations of SharedPreferences.

Toggle description

Practice some more with the Repository pattern by deleting data from the SharedPreferences repository.

Conclusion 0:53
Toggle description

Let's review what you've covered on SharedPreferences and the Repository pattern in this first part on Saving Data on Android, and then discuss what's next.

Part 2: Saving to Files

Toggle description

We'll survey various issues with writing files, including internal vs. external storage, permissions, thread concerns, and checking for disk space.

Toggle description

Learn how to write files to internal storage. You'll use Gson to convert the app data and peer into the Android file system using Device File Explorer.

Toggle description

See how to read files from internal storage using the Java SDK FileInputStream and BufferedReader classes.

Toggle description

Practice what you've learned about saving to internal storage by safeguarding your app against read and write errors.

Toggle description

Switch from using internal storage to external storage for saving the app data, and see how to use adb to pull files from a device.

Toggle description

Update the FileRepository to delete files, using some of the helper functions you've already developed.

Toggle description

Finish the use of the FileRepository for saving app data by practicing what you've learned to delete files.

Conclusion 0:52
Toggle description

Let's review what you learned in this part of the course about saving data into files, reading files, and deleting files, and then discuss what's next.

Part 3: SQLite

Toggle description

You are introduced to SQLite and the concepts of relational databases, including tables, columns, keys, and relationships.

Toggle description

Create a database schema and use SQLiteOpenHelper to create a basic database. See how to use sqlite3 at the command line to review the database schema.

Toggle description

Use ContentValues as a means of writing data into SQLite. See how to use sqlite3 at the command line to query the database.

Toggle description

Practice what you've learned so far about SQLite and ContentValues to write data into the SQLite database.

Toggle description

Use Cursor and and its companion CursorWrapper to read data from the SQLite database and into model objects.

Toggle description

See how to delete data from a SQLite database, and how to guard against SQL injection attacks in your SQL code.

Toggle description

Finish the use of the SQLiteRepository for saving app data by practicing what you've learned to delete files.

Toggle description

Learn about using database versioning and database migrations to handle modifying your database schema after your app has shipped.

Conclusion 0:56
Toggle description

Let's review what you learned about saving data in your app using SQLite, and then discuss what's next.

Part 4: Room

Toggle description

Learn about the Architecture Components from Google, including LiveData, ViewModel, and the data persistence library Room that provides a layer above SQLite.

Architecture 14:22
Toggle description

Review a new architecture of the DataDrop app that uses Model-View-ViewModel (MVVM) instead of MVP, as preparation for working with LiveData and Room.

Toggle description

Learn about the use of Entities and Data-Access-Objects (DAOs), and see how to set them both up using annotations.

Toggle description

See how to create a Room database and how to read from and write data into Room. See also how to use TypeConverters and observe changes to LiveData.

Toggle description

Practice what you've learned about Room by finishing the RoomRepository to handle the delete use cases.

Toggle description

See how to setup relationships in a Room database. Also see how to pre-populate Room data using a RoomDatabase.Callback.

Conclusion 1:37
Toggle description

In this final episode, we'll summarize this final part and the whole course, and then see an overview of data persistence topics that were not covered.