Alloy Framework is ready for Pre-release

Fast speed dataflow.

Appcelerator is pleased to announce the availability of the pre-release version of Alloy.  For those unfamiliar Alloy is an open source MVC framework with the goal of making Titanium development easier, faster, and more scalable.

What is Alloy

Alloy is an MVC framework for rapid mobile application development. It provides a layer on top the Titanium SDK that includes scaffolding generation and advanced tooling. Alloy empowers Titanium beginners to jump right into mobile app development. It also gives advanced developers a framework that will scale as their app grows in size and complexity. With Alloy, developers can build apps not only faster, but of higher quality, effortlessly leveraging features like compile time validation, advanced code generation, and reusable components.

Alloy is built on Node.js, available on npm, and integrated with Titanium Studio.

Alloy Example Picture

Alloy Key Features

  • UI and app logic separation through MVC framework
  • Develop your apps using XML and JSON
  • Compile time validation
  • Reusable widgets and templates
  • Built-in Backbone.js and Underscore.js support
  • Advanced code generation based on Uglify.JS
  • Command Line interface

Using Alloy

It’s very simple to get started with Alloy. Follow the quickstart guide and start developing apps instantly. You can also access the project on Github

Next Steps

With this pre-release of Alloy, we firmly believe that Alloy’s foundation is solid. Developers can use Alloy confident that the core will not change significantly. We will, however, continue to improve and extend the framework. The aim is to keep the impact these necessary ongoing changes have to a minimum. Specifically we intend to improve the debugging experience, add dynamic style applications, add more widgets and templates, enhance integration with Titanium Studio and more.

We are very excited with the progress of Alloy and hope it will become the standard for developing Titanium Apps.

Feel free to send us your comments on Alloy by joining the conversation on the Appcelerator Alloy Google group. Enjoy and CodeStrong using Alloy.

Reference Links


1 COMMENT

  1. This looks very good! Can’t wait to take it for a spin on the new project I’m about to begin! 🙂

    Is there any WYSIWYG interface in the plans?

    Cheers

  2. Very cool, I’ve been waiting for this! A few suggestions:

    1. Right now it appears that you have to create a style .tss file to correspond to each view .xml file, however better practice would be to allow there to be global .tss files that would promote style reuse across all views in the application.

    2. Obviously Ti Studio support for the alloy commands would be great, so that we don’t have to do command line to convert the project to alloy or to generate new controllers/views/styles.

  3. @Darlo: Alloy is definitely a stepping stone to a WYSIWYG interface. It is on the radar, but I don’t think we have a clear timeline on it yet.

    @Justin: To answer your points:

    1. Name a file “app.tss” and put it in your styles folder. That will operate as a global style that is applied to all views/controllers.

    2. TiStudio has a preview plugin incorporating some of alloy’s command line capabilities. Check it out here: http://preview.appcelerator.com/studio/

  4. @Justin: Let me expand a bit on why there’s both global and controller-specific styles. Unlike HTML/CSS, when an element is identified with an “id” attribute, that “id” is within the controller’s scope, it is not global. This helps prevent id collisions in projects that have a large number of views and controllers.

    A good practice for app.tss is to keep all your UI component-level styles (i.e. “Button”, “Window”, etc…) and most classes in there. Your controller-specific tss files will be where you can reference elements by ID.

    You can still technically access elements by ID in the app.tss. Bear in mind though when you reference an ID globally, you might have unexpected results if you have multiple elements thoughout your project with that ID. That’s why we encourage that ID styles (i.e. “#myId”) all be contained in the controller-specific tss files.

    If that doesn’t clear things up, or I’ve made it even more confusing, let me know and I can throw together a gist or something that shows what I mean.

  5. Hi, i’m testing the Alloy and it’s awesome! But i’m a little bit confused with views for each platform… the documentation is very poor and i hope that will be released with the anounciment.
    But, how can i build view platform specific? The app folder is at the root project folder… can i make an app folder at Resources/android folder?

    I’m building an application after months of plan ans specifications… i choose Titanium and Alloy for MVC. But if these docs won’t be updated soon (and soon is at september 1st week)… i’ll choose another MVC framework because i have time to build my app.

  6. @vinicius The documentation team is busy writing more complete documentation but we don’t have an exact timeframe when they will be available on the Appcelerator developer site. In the meantime checkout the the ReadMe files included with the test app under alloy/test/apps, and look at the test apps. Also the Alloy Google Groups and Appcelerator Q&A is a great place to get answers on using Alloy. There is a discussion on using MVC in Alloy.

  7. @Vinicius: The documentation is obviously a work in progress. Right now we have the quick start, github readme, and test apps available in the repo’s “test/apps” directory. We are working on pulling together a more comprehensive set of guides.

    In the meantime, though, I encourage you to ask questions at the google group. That’ll be the best way for us to handle any questions you have and log any issues, if necessary.

    Right now you can make any markup element platform-specific with the “platform” attribute. Here’s a gist showing how that works:

    https://gist.github.com/3529762

    We are working on structuring Alloy to support platform-specific files, not just markup elements, as well. We’ll keep you guys posted on progress with that.

  8. I am looking into it to see how much good it is to integrate it with Titanium Studio and how we can be helped..!