I would like to create an app where I could save text, image and audio notes to an offline database(without internet connection) and then show them in a list-like layout. Wouldnt like to save the files to internal storage directly.
Its my first time creating mobile app so I need help in choosing the right database for such use case. Any suggestions?
CodePudding user response:
I think you may be confusing some terms. While you can put all sorts of media in a database. Sometimes it not the most practical solution. It sounds like you might be thinking of file storage, not a database. Further more, the files have to live somewhere, if not on a external server/database, than they will have to reside locally on the device. Your app will not have a local database service running just so that it can store media files. This would be a lot of overhead and take up a lot of resources.
CodePudding user response:
the first thing to know: the database in android is SQLite, So any other offline database it's just a layer for managing the SQLite database, and It only saves numeric and text data, but you can save any other type like image, audio, array...Ect by creating convertors to save it in the database.
E.g: You can save BitMap
-Image type- by converting it to ByteArray
-List of 0s and 1s-, then converting the ByteArray
to String
-Default text type-, then you can save it to the database, and when you want to select the value, just convert by the opposite (String
-> ByteArray
-> BitMap
), So the trick here is to know how to convert between the types.
Now the answer: the best offline-database is RoomDatabase, the fastest way to create and manage SQLite database, with Room you don't need to build an SQLite database from the scratch, it's going to build it for you, and has a great way to create converters. but for you as a beginner, standard SQLite is more than enough, if you will see RoomDB more difficult.