How to make better screen update without delay

I think you mean:

void updateScreen() {
unsigned long currentTime = millis();
static unsigned long previousTime = 0;
const unsigned long interval = 500;  // Every half second
if (currentTime - previousTime >= interval) {
    previousTime += interval;
    printScreen();
  }
}