I AM LISTENING TO
|
WHAT I LIKE
  • English
  • German


BLOG FILTER



How do I choose the right JavaScript framework for my next single-page application project?

A question I have asked myself over and over again.

There are countless options these days, that claim to be the ultimate solution to all our developments needs.

USED BEFORE

I have build applications with

  1. Angular
  2. Backbone
  3. Ember.js
  4. Knockout
  5. Ampersand.js
  6. Rivets

TRIED BEFORE

I have looked at

  1. Polymer
  2. React
  3. and many other solutions out there.

And I seem to be evaluating new options every week :)

ANSWERS ?

The only answer I can give you is that :

  1. None of them will fit any of your projects perfectly.
  2. None of these will cover all project areas to your personal satisfaction.
  3. None of these will prevent you from errors and the need for unconventional solutions.

In the end its a matter of personal taste and project requirements. We only have limited resources to finish a project and find solutions to unsolved problems in a timely fashion (yes this always happens). Go out and play :) Also take  a look at TodoMVC, which might help you to decide. No guarantees !

Over the past few month I have evaluated all the things that I used in the past. I  started stripping it all down to a bare set of essentials, that have been following me for a long time. There are solutions that just fit and require no replacement.

GOING SOLO

So my answer for the perfect framework, is a set of solid singular solutions that have proven themselves over the years. Working solo or together in harmony.

 Like a painter I want to choose my own brushes and color mixture. Programming is an art that needs freedom.  A freedom that can often be limited by a too strictly defined framework. Structure is important, but it should never dictate the options you have to fulfill your project goals and limit you.

I will be covering some of those tools here in coming articles.

I will talk about:

  1. MVC
  2. DOM manipulation
  3. Templates
  4. Data-Binding
  5. Directives
  6. Routing
  7. Observables for Arrays and Objects
  8. Modules
  9. Dependency Loading
  10. Utility solutions

…enjoy coding

readmore

“Transparency is a minimal template engine for jQuery. It maps JSON objects to DOM elements with zero configuration.”

  • Semantic data binding – No need for <%=foo%> or {{foo}} assignments
  • Collection rendering – No need for hand-written loops
  • Valid HTML templates – Write templates as a part of the HTML, in plain HTML
  • View logic in JavaScript – No crippled micro-template language, just plain JavaScript functions

Another simple templating solution, that can speed up simple project tasks.

Transparency

readmore

“jQuery Template is a plugin that makes using templates easy and quick. The plugin supports loading HTML files as templates, or taking a jQuery object as the template (usually using script tags to hold the template).”

Features

  1. Define templates inline
  2. Load external templates
  3. Cache templates
  4. One-way content binding using simple data attributes
  5. Data formatters

This is a nice and simple solution, with an easy learning curve ;) If you need more or would like to try other solutions, check the Template-Engine-Chooser :)

readmore

In a current project I am using pages as templates, to load content into specific containers on the website. The website will be using up to 15 different languages.

The main language setup is done through WPML, which creates linked content per language. This helps, as some languages will fail terribly when translating them through a pure gettext setup, as the words setup is often completely different.

But there is always static stuff that can be translated directly through the language files. For that I use a simple shortcode that allows me to keep the native language as a basis in all linked content. Easier to move around, as I can actually read and understand it :)

Call the shortcode from the functions.php

The shortcode function itself. This loads the language textdomain from the specified location and translates the string.

How to use it in your post or page content

 

readmore

Conditional Tags are a powerful thing in WordPress and especially handy to show or hide things.

“The Conditional Tags can be used in your Template files to change what content is displayed and how that content is displayed on a particular page depending on what conditions that page matches. ”

Two plugins are part of my essentials, that utilize the Conditional Tags:

  1. Widget Logic
    “This plugin gives every widget an extra control field called “Widget logic” that lets you control the pages that the widget will appear on. The text field lets you use WP’s Conditional Tags, or any general PHP code.”
  2. Menu Item Visibility Control
    “Using this plugin you can use WordPress Conditional Tags to enable or disable menu items on the front-end. It works like ‘Widget Logic’ but for menu items.”

You can easily define your own Conditional Tags in your functions.php or plugin.

readmore

  1. Pixel-perfect
  2. Retina-ready
  3. Fast
  4. Consistent
  5. Hackable
  6. No tracking

Shield.IO

readmore

This time picker provides a unique way to enhance your input fields. Use a clock interface to enter the time. The plugin works with Bootstrap or standalone.

Part of my essentials :)

ClockPicker

readmore

Datedropper is a jQuery Plugin that provides a quick and appealing interface to enter dates. Nice little plugin to spice up your interface.

Definitely part of my list of essentials :)

datedropper

readmore

The first two headers prevent the browser from caching the response and the third sets the correct MIME type for JSON.

Than just output your JSON data

 

readmore

NextGEN Facebook (NGFB) gives you total control over the information social website crawlers need, improving Google Search ranking, social engagement, and click-through-rates on Facebook, Google+, Twitter, Pinterest, LinkedIn, StumbleUpon, Tumblr and and many more”

A powerful plugin for WordPress, but it sometimes displays many image dimension errors. Even if those errors remind me to optimize the page or post, I sometimes prefer to ignore these during development :)

Here a simple way to hide them:

 

readmore