Best practice to 'separate' my data and the data from the user in SwiftUI

Need advice: best way to 'separate' my data and the user data from the user in SwiftUI.

For example: I am providing a book database, and a user can add notes in it. When I update the app with new functions and new books, the notes from the user should not get lost.

In my learning process I think to use JSON for the books and Core Data for the notes.

What is the best practice? Any publication or course?