This is perfectly normal - at least it can easily happen given som datasets and how that data is modelled in the app.
I researched this some years ago and managed to create apps that expanded a factor of 70-80 (and more in some cases) when loaded into RAM.
Admittedly the data loaded into those apps was tailored to be small on disk and expand massively when loaded into memory, but that experiment proved the point that size on disk and in memory can be two very different things.
The technical reason why this happen is slightly complex (this is is really the core of Qlik's secret sauce - what makes the Sense and QlikView experience so unique), but high cardinality data is usually a very contributing factor.
I.e. fields in the data that contain lots of different, unique values that cannot be indexed in a space-efficient manner.
If you have many such fields in the dataset you are likely to see a "memory explosion" when the app is loaded from disk.
The way I usually tackle these things is to ask myself if all data in the app really needs to be indexed.
For example, maybe only some dimensional fields need to be indexed, while those high cardinality facts/measurement fields don't need to be indexed. There is usually no (or little) need to be able to do full text searching on those fields.
Please mark the post as a solution if it provided you with a solution to the topic at hand. Thanks!