How can I optimize the user experience and application fluency when I am, for example, reading data from Firebase Database or even downloading Files from Storage? Using runnable's to handle processes or are there other more efficient ways to do this?