{"id":3308,"date":"2019-07-02T10:56:05","date_gmt":"2019-07-02T09:56:05","guid":{"rendered":"https:\/\/sandbox.weareadaptive.com\/?p=3308\/"},"modified":"2020-11-18T14:52:16","modified_gmt":"2020-11-18T14:52:16","slug":"reactive-trader-now-runs-finsemble","status":"publish","type":"post","link":"https:\/\/sandbox.weareadaptive.com\/fr\/2019\/07\/02\/reactive-trader-now-runs-finsemble\/","title":{"rendered":"Reactive Trader<sup>\u00ae<\/sup> now runs in Finsemble"},"content":{"rendered":"<h2>Financial applications need space<\/h2>\n<p>One window is not enough anymore for modern, complex financial applications. They span screens and break out of browsers, to provide a multi-window, multi-monitor experience. <a href=\"https:\/\/www.chartiq.com\/finsemble\/\" target=\"_blank\" rel=\"noopener noreferrer\">Finsemble<\/a>, by ChartIQ, allows developers to build such richly functional desktop applications, while using familiar web technologies. In addition to rendering HTML and running javascript, it offers out-of-the-box features such as desktop notifications, application interoperability and window management.<\/p>\n<h2>Integrating Reactive Trader<sup>\u00ae<\/sup> with Finsemble<\/h2>\n<p>Here at Adaptive we love getting hands-on with the latest technology, so we were keen to get our open-source trading application, Reactive Trader<sup>\u00ae<\/sup>, running on the Finsemble platform. The process was straightforward &#8211; within a few hours, we had a working prototype.<br \/>\n<img decoding=\"async\" class=\"HiaYvf-SmKAyb\" draggable=\"false\" src=\"https:\/\/lh3.googleusercontent.com\/1WZXUiQL6T1jndLNmLZqKR6JD-Al6r_6x9QpygnGuysovPhfKaSDHefoO8PFuPRuzBuMk7hhe_7CHu_5vS_msNTxIvhX3PsoyOfZJPFj3yvxk8qbBNVFtd8Ztn0WyrJvciO5-RpH\" \/><\/p>\n<h2>What needed to be done<\/h2>\n<p>First, we requested access to Finsemble\u2019s private repositories, which are hosted on NPM. We then downloaded the <a href=\"https:\/\/github.com\/ChartIQ\/finsemble-seed\" target=\"_blank\" rel=\"noopener noreferrer\">Finsemble seed project<\/a>.<\/p>\n<p>Finsemble is a configuration driven platform, with customization coming from several JSON files. These are divided into a root configuration for the main application, and others for individual features such as components, workspaces and services. As an example, below you can see how straightforward it is to integrate our blotter with the Finsemble platform:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh4.googleusercontent.com\/2mX0Ixw5Fvm9AgrPOwQxcR8YSep7zWtdFpAslD2vzFNREv6p56A3KpTLVmq3g4pN09n4vOh7qSJhW_PXKLy9EqySwFPYgNWLn7kxV7HbT6U9ca8XM1l0o_nc7L5MjfTN1hDSaXvv\" width=\"610\" height=\"699\" \/><\/p>\n<p>Finsemble comes with two \u2018integration layers\u2019 &#8211; visual integration, and logical integration. Using these configuration files we quickly achieved visual integration in Reactive Trader<sup>\u00ae<\/sup>, in the form of the four categories below:<\/p>\n<h3>Snapping and Docking<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh5.googleusercontent.com\/3gMHeWDe3CmNGTdFZ4cGMk61v4FMVX0B28Mcm5V0cX1HtPOw-Q5rwFC0J_bjT5_QRkMyS3fVtYxttEBR14dTp3awyEmAgPQhYbR4-0uWyZm10vzeVvHgmDNIx_jyxZFJUu4FMoDp\" width=\"1118\" height=\"473\" \/><\/p>\n<h3>Tabbing<\/h3>\n<p><img decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh5.googleusercontent.com\/I-HxOcylDA4hiwAV42-5yQvuyTBU7swBWvif5rBLXpKzx05NDibDlIw_whMrWyXUEm61GBPoyLfQxpN-IWbcypNFQCERqtNKEabwuFtXSpr1dch5agYW9yXrsuA8nRFHn1-5_1_U\" \/><\/p>\n<h3>Workspace management<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh5.googleusercontent.com\/S9UKrPhb2dEm6RQE8vJe5dFynMXQqIr5yZxWq2GhOLoCrflmZZusVgT4nj1tq2I1mPCikssQHmIdooPAWsjU8TIRYH-S5_1sBgGwXPmw8gK3CJJadxslJpMdUCL9Lk_A5GR-4nu3\" width=\"1190\" height=\"508\" \/><\/p>\n<h3>Tiling<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh5.googleusercontent.com\/Jt2nv8KyFpqbnPIpr5ov-46hHv7kxCf_llQ4DiPd7MlMyznB-8-pEe6L3nqXa8wlGKpYoTouTLvoBTy6-N_hEtiomuwg5ScN9TcBDWJxOqSmZf1ycUBaFWPQsavaCr25NGqwk9kU\" width=\"1197\" height=\"584\" \/><\/p>\n<h3>Bringing components together<\/h3>\n<p>Finsemble\u2019s logical integration supports a range of data sharing capabilities, allowing applications to communicate with each other through either context linking, or drag and drop.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh5.googleusercontent.com\/1tpTmUhktQsPO3Gqu2Q-HRW3LWxc1_ABVVq_Sg243YgUuRNDIffMjw7KRlGpenmm3fst1SyXZrkk8JY_JdVO7YZfbh-gjGSLePuhFwaCT3AJAEkYmNpRAqMhczlbkc8p-b44ejNS\" width=\"1204\" height=\"593\" \/><\/p>\n<p>Message publishers and receivers can be injected into the respective components, requiring little or no configuration or code. Here are some examples for Reactive Trader<sup>\u00ae<\/sup>:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh3.googleusercontent.com\/4-5PuVy7WZ1KeVBDu6aZNZnrPSNLXV3utUzVnMIaTQBAPbInSnlyfRxYhE2Tz9fDgO2QWPNp8o9f-Jg0NyTge7Es2WrMPayA1h1TZD_wqhhmiK4Aucs7BbcT-OPsajCrDZvFjHdu\" width=\"862\" height=\"475\" \/><\/p>\n<h6 style=\"text-align: center;\">Publish JS injected into a Spot Tile component.<\/h6>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh6.googleusercontent.com\/Yd2XI79GLQ4ga-L1AKu7sHXzhFUoyVWtBCtYl3o-jD0liZwdhkm_dZPbloCuJ3k8FSPUSevTTqdr0EjOqffgR7K7XV_V2MiAjujFjGeSXZ09ozFZA_O30smJ11yWWCikqKTWy4vM\" width=\"860\" height=\"436\" \/><\/p>\n<h6 style=\"text-align: center;\">Receiver JS injected into Currency Chart component<\/h6>\n<h6 style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"HiaYvf-SmKAyb aligncenter\" draggable=\"false\" src=\"https:\/\/lh4.googleusercontent.com\/XkmiYsgVpU2Hx8mQQouUxF8-FIpIKA3y-WjTlcymRylwMAwqKyJGfCX2gVkKoXqSRRkxpi_pp0uC1mJdM6XFR7720a-5DfR9DTJeqoRHBV-nX-DOtV6vBgwvhuMePQwm4oE9Axr-\" width=\"897\" height=\"631\" \/><br \/>\nReceiver in Currency Chart, adding a handler once the Finsemble object has been initialised.<\/h6>\n<h2>Summary<\/h2>\n<p>The process of integrating Reactive Trader<sup>\u00ae<\/sup> with Finsemble was straightforward, and we were quickly leveraging the platform\u2019s most powerful features.<\/p>\n<p>You can find out more about Finsemble <a href=\"https:\/\/www.chartiq.com\/finsemble\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>, also to learn more about the latest activity on Reactive Trader<sup>\u00ae<\/sup>, take a look at our post\u00a0<a href=\"https:\/\/sandbox.weareadaptive.com\/2019\/04\/05\/reactive-trader-cloud-major-update\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Author<\/strong><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3312\" src=\"https:\/\/sandbox.weareadaptive.com\/wp-content\/uploads\/2019\/07\/Pierre-Deleastar-300x288.jpg\" alt=\"\" width=\"225\" height=\"216\" srcset=\"https:\/\/sandbox.weareadaptive.com\/wp-content\/uploads\/2019\/07\/Pierre-Deleastar-300x288.jpg 300w, https:\/\/sandbox.weareadaptive.com\/wp-content\/uploads\/2019\/07\/Pierre-Deleastar-768x738.jpg 768w, https:\/\/sandbox.weareadaptive.com\/wp-content\/uploads\/2019\/07\/Pierre-Deleastar-1024x984.jpg 1024w, https:\/\/sandbox.weareadaptive.com\/wp-content\/uploads\/2019\/07\/Pierre-Deleastar-520x500.jpg 520w\" sizes=\"(max-width: 225px) 100vw, 225px\" \/><\/p>\n<h2><strong>Pierre de\u00a0Leastar<\/strong><\/h2>\n<p>Frontend Developer, Adaptive Barcelona<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Financial applications need space One window is not enough anymore for modern, complex financial applications. They span screens and break &#8230;<\/p>\n","protected":false},"author":24,"featured_media":3313,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,145,242,135,245],"tags":[221,209,244],"class_list":["post-3308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-back-end","category-desktop-strategy","category-reactive-web-development","category-showcase","tag-adaptive-reactive-trader","tag-financial-applications","tag-showcase"],"_links":{"self":[{"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/posts\/3308"}],"collection":[{"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/comments?post=3308"}],"version-history":[{"count":3,"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/posts\/3308\/revisions"}],"predecessor-version":[{"id":5510,"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/posts\/3308\/revisions\/5510"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/media\/3313"}],"wp:attachment":[{"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/media?parent=3308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/categories?post=3308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sandbox.weareadaptive.com\/fr\/wp-json\/wp\/v2\/tags?post=3308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}