Alex Styl
11/14/2025, 8:25 AMian.shaun.thomas
11/14/2025, 8:26 AMAlex Styl
11/14/2025, 8:27 AMian.shaun.thomas
11/14/2025, 8:27 AMian.shaun.thomas
11/14/2025, 8:28 AMian.shaun.thomas
11/14/2025, 8:29 AMAlex Styl
11/14/2025, 8:30 AMAlex Styl
11/14/2025, 8:31 AMian.shaun.thomas
11/14/2025, 8:32 AMAlbertas
11/14/2025, 8:37 AMTepes Lucian Victor
11/14/2025, 9:10 AMAlex Styl
11/14/2025, 9:33 AMAlex Styl
11/14/2025, 9:33 AMVidmantas Kerbelis
11/14/2025, 11:10 AMif (preloaded) { App() }. So, I just skip the if - works just fine, but leave the preloading itself in a LaunchedEffect. Of course, if an emoji needs to be shown while still not loaded - it will be shown as [] . In my case though Emojis are not something that the user would normally immediately get to see somewhere in the app, so it's not a problemAlex Styl
11/14/2025, 12:32 PMI simply do not block the app's rendering until the fonts are preloadedyou can't. that's what we are discussing. the app freezes during preloading large sized fonts because js is single threaded
Oleksandr Karpovich [JB]
11/14/2025, 1:07 PMfetch operation asynchronously - it doesn't block the main thread. Otherwise slow internet would make the websites and apps unusable.
I'd suggest to try profiling the app - https://developer.chrome.com/docs/devtools/performance#record and find what blocks the thread.Alex Styl
11/14/2025, 1:09 PMfontFamilyResolver.preload(fontFamily) is called with a large font (in this case the emojis 25mb)Oleksandr Karpovich [JB]
11/14/2025, 1:09 PMAlbertas
11/14/2025, 1:10 PMOleksandr Karpovich [JB]
11/14/2025, 1:11 PMAlex Styl
11/14/2025, 1:11 PMVidmantas Kerbelis
11/14/2025, 1:18 PMfontFamilyResolver.preload() up until the point your app is initialized w/o said font.
And only then start loading the font and call preload().
I just checked and my web app literally loads, a user can interact with it and only afterwards does the NotoColorEmoji font start to load 🤔 this is what I was suggesting.Alex Styl
11/14/2025, 1:27 PM.preload() your app will block if you ask it to load a large file. you cannot work around this (the app is unresponsive until .preload() returns)Vidmantas Kerbelis
11/14/2025, 1:27 PM