{"id":696,"date":"2021-12-09T17:42:00","date_gmt":"2021-12-09T22:42:00","guid":{"rendered":"https:\/\/davidjmcclelland.com\/portfolio\/?p=696"},"modified":"2021-12-19T09:29:43","modified_gmt":"2021-12-19T14:29:43","slug":"ptc-ui-dev-1","status":"publish","type":"post","link":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/2021\/12\/09\/ptc-ui-dev-1\/","title":{"rendered":"Rapid App Builder IDE"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine.png\" target=\"_blank\" rel=\"noopener\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"508\" src=\"https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine-1024x508.png\" alt=\"Mashup Builder UI\" class=\"wp-image-404\" srcset=\"https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine-1024x508.png 1024w, https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine-300x149.png 300w, https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine-768x381.png 768w, https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine-1536x762.png 1536w, https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine-600x298.png 600w, https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Mashup Builder after UI Overhaul<\/figcaption><\/figure>\n\n\n\n<p>Changes to the UI included a visual refresh, some usability improvements and a limited overhaul of the underlying code.<\/p>\n\n\n\n<div class=\"wp-block-ideabox-image-comparison\"><div class=\"ib-image-comparison label-pos--middle twentytwenty-container\" data-offset=\"0.5\" data-orientation=\"horizontal\" data-before=\"Before\" data-after=\"After\" data-no-overlay=\"true\" data-on-hover=\"false\" data-on-swipe=\"true\" data-on-click=\"false\" style=\"--ibic-overlay-color:rgba(0, 0, 0, 0.2);--ibic-overlay-hover-color:rgba(0, 0, 0, 0.4)\"><img decoding=\"async\" src=\"https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2020\/04\/CompareWidgetPanels-before.png\" alt=\"\" class=\"ib-image-comparison-img\"\/><img decoding=\"async\" src=\"https:\/\/davidjmcclelland.com\/portfolio\/wp-content\/uploads\/2020\/04\/CompareWidgetPanels-after.png\" alt=\"\" class=\"ib-image-comparison-img\"\/><\/div><\/div>\n\n\n\n<p>An example of changes to the Widgets panel. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>The underlying code changes replaced DOM-centric Jquery repeaters with a data-model driven framework. This allowed features such as categorization and filtering to be orchestrated in JSON configs. It also enabled localization of the UI elements which were previously tightly coupled to widget file names.<\/p>\n\n\n\n<p>Changes were implemented over a series of releases instead of a wholesale replacement, which helped take customers along the journey as they upgraded. It also gave us a real-world walk through a migration on a true multi-tenant SAAS platform, which is where this product was headed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><a href=\"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/2021\/12\/09\/ptc-ui-dev-1\/?preview_id=98\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"\/portfolio\/wp-content\/uploads\/2021\/12\/ThingworxNine-300x149.png\"\/><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[32,17],"tags":[],"class_list":["post-696","post","type-post","status-publish","format-standard","hentry","category-uides","category-uieng"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/posts\/696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/comments?post=696"}],"version-history":[{"count":6,"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/posts\/696\/revisions"}],"predecessor-version":[{"id":892,"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/posts\/696\/revisions\/892"}],"wp:attachment":[{"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/media?parent=696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/categories?post=696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/davidjmcclelland.com\/portfolio\/index.php\/wp-json\/wp\/v2\/tags?post=696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}