Announcing CollectionsJS.com

The powerful data binding system in MontageJS is built on top of several capabilities: observing changes to data, incrementally updating queries based on data, and storing data in appropriate containers. FRB provides ways to create incrementally updated queries, but ultimately depends on another library for storing data and providing property and content change notifications. MontageJS delegates those responsibilities to the Montage Collections Library, which provides JavaScript implementations of common data structures. The collections provided by the library are all observable, enabling the developer to attach change listeners that react when values are added, removed, or updated.

The Montage Collections Library is a fundamental pillar of the MontageJS data binding system, but you can also use it by itself in your own JavaScript applications. The library’s diverse medley of sets, maps, arrays, and other collections can be used in the browser through Browserify, Mr, or any compatible CommonJS module loader. On the backend, you can take advantage of the provided npm packages to use the library in node.js.

We want to make it easy for you to adopt the library and start using it productively with as little friction as possible. To that end, we are pleased to announce the launch of the new CollectionsJS website, an interactive documentation explorer for the collection library. The site’s features include:

  • A tool that walks you through choosing the right collection for a job
  • A search bar that will take you directly to any collection or method by name
  • Interactive examples for collections and methods
  • Comprehensive cross references

The site itself is on Github. It is our hope that this reference helps make Collections.js an indispensable part of your tool chain.

Visit CollectionsJS.com

Montage Studio demos featured in Apple’s WebGL presentation at WWDC

Apple unveiled new versions of its desktop and mobile operating systems this month at its annual Worldwide Developer Conference (WWDC). Among the technical details disclosed during the event, there were several revelations of particular significance for Web developers. Most notably, Apple announced full support for WebGL in its desktop and mobile browsers.

During a dedicated WWDC session about WebGL development, Apple engineer Dean Jackson showed two demos from Montage Studio and highlighted our MontageJS framework in a selection of open source libraries for WebGL development. We’re really proud that Apple chose to showcase our work and hold it up as an example of the kind of experiences that WebGL will enable on the Web. You can see the session yourself by watching the Creating 3D Interactive Content with WebGL video in the Safari browser on Apple’s WWDC session video page. Or click here to download a 355MB high-definition video of the session.

The Montage Studio Eco Homes demo

The Montage Studio Eco Homes demo

WebGL is gaining considerable traction, seeing widespread support from browser vendors. Google, Microsoft, Mozilla, and Opera have already delivered WebGL compatibility in their browsers. Now that Apple has joined the party, developers can build WebGL content with confidence that it can be consumed in all modern browsers.

The MontageJS 3D components

Earlier this year, we released a set of WebGL-based MontageJS components that make it easy for designers and developers to incorporate interactive 3D content into their Web applications. With MontageJS, you can use a unified component system to build rich experiences that cross the boundary between 3D content and the page DOM scene graph.

You can take a 3D scene created in conventional tools like Maya, 3D Studio Max, or Sketchup and load it into a MontageJS application. The framework lets you use CSS to modify and animate elements of the scene. Our 3D MontageJS components are available as open source on GitHub, but the easiest way to use them is in Montage Studio, our browser-based visual application authoring environment.

Some shiny real-world examples

We’ve built several applications with our 3D components to demonstrate real-world uses. Our Eco Homes demo, one of the Montage Studio applications featured by Apple during the WWDC WebGL session, shows a rich 3D rendering of the interior of a house. An option panel alongside the 3D rendering lets the user select various home customizations, including certain household appliances and different materials for a kitchen counter.

As the user selects their customizations, our data binding system ensures that the changes are reflected instantly in the 3D view. The demo uses animated camera transitions to move focus to the relevant items in the scene as the user flips through the various preference panels.

The Eco Homes app was largely built for use on touch-enabled devices. You can flick the preference panel up and down to switch between panes. If you resize your window while viewing the demo, you will notice that it takes advantage of responsive design techniques, scaling and adjusting the position of elements in order to ensure that the user gets a great experience on different form factors. We’re really excited about the potential that can be unlocked by using rich 3D graphics with the full, expressive power of the open Web.

