squeevee / Addle

Pretty little drawing application and image utility
MIT License
3 stars 1 forks source link

Asynchronously loaded libraries #9

Open squeevee opened 4 years ago

squeevee commented 4 years ago

I envision Addle having some features that will need to be loaded before the UI can be shown -- for example the basic concepts, services, presenters, and tools. It wouldn't make sense to have a UI before the program has access to these features, because the UI couldn't do anything until they are loaded. (and indeed the application service directs the creation of the UI). These concepts will constitute the core Addle library.

And then, there will be some features that can become operational after the UI is already loaded and functional. Such features could possibly have large dependencies (for example, formats requiring specialized libraries), or intensive initialization routines (for example, plugins running in an interpreted language environment). These features would be provided by an extras library, or by plugins, and they should be loaded asynchronously so not to delay the user's access to core features.

The features that will actually warrant this behavior are not currently priorities for the project. However, this will have a non-trivial impact on some low-level aspects of Addle's design, so this should be tackled as part of the pilot implementation.