First thing I would recommend is finding three friends. Order them in terms of transigence: let’s say Alice is the most easygoing, Barbara is a little harder to convince, and Carol is downright stubborn as a mule.
Now have a conversation with each of them in turn, trying to convince them that your life would be better off with SQLite in this app. Only if you can get Carol to agree should you proceed.
SQLite is a PITA to work with. Ionic has done a great job of making it appear seamless whether it’s involved or not, but that arguably ironically makes the problem worse.
There are two main reasons I’d like to try to talk you out of using SQLite:
-
It only works on device, so you will either have to do all further development and testing in a device or simulator - no more lightweight desktop browser live reload environment - or put in a bunch of extra work mocking things out, and then worry that you still haven’t tested the SQLite stuff until you get on device.
-
It’s complete overkill for 90% of apps. If your app (a) needs to be doing complex joins of data that has to be organized in relational tables that (b) has to be completely functional in an offline environment, then SQLite is likely going to be worthwhile. If you (and your friend Carol) aren’t rock-solidly convinced of both of those conditions, steer clear.
I would first try implementing whatever it is that you’re trying to do using Ionic Storage. It will work using IndexedDB in any environment - including PWA and development live reload. Only if the fundamental limitation of the NoSQL key-value storage paradigm becomes a deal-breaker would I get SQLite involved.