Skip to main content

Posts

Showing posts from February, 2018

Forget about MVC, MVVM and MVP - MVI (Model-View-Intent) is coming!

module.exports = function (model, view, intent) { if (view) { view.observe(model); } if (intent) { intent.observe(view); } if (model) { model.observe(intent); } }; The first thing to notice is regarding the communication, as you can see from the schema above the communication is unidirectional. In MVI, the view is exposing an observable for the intent to capture all the user interactions from the view and passing the data through an observable to the intent. The intent is preparing the data received for the model, and these data are passed to the model via an observable again. Last but not least the model save these data and update the view exposing an observable to the view. The view is not changing directly, but it’s just preparing the virtual tree to be rendered by any renderer. Bear in mind that one peculiarity of an MVI architecture is that an object shouldn’t manipulate or directly call any method of another object; the only communication allowed are through observab

direnv -- Unclutter your .profile

direnv is an environment switcher for the shell. It knows how to hook into bash, zsh, tcsh and fish shell to load or unload environment variables depending on the current directory. This allows project-specific environment variables without cluttering the ~/.profile file. direnv.net

AWS is offering AppSync – Build data-driven apps with real-time and off-line capabilities

AWS AppSync is a fully managed serverless GraphQL service for real-time data queries, synchronization, communications and offline programming features. With AppSync developers can simplify the retrieval and manipulation of data across multiple data sources with ease, allowing them to quickly prototype, build and create robust, collaborative, multi-user applications. AppSync keeps data updated when devices are connected, but enables developers to build solutions that work offline by caching data locally and synchronizing local data when connections become available. The GraphQL Proxy passes the client request to the Resolver which maps and executes the request payload against pre-configured AWS data services like an Amazon DynamoDB table, an AWS Lambda function, or a search capability using Amazon Elasticsearch. The Resolver executes calls to one or all of these services within a single network call minimizing CPU cycles and bandwidth needs and returns the response to the client.