Frequently Asked Questions



What is this?

Enyo is an object-oriented JavaScript application framework emphasizing modularity and encapsulation.

Oh yeah, Enyo — wasn't that the framework on the Touchpad?

Why yes, it was. Enyo 1 was the framework underlying the applications on HP’s TouchPad, with hundreds of apps including the stock applications built using Enyo.

Enyo 2, released in January 2012, is the next step in the evolution of Enyo.

What's the difference between Enyo 1 and Enyo 2?

Although Enyo was conceived from the start as platform-independent framework, Enyo 1 out of necessity targeted webOS and the TouchPad specifically. While it’s possible to make an Enyo 1 app run on certain other platforms, it’s harder than it needs to be and the list of compatible platforms is rather short.

For Enyo 2, we’ve focused on creating a rock-solid core that includes Enyo’s fundamental building blocks and works in any modern browser, desktop or mobile.

It now includes a core cross-platform UI widget and layout library, and we are working to expand this to provide everything you need to build a polished mobile or desktop app.

Hey, my app was built in Enyo 1, what about me?

Don’t worry, Enyo 1 is officially open source now as well under the same Apache 2.0 license as Enyo 2, which essentially means that you’re free to take your Enyo 1 app and put it wherever you’d like, including your server or the friendly neighborhood app market of your choice.

While you’re free to stay on Enyo 1 as long as you like (you can download it or get the source from GitHub), we’ll be focusing our efforts on Enyo 2 going forward, and we encourage you to join us as soon as Enyo 2 has the capabilities your app requires (which won’t be long).

How much has the Enyo core changed between Enyo 1 and Enyo 2?

Not very much. We took the opportunity to clean up and improve some details, but the core concepts are unchanged. If you are familiar with Enyo 1, you’ll be right at home using Enyo 2.

How is Enyo 2 organized?

When we moved to open-source Enyo, we took the opportunity to refactor the source in a way that reflected our vision for Enyo as a truly cross-platform framework. As such, it is now comprised of modular packages that you can choose to include in your app:

  • enyo - This is Enyo core, the heart of Enyo that provides the encapsulation and inheritance engine, event dispatching system, and a base UI library that can be built upon for creating custom UI widget sets. It also includes an API viewer and minifying build scripts. (Required)
  • lib - All optional Enyo libraries should be placed in a folder called lib located in the same directory as the Enyo core. This allows libraries to be referenced using a special $lib variable when calling enyo.depends().
    • onyx - The initial cross-platform UI set with styling based on the user interface that shipped on the Touchpad. It is still a subset of the widgets available in Enyo 1, but we will continue to expand this set as we tackle more and more of the implementation challenges surrounding cross-platform user interface design.
    • layout - The initial set of cross- platform components used for laying out UI elements, such as fittable rows and columns that cover common use cases for app layout. This package will also be expanded as we continue to expand the library.
    • canvas A package with components for building HTML5 canvas-based applications.
    • extra - A set of common utility controls used by various sample apps.
  • support - You can find our sample applications here.

What platforms does Enyo work on?

Enyo 2 works on any platform with a modern web runtime. Enyo 1 requires WebKit.

Is Enyo just for mobile?

No, Enyo’s purpose in life is to make it easier for you to build and maintain HTML5 applications of any size and complexity, whether you’re targeting phones, tablets, PCs, or other form factors. Over time, you can expect to see Enyo add-ons that are specialized for various purposes, but the Enyo core will remain broadly applicable.

Can I use Enyo to build hosted web apps?

Yes. Enyo is in no way specialized for packaged apps and can be used in a hosted web app just like any other JavaScript library.

Can I use Enyo to build packaged apps for iOS? Android? Chrome?

Yes. In the case of iOS, Android and other mobile platforms, you’ll need to wrap your Enyo app in a native “shell.” The easiest way to do that is to use PhoneGap, which also gives your app access to various native capabilities on each platform.

What license is Enyo released under?

Enyo is released under the Apache 2.0 license.

How do I download Enyo?

Check out our Get Enyo page!

How do I get support?

Visit the Enyo forums to get support from the Enyo team and fellow developers.