Reintroducing AlloyUI (or meet Alloy 2.0)

AlloyUI

For years Alloy has been known as the JavaScript Framework behind Liferay. This was great, because it's helped the project to grow a lot, but at the same time, it has restricted the project to a particular audience.

So now we want to present a different approach, we want Alloy to be recognised as a great JavaScript Framework used by many great projects, not just Liferay.

This may sound like a small change, but it's not. We're not just releasing a new version, we're rethinking all our engineering, all our communication, and our community approach as an open source project.

By doing that we can reach more contributors and when we improve Alloy we automatically improve Liferay.

 

So what's the big news?

 

New Website

First, we have a completely new website for you \o/

It's sexy, and it has a lot of new examples and tutorials. We decided to preserve the API Docs and Rosetta Stone because they're still great resources for general knowledge.

It was created using a NodeJS static generator and all documentation is now written in Markdown.

If you want to help us improve the website, please check the source code on Github (and remember to use GIFs :P).

 

Better Look & Feel

As you know, Alloy was built by engineers, but engineers aren't focused on design, right? That's why we decided to use the look & feel of Twitter Bootstrap, the most popular project on Github.

 

Community

Last year we hired Zeno Rocha to help improve communication from AlloyUI and Liferay community with the engineering team, he will be our ears, so feel free to ping him about everything.

Also we added a few more communication channels, so you can now find us on Liferay Forums, Google Groups and Stack Overflow.

 

Faster Build System

We used Ant for a while, but as time goes by, faster build tools are made. So we're now moving to Shifter and Yogi, two awesome projects made by our friends at Yahoo!

 

New CDN

AlloyUI is now hosted on a fast CDN, so you can use it easily by adding this url http://cdn.alloyui.com/2.0.0pr1/aui/aui-min.js to your <script> tag.

 

Faster Download/Clone

The last version of Alloy repository was almost 800mb, now Alloy 2.0 is less than 10mb!

 

Fewer Components

The last version of AlloyUI had 73 components, but for this first release of AlloyUI 2.0, we're going to have 20 components.

 

What about the old components?

Don't worry, you can still find them on AlloyUI v1.7.0 if you need them, also you can find all documentation for it on alloyui.com/versions/1.7.0.

 

When is this going to be available on Liferay?

After this preview release, we're now going to be focused on upgrading AlloyUI into Liferay. So we'll communicate a date for this soon.

 

Why AlloyUI?

A lot of people ask, why they should invest their time on Alloy? Or why not just use jQuery with their gigantic ecosystem of plugins?

The thing is, DOM manipulation is just the tip of the iceberg when you're dealing with modern and highly scalable applications like Liferay. You'll probably need another library for templating (like Mustache/Handlebars), another for modular loading (like RequireJS/HeadJS), another for MVC structuring (like Backbone/Ember), another for UI components (like jQueryUI/ExtJS) and so on.

Well, AlloyUI comes with all of those things together. So there's no mess between different libraries, just a uniform API that makes your life easier. It's built on top of YUI3, an awesome project made by Yahoo!, and it's mantained by our highly qualified engineers at Liferay.

 

Next steps?

We're going to continue creating documentation for components, improving the website and taking all these changes to Liferay.

But the most important thing is, we want to hear what you think about this. Seriously, we could really use your feedback about anything, so go ahead and leave a comment on this blogpost or get in touch at Liferay Forums and Google Groups.

 

Wanna know more?

Join us on February 19 to a AlloyUI LIVE Session with Zeno Rocha.

 

Thanks :)

This wouldn't be possible without the help of Nate Cavanaugh and Brian Chan who believed in this idea. Also Djalma Araújo, Marc Lundgren, Ethan Bustad, Robert Frampton and Patrick Armitage helped insanely to create examples and tutorials for the website. And finally all our coworkers at the brazilian office for their support.

So we really want to say thank you guys, you're awesome!


Written by Eduardo Lundgren and Zeno Rocha.

Blogs
I'm very happy that this hard work is not a concept anymore!
Eduardo and Team - this is really awesome to see such progress on AlloyUI, not only for Liferay devs but for web app development as a whole. Great job guys! Let the fun begin!
Finally seems to getting things right!
One of the major "problem" with Alloy UI was it was restricted to Liferay limiting involvement from the community compared to other JS tools.
Will be looking forward to how things will turn out.
Guys,

Please don't take it hard, but if you really want people to use Alloy than please, please, please! provide documentation. I understand that we have the docs for 2.0, but currently, 99% of the users are using it with Liferay and Liferay comes with a mysterious well hidden version of Alloy UI. So please respect the current community as well! Saying well hidden here, means many things:

* The link to the older version on the new website is somewhere between very hard and impossible to find.
* The download link doesn't work for the 1.7 version.
* Documentation is not available for the versions that Liferay uses. (Surely, the version in current Liferay CE is different from 1.7.0)
* Anyway, which is the version Liferay is using? How is it possible to determine this?
* The framwork is embedded only into the tomcat bundle. liferay-portal-src-6.1.1-ce-ga2-20120731132656558.zip is missing the complete library. I can't believe it was intentional: the Liferay UI completely builds on this library.

So, we need some explanations here.
Hey Vilmos,

Thanks for sharing your concerns, I hope you continue to send feedbacks like this.

1. Sorry about that, do you have a suggestion?
2. Fixed. Thanks for reporting. https://github.com/liferay/alloy-ui/archive/1.7.0.zip
3. Docs for v1.5 will be available very soon, in the meanwhile you can read docs for v1.7, since it's very similar to v1.5.
4. Here you can find which version of AlloyUI that Liferay is using. https://github.com/liferay/alloy-ui/wiki/Liferay-Integration
5. Alloy source code is provided insinde the source code under the path: portal-web/third-party/alloy-1.7.0.zip. It is built from this release zip on build time on portal-web/build.xml.
You can see the detailed ant script that builds this portion here: https://github.com/liferay/liferay-portal/blob/master/portal-web/build.xml#L54.
The zip name is defined on the property: <property name="alloy.file" value="alloy-1.7.0.zip" />

Also we uploaded all AlloyUI stable versions to CDN: http://www.liferay.com/web/zeno.rocha/blog/-/blogs/alloyui-and-the-importance-of-cdn

We recognize that are a lot of things to improve, so I just wanted you to know that we do respect the current community and we're working hard to minimize all problems.
Hi Zeno,

Thanks for the answer and your efforts. I always knew that you are working hard to make things better around Liferay, and I like it.

1. Just make the version selector bigger.
2. Cool!
3. Ok, waiting.
4. Thanks for creating this page. It is a good source of information.
5. Ok, it was my fault, I was searching it unzipped. So i have only one question left: the referenced wiki page states that 6.1 GA2 uses 1.5.1, though the source contains a file named alloy-1.5.0.zip. Which is the truth?

Thanks!
hi Vilmos,
i work with alloy ui for a short time and i confuse that what is difference between version 1.5 and 1.7; can you show me some points, and some witget is new in version 1.7?

Thanks!
Excellent work team! This shows your commitment to making it a true open source project.
hi all, i am studying about alloy ui and as i know in liferay 6.1 available alloyui 1.5 but i want to use version 1.7 of alloyui, what i have to do? and i also want to new features in version 1.7 compare to 1.5

Thanks!