carconfigurator

In addition to the Eco Homes application, our Car Configurator demo was also shown during the WWDC session. The Car Configurator displays a 3D vehicle that the user can customize with a set of options displayed in a panel alongside the 3D view. The user can adjust the color the car’s body, frame, and interior. The user can click and drag the car to rotate it and can zoom in and out with the scroll wheel.

More great news for hybrid apps

Support for WebGL is great news, but it’s not the only improvement that Apple is bringing to its HTML rendering engine in the upcoming iOS and OS X updates. The company also introduced an impressive new high-performance JavaScript JIT compiler that will work in Safari and in third-party applications that use embedded Web views.

Apple has not previously allowed JIT compilation for JavaScript content running in embedded Web views. Introducing this feature, alongside a new high-performance JavaScript runtime, will give a profound performance boost to hybrid mobile Web applications that make heavy use of JavaScript. That’s great news for developers who want to use Montage Studio to build apps for Apple’s mobile devices.

These changes are part of a broader overhaul that Apple is conducting on its embeded Web view controls. In OS X Yosemite and iOS 8, developers will be able to use a new WKWebKit control that takes advantage of the multiprocess HTML rendering architecture that Apple uses today in Safari on the desktop. The new embedded Web view controls will have uniform APIs across desktop and mobile, making it easier to reuse code in hybrids. There’s also a new set of messaging APIs that make it easier to pass JSON objects between a hybrid application’s native code and the JavaScript context of an embedded Web view.

Apple is clearly committed to enabling a richer Web and more powerful hybrid Web applications. At Montage Studio, we welcome the latest improvements and look forward to taking advantage of them as we continue to build great experiences with Web technology.

Learn Montage Studio at a live coding event on June 18 in San Francisco

We’re going to demonstrate how to build applications with Montage Studio for the San Francisco HTML5 Live Code meetup group. Join us at Startup House in San Francisco on Wednesday, June 18 to participate in the event. The meetup starts at 6:30PM and the live coding demo starts at 7PM. Please visit the meetup.com page for more details.

During the hour-long live coding presentation, you will learn how to use Montage Studio to build rich, single-page applications that take advantage of the latest Web technologies. Discover how the MontageJS component system simplifies application architecture and increases composability, making it possible to assemble large applications from modular units of functionality. You will also learn how the framework’s powerful functional reactive data binding system makes it easy to manipulate and display data from remote sources.

Montevideo JavaScript Meetup Group

Montage Studio CEO Benoit Marchant gave a talk about the MontageJS draw cycle at JSConf UY in Montevideo earlier this year. Now our friends in Uruguay are spreading the word, with a MontageJS presentation at the June 5 meeting of the Montevideo JavaScript Meetup Group. The meetup takes place at 7:30PM at Sophilabs. Developer Luis Alberto Cal will introduce MontageJS and talk about how it compares to other frameworks. Visit the group’s meetup page for more details.

Montage and Collections updates, and a new project

In the last month Montage v0.14.11 was released which fixes a selection bug when a new contentController is set on a Select, and updates Mr to v0.15.6.

Collections had a fantastic contribution from @trevordixon that fixed the find* methods on SortedSet. In Safari properties of hosted objects are non-configurable. This causes problems when attempting to observe property changes so these are now ignored. In FRB, the has observer has been fixed for Maps.

Jasminum is a new project that re-implements the Jasmine API using Collections and Promises:

It has a minimal but modular and extensible core, supports and uses promises for asynchronous tests, and has an “isomorphic” API, meaning Jasminum tests can be run without modification between Node.js and browsers using CommonJS module loaders including Browserify, Mr, or Mop.

If this sounds interesting to you then there is a lot more information in the Jasminum readme.

Releases

Montage v0.14.11, Mr v0.15.6 and montage-jsonp v1.0.1