Http.begin function is making my ui slow and laggy

The HttpClient library you’re using seems to have simple functions that would take more time than your GUI refresh-time, so it seems the only option is running it in different thread. You said you created another loop for the Http handling. I guess you’ve put it in a place where it never runs (you can check it by serial debugging).
If in your Arduino project you don’t have threads you can possibly utilize the fact if the ‘loop()’ is handled by a hardware interrupt: I can imagine a working scenario where you have a ‘while’ loop (with some delay() if needed) in the ‘main()’ function that is handling the Http stuff, while you have the GUI in the ‘loop()’ that is probably a timed interrupt. I guess it doesn’t matter if the GUI update (lv_timer_handler) periodically interrupts the Http functions which are not synchronous and timed less strictly. So summarizing: Try having Http stuff into a while() function of main(), GUI update stuff into loop() as normally…