This is mainly just a FYI type post, but earlier this week I discovered Nunjucks, a client-side templating language by Mozilla. I've been pretty much sold on Handlebars as my template language, but Nunjucks has a lot going for it too. Out of the box it seems to support a lot more than Handlebars (inheritance and asynchronous support for example) and the template synax is as friendly as Handlebars'.
Welcome back to the thread that won't die. I've blogged (see related links below) about this topic six times now. It started off as something simple - making an Edge Animate animation wait to run until visible - but it has turned into a pretty complex set of entries discussing not only how to do it but alternatives and other modifications. Today's entry is rather simple though as it just covers updates for the October 2014 release of Edge Animate.
Let me begin by saying that - like most developers I think - I have a pretty strong distrust for visual builders for applications. I've been burned by too many tools that create something pretty on screen but generate a horrible mess of code behind the scenes. I think there are definitely tools that do a good job of it now, but once you've been scarred by seeing div tags nested twenty layers deep, you get a bit sensitive. I've recently become a bit more open minded about it. XCode, in general, has a very powerful UI building metaphor to it and I kinda dig how the Android tools handle it in Eclipse as well. Now that you understand how I approach these tools, let me talk to you a bit about the upcoming Ionic Creator tool from the folks behind Ionic.
Just a random tip for folks who may run into this in the future. I'm working on a mobile app for a client and I'm using both Cordova and AngularJS. The application allows people to select a photo from their gallery or take a new picture. It then renders a thumbnail to the web page. It supports any number of selections so my view simply loops over an array.
I kinda stumbled upon this by accident, but Ionic has a CDN you can find here:
Recently I've come across a few sites that will tie window scrolling with animation. When used in a subtle, small fashion, this is kind of cool. When used to change large portions of the view or really screw with scrolling, I detect it. Like most things, it all comes down to how you use it I suppose. But I was thinking recently - how can we do this with Edge Animate? Turns out it is rather simple.
While looking at another IndexedDB bug with Safari (https://bugs.webkit.org/show_bug.cgi?id=136155), I encountered a bug with Chrome. It was a bit awkward to describe so I decided to make a quick video. I'd greatly appreciate it if folks could try and recreate this. If so, I'll file a bug with the Chrome team.
So, as you know, iOS 8 finally brought IndexedDB to Mobile Safari. I may be biased, but I find features like this far more useful than CSS updates. Not to say that I don't appreciate them, but to me, deep data storage on the client is something that is more practical and useful to more people. Of course, I work for a company that is all about designers and not developers, so what do I know? ;)
This is a pretty exciting change. If you've recently updated to the latest version of Cordova, you will notice that a new platform exists: browser. What exactly does this mean? It means the browser is now (well, becoming) a viable way to test your PhoneGap/Cordova applications. For a long time now I've done a lot of my development in the browser. Most of the time I'm not concerned about some random Cordova feature, instead I'm more concerned about something else. So I'll skip, or mock, a Cordova feature and focus on the important stuff. But eventually I hit that point where I need to do something via a core plugin and then I leave the desktop. Now we have an alternative.
I just tweeted this on - er - Twitter - but I thought I'd expand a bit on it here. As you may know, iOS 8 adds support for IndexedDB. This is really good news for your mobile web sites and hybrid applications. What I wasn't sure of though was whether or not Safari Remote Debugging would support IndexedDB. Chrome has a great IndexedDB browser and while you can still debug without it using commands in the console, the visual debugger is a lot easier to use. Turns out Safari has it as well: