It's not icons and graphics; lots of icons are available in 512 x 512 pixels and would look fine at any resolution. It's code that assumes everything is a whole number of pixels. Someone writes code to draw ten horizontal black lines, each one pixel wide, one pixel apart. Now increase the dpi by 25%. You want ten horizontal lines, each 1.25 pixel wide, 1.25 pixel apart. And that isn't possible (you can use anti-aliasing, but then it looks rubbish). The app developer has to take care of this properly, and they don't.