A good place to orient yourself to all the reasons we built Finsemble is our whitepaper: The Future of Desktop Applications. You should also read Finsemble Motivations, which is a higher-level overview of the framework.
To try out a Finsemble application on a Windows desktop, Beta users will find in their "Getting Started" email a link to the ChartIQ Finsemble Demo (although Finsemble is platform independent, both the Beta and Demo have only been verified on Windows).
The rest of this "Getting Started" tutorial is oriented to developers wanting to try out Finsemble.
Below explains how Finsemble is packaged.
- A seed project is provided to quickly get started with Finsemble. It includes examples to run, modify, and cut-and-paste from. The seed project also serves as a valid template for building your own Finsemble application.
- The Finsemble core is a NPM module kept in a private NPM repository. The seed project is already set up to reference the private NPM module (although, an NPM login is required for Beta users).
The following diagram illustrates the overall packaging:
- The seed project requires (i.e., imports) the core Finsemble module.
- Upon startup, the Finsemble core looks at configs inside of the seed project to see which components are spawnable.
- After startup, the seed-project and the core module function as a unified application (communicating though the underlying Event Router microservice). Getting Finsemble and Understanding Application Startup cover all you need to know for installing and running the seed project. You may want to also read about The Finsemble Build Process to understand what's going on when you type
npm run devinto your terminal.
After installing Finsemble, developers should continue with the following tutorials:
- Build an App Step By Step
- Understanding UI Components
- Understanding Workspaces
- Understanding Application Startup
The Finsemble CLI also provides a set of "getting started" commands, but building code stubs with the proper configuration settings.
Debugging Finsemble explains the pragmatic aspects of debugging under Finsemble, which is very similar to debugging under Chrome (with a few special cases).
A few special tutorials also walk the developer though the use of specific client APIs:
The following client APIs and microservices are supported in the beta release.
|Finsemble Client API||Description|
|Chat Client||Provides multi-window Slack chat, through the Chat Connector microservice.|
|Dialog Manager Client||Supports spawning user dialogs from any component. Also receives user input from a dialog.|
|Launcher Client||Controls the starting and stopping of all components though the Launcher microservice.|
|Linker Client||Dynamically links and updates common data elements shared between components, though the Linker microservice.|
|Workspace Client||Manages groups of Finsemble windows, including where they are positioned, though the Workspace microservice.|
|Router Client||Routes event messages between components and microservices, through the Router microservice|
|Human Interface||Supports global intercepts for all human interactions (e.g., hot keys, button presses, gestures). This is very limited in the initial version -- corresponding microservice needed for broader functionality has not yet been implemented.|
|Storage Client||Provides storage across all components and services, though the Storage microservice.|
|Window Client||Enables a window's state to be controlled, including window size and position|
|Base Client||Common base functions shared across all Finsemble components|
Once again, Finsemble is built to be extended, but Finsemble's roadmap is a work in progress. A diversity of features and new APIs are now on the drawing board, both for our beta release and future releases. We welcome feedback as we continue to evolve.