keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
368 stars 102 forks source link

feat(web): optimization via lazy construction of OSK layers ⏩ #11264

Open jahorton opened 2 weeks ago

jahorton commented 2 weeks ago

Continues from #11263, addressing part of #11166.

One particularly easy way to load and display the OSK more quickly is to simply... not make the parts you don't need yet. We can do just-in-time (JIT) construction of OSK layers when they're needed.

While the default layer is pretty much always needed, and some keyboards will sometimes start in one or two other layers... a large number of keyboards have extra layers that can wait.

As there's one more followup on this set of PRs...

@keymanapp-test-bot skip

keymanapp-test-bot[bot] commented 2 weeks ago

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

jahorton commented 2 weeks ago

Current build-failure cause:

15:26:42   renderer_core.ts(181,54): error TS2341: Property 'layers' is private and only accessible within class 'OSKLayerGroup'.

Right, some of the tools will want access to that.