Archive for the ‘Flex’ Category

We Want to Know What YOU Want to Know!

Tuesday, December 15th, 2009

Our 2010 $5 Friday series starts up again in January and C2 wants to pick your brain! What do you want to learn more about? Hot topics? Industry trends? Simply comment on our blog, with any and all ideas you may have! All respondents will be entered in a drawing for an Annual Pass to our 2010 $5 Friday series! We look forward to seeing you and learning with you in 2010!

Ideas we’ve been rolling around include blogging for professionals, 3D techniques, Video, mobile app development, After Effects and more! What do YOU think?

Flex 3 – Tips & Tricks!

Tuesday, October 6th, 2009

Common Mistakes with Cairngorm.

I have been using Cairngorm (CG) for awhile now, on
various projects and teams with some fair amount of success. CG is great with the scalability and function it provides.

Working with various groups of developers there are few patterns of
mistakes that people can make with CG. I wanted to point out
a few that I thought might be helpful for you when deciding on the
architecture of your next Flex application.

Note: This article assumes you know CG and have used it on a few projects.
If not, please take a look at Introducing Cairngorm

http://www.adobe.com/devnet/flex/articles/introducing_cairngorm.html

from Adobe. It provides a solid guide intro to CG.

ViewHelpers/ViewLocator are depreciated:

This confused a lot of developers, me included. ViewHelpers in
CG made sense at first because they offered you a buffer from
having your model communicate with your view. It also allowed you a way to
communicate with any view at any location of your application by
accessing the view’s, ViewHelper through the ViewLocator.

The new recommended approach is allowing the power of Flex binding to
bind objects from ModelLocator directly to your view.

Now, it may sound like a step back from the original
implementation but it really does offer you a strong way to push data
from the model to views with Flex binding.

Organize your classes:

One of the biggest pet peeves is the way some people to depend too much on a
micro-architecture like CG and think that they can throw all other OOP
best practices out the window.

Once in a while you see the command package having every single
command in the root of the package. A good practice would be to
organize your commands into relevant packages, and even sub-packages,
if appropriate.

Your model and view packages should be just as organized. Try not to stuff everything in them -  keep them lean and organized.

For example, let’s say you have a list of commands associated with user
log-in and others for managing a shopping cart. Organize those into
two packages in the commands folder so other developers can easily
find commands associated with that section of functionality in your
application.

CG Events:

Cairngorm Events are used to notify your Commands. Developers sometimes create unnecessary custom events for every command. Your events and commands don’t have to be a one to one relationship. Adding all those extra objects for nothing more than firing an event can be a waste and add more to the clutter.

Some might say that they do so to store the event type, but you can easily place the static constant in your controller or just a base event object for the group of functionality.

Use Delegates:

Delegates aren’t required for a CG implementation, but they do provide
another layer of decoupling between your application and the outside
world. Delegates are nice during development because you can create
mock objects into your data until the services are ready.

Having the external communication in one centralized location is beneficial due to the simple fact that if an external service changes you can easily just replace the service without having to change any command or view.

Delegates can be organized in groups. For example, create one delegate object to house all the calls related to user modification. That way you have all the calls made to your API or web service relating to the functionality in one place. There is no need to have a delegate for every single related service call.

Not everything needs to go into CG:

So the point of a micro-architecture like CG is to allow a developer
to hang their code on this very light-weight framework. Developers can paint themselves in a corner because they feel that every object has to be tightly tied into CG. They dump every single data point into the Model or have complex data mining or algorithms sitting right into the command or delegate.

It is important as a developer to architect your application properly and allow pieces of your application to reside out of CG that don’t need to be there.

Summary:

I hope you found some of these points helpful in designing your next CG based application. I know once I started implementing some of these best practices it became apparent to me at how easier my applications would scale and how fast I could update certain sections of my code.

New classes! Coming this fall…

Monday, August 3rd, 2009

Is everyone ready for some new classes from C2? Here is a sneak preview of some of the new classes we will be introducing this fall.

The JavaScript family:

Interactivity for Designers 1 – No programming knowledge required. This class introduces designers with a knowledge of both CSS and HTML to several pre-build JavaScript projects that can be implemented with virtually no programming. Lightboxes, slideshows, tooltips, simple form validation are all covered in this 4-hour class. This class is an excellent introduction to interactive concepts for designers wary of programming.

Interactivity for Designers 2 – No programming knowledge required but Interactivity for Designers 1 is recommended. This 4-hour class shows designers with HTML & CSS knowledge how to configure and modify pre-built JavaScript projects without having to dive deep into JavaScript programming. This class is an excellent introduction to interactive concepts for designers wary of programming.

Introduction to jQuery – Most professional web developers don’t feel like re-inventing the wheel, so over the last 5 years the use of JavaScript libraries for web page interactivity has skyrocketed and jQuery is one of the most popular libraries available. This 6-hour class introduces the web developer with a solid understanding of HTML & CSS to the programming concept necessary to start building highly interactive web pages using jQuery.

The Flex/ActionScript family:

Introduction to Adobe Flex – This 6-hour class is an introduction to Adobe’s Flex framework for anyone interested in creating and deploying highly interactive web applications.

Creating Adobe AIR projects – Adobe’s AIR technology allows designers & developers to create multi-platform standalone applications using a variety of technologies underneath the skin.

Introduction to Adobe Catalyst – Adobe’s new development environment aimed at designers – use the tools you already know and love (Photoshop & Illustrator) to create functional, dynamic user interfaces that can stand alone or can be handed-off to a developer for advanced functionality.

Just a sampling of some of the things we’ll be unveiling soon. Let us know what you think!

Lovin’ the RSS Feed

Friday, January 25th, 2008

Have you taken advantage of the RSS feed on any of your daily blog reads? I did about 6 months ago and I’m hooked. I can get them thrown right into my email box or have them bookmarked on top.

The RSS feed updates you on new posts, or even old posts that somehow relate to a key word – like your company name (maybe this is how the Apple informant found me so quickly …) or “Photoshop Hints.” Just another way to keep our daily lives a little simpler.

“How do you do it?” you say. Well it’s simple.

Let’s start with the basic RSS feed. If you’re on a blog that has the feed, you just hit that funky little RSS in the upper right hand corner. This will place your RSS on your bookmark bar.

Most updated mail programs already include the email-notification feature. For instance, if you’re using Mac’s Mail program – just go into your “Mail” main menu and scroll down to “Add RSS Feeds.” You can either include the bookmarked feed provided by the all-powerful (but not always web-browser compatible) Safari, or select a specific URL – perhaps you’d like to select a little blog at 100percentfreshc2.blogspot.com – I’m just throwing that out there.

Speaking of web-browser compatibility, you’ve heard about Flex right? The new Adobe application that helps you get things right for all browsers. Check out the upcoming event at WCTC on February 6 (www.milwaukeeaug.com) or drop Kevin an email.

Photoshop Express

Thursday, January 3rd, 2008

The wait is almost over. Ever since Adobe CEO Bruce Chizen’s announcement last September of an online version of Photoshop, the web has been a buzz about what this will look like, what will it feature, etc. Adobe since this announcement has already launched an online version of Adobe Premiere, called Premiere Express. (You can try it out here on YouTube’s Mashup. ) I look at this as the trial run for Photoshop Express. Both are built using the Adobe Flex application which means these apps are completely run via your web browser and computer, not a remote server.

Here is what we know so far. Adobe plans to launch Photoshop Express in the first quarter of 2008. It is not meant to replace any existing software (you Elements users can exhale now), instead it will bring “Photoshop to the masses”.

You will be able to use familiar items, such as the healing tools, crop, and liquify commands. This also has a limited history so there are undos! The one downside is that it has a lot of “auto” corrections instead of the familiar menu options. The way this will work is you choose what you want to change in your photo, such as saturation, then the application gives you a drop down with several options of varying degrees to click on. Convenient but limiting.

No matter what the final version of this Rich Internet Application (RIA) holds, it is bound to place Adobe as the leader for online content and innovations.

If you want to learn more about Flex, RIA, or the future of web applications, be sure to check out the upcoming Flex presentation on Feb. 7 at WCTC. Check the pipeline for more info!

 

Adobe Quark logo