{"id":833,"date":"2017-12-16T14:00:52","date_gmt":"2017-12-16T14:00:52","guid":{"rendered":"https:\/\/www.remotedevelopment.co.uk\/cms\/?p=833"},"modified":"2019-06-06T18:56:50","modified_gmt":"2019-06-06T18:56:50","slug":"aurelia-framework","status":"publish","type":"post","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/aurelia-framework\/","title":{"rendered":"Aurelia framework"},"content":{"rendered":"<p>We are adopting a new framework in addition to VueJS and Angular to our frontend app development framework.  It is brilliantly engineered using modular javascript and promises to have a UX module to create native mobile aps, in the meantime, Cordova can be used for that.  We are in the business of creating web applications for business and it promises to be faster, cleaner and better designed than others.<\/p>\n<p>Aurelia uses ES2015 or Typescript.  It can work with Babel or Webpack.  Most impressive is that it hides itself behind your ap in such a way that you feel like you are writing modular JS and HTML with a few directives to relate its parts.  And it works magically.  The now traditional todo ap requires just three files:<\/p>\n<p>todo.js<br \/>\napp.js<br \/>\napp.html<\/p>\n<p>app.js<br \/>\n<code><br \/>\nimport {Todo} from '.\/todo.js';<br \/>\nexport class App {<br \/>\nconstructor() {<br \/>\nthis.heading = 'Todo';<br \/>\nthis.todos = [];<br \/>\nthis.todoDescription = '';<br \/>\n}<br \/>\naddTodo() {<br \/>\nif (this.todoDescription) {<br \/>\nthis.todos.push(new Todo(this.todoDescription));<br \/>\nthis.todoDescription = '';<br \/>\n}<br \/>\n}<br \/>\nremoveTodo(todo) {<br \/>\nlet index = this.todos.indexOf(todo);<br \/>\nif (index !== -1) {<br \/>\nthis.todos.splice(index, 1);<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\n<\/code><\/p>\n<p>todo.js<br \/>\n<code><br \/>\nexport class Todo {<br \/>\nconstructor(description) {<br \/>\nthis.description = description;<br \/>\nthis.done = false;<br \/>\n}<br \/>\n}<br \/>\n<\/code><\/p>\n<p>app.html<br \/>\n<code><br \/>\n<template><\/p>\n<h1>${heading}<\/h1>\n<hr>\n<form submit.trigger=\"addTodo()\">\n    <input type=\"text\" value.bind=\"todoDescription\"><br \/>\n<button type=\"submit\">Add<\/button><br \/>\n<\/form>\n<ul>\n<li repeat.for=\"todo of todos\">\n      <input type=\"checkbox\" checked.bind=\"todo.done\"><br \/>\n<span css=\"text-decoration: ${todo.done ? 'line-through' : 'none'}\"><br \/>\n${todo.description}<br \/>\n<\/span><br \/>\n<button click.trigger=\"removeTodo(todo)\">X<\/button><\/li>\n<\/ul>\n<p><\/template><br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are adopting a new framework in addition to VueJS and Angular to our frontend app development framework. It is brilliantly engineered using modular javascript and promises to have a UX module to create native mobile aps, in the meantime, Cordova can be used for that. We are in the business of creating web applications &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.remotedevelopment.co.uk\/cms\/aurelia-framework\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Aurelia framework&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[45],"tags":[28,32,34,30,31,29,33],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8yghz-dr","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":880,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/why-laravel\/","url_meta":{"origin":833,"position":0},"title":"Why Laravel?","author":"Nicholas","date":"January 26, 2018","format":false,"excerpt":"Fourteen years ago I used a remarkable programming tool that implemented many of Unix's tools like awk, sed and regular expression parsers in a language called Perl.\u00a0 It also implemented objects but suffered from a philosophy TIMTOWTDI - \"There is more than one way to do it.\" In other words,\u2026","rel":"","context":"In &quot;Article&quot;","block_context":{"text":"Article","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/article\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":758,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/action-speak\/","url_meta":{"origin":833,"position":1},"title":"Action Speak","author":"Nicholas","date":"October 27, 2017","format":false,"excerpt":"\"Next, we are going to add the ability of the user to ...\" promises the website. What do you think? Is the promise of something new necessary? Or a developer raves, \"the next version will increase sales with this very smart new widget\". Can you use something promised before it\u2026","rel":"","context":"In &quot;Article&quot;","block_context":{"text":"Article","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/article\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":647,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/development-story\/","url_meta":{"origin":833,"position":2},"title":"Development Story","author":"Nicholas","date":"September 26, 2017","format":false,"excerpt":"Adding new kinds of products to Remote Development Products had been kind of rushed and too specifically sewn together while getting the latest version of VueJS\u00a0working for me instead of against me! It is tricky to debug but very informative, it basically is telling you if you have configured it\u2026","rel":"","context":"In &quot;Tech Guides&quot;","block_context":{"text":"Tech Guides","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/technical\/tech-guides\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":824,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/spa-version\/","url_meta":{"origin":833,"position":3},"title":"SPA version","author":"Nicholas","date":"December 14, 2017","format":false,"excerpt":"This site is based on a CMS, Wordpress. It is not particularly \"state of the art\" as such. We can take this in one of these two directions: 1. Make a parallax scrolling view (where a background scrolls at a different rate to the foreground) by changing the CSS to\u2026","rel":"","context":"In &quot;Archived&quot;","block_context":{"text":"Archived","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/archived\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":544,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/vuejs-revisiting-components\/","url_meta":{"origin":833,"position":4},"title":"VueJS: Revisiting components","author":"Nicholas Alexander","date":"September 12, 2017","format":false,"excerpt":"One of the things about software development you do not reallse\u00a0until later is now important well thought out encapsulation and clarity is when you revisit old code. One factor is predictability, what else can the programmer have possibly meant? \u00a0One of the good artifacts of programming is the contained universe\u2026","rel":"","context":"In &quot;technical&quot;","block_context":{"text":"technical","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/technical\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.remotedevelopment.co.uk\/cms\/wp-content\/uploads\/2017\/09\/vuejs.jpg?fit=552%2C519&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.remotedevelopment.co.uk\/cms\/wp-content\/uploads\/2017\/09\/vuejs.jpg?fit=552%2C519&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.remotedevelopment.co.uk\/cms\/wp-content\/uploads\/2017\/09\/vuejs.jpg?fit=552%2C519&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":787,"url":"https:\/\/www.remotedevelopment.co.uk\/cms\/bdd-framework-for-wordpress\/","url_meta":{"origin":833,"position":5},"title":"BDD Framework for WordPress","author":"Nicholas","date":"January 9, 2018","format":false,"excerpt":"An end-to-end test detects issues whenever there is a major system change. In software development, with every release, a battery of unit tests must pass or business can be lost. Yes, software testing is difficult. It sounds like it is reactive but it is preventative. Do you have a defined\u2026","rel":"","context":"In &quot;Site Strategy&quot;","block_context":{"text":"Site Strategy","link":"https:\/\/www.remotedevelopment.co.uk\/cms\/category\/technical\/site-strategy\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/posts\/833"}],"collection":[{"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/comments?post=833"}],"version-history":[{"count":2,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/posts\/833\/revisions"}],"predecessor-version":[{"id":1092,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/posts\/833\/revisions\/1092"}],"wp:attachment":[{"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/media?parent=833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/categories?post=833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.remotedevelopment.co.uk\/cms\/wp-json\/wp\/v2\/tags?post=833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}