Essential Eclipse Plug-ins and Tools for Flash Builder Developers


Published on

Here are the presentation slides for the presentation I gave at MAX 2011 Los Angeles, CA. In this presentation I have covered “Essential Eclipse Plug-ins and Tools for Flash Builder Developers”

Exploring essential plug-ins and tools that every developer should add to their Adobe Flash Builder installation. In addition to covering configuration of the plug-ins, Exploring how to use them as part of a workflow for rapid development of Flex and ActionScript applications.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • I am a consultant, technical writer and technical lead. As a technical writer, I wrote books covering Flash technologies. I maintains an active blog and spoken at several conferences regarding the Flash platform. I helped companies follow the XP and Scrum methodologies to implement popular frameworks, optimize and automate built processors and code review, and follow best practices. I has consulted a variety of clients in different fields and sizes, from large corporations such as Viacom, NBC Universal, and Weight Watchers to startups such as and
  • In this presentation I will be covering “Essential Eclipse Plug-ins and Tools for Flash Builder Developers”
    We will explore essential plug-ins and tools that every developer should add to their Adobe Flash Builder installation. In addition to covering configuration of the plug-ins, we'll explore how to use them as part of a workflow for rapid development of Flex and ActionScript applications. By attending this session, you'll learn how to save development time and increase your productivity.
    Give a quick overview of session agenda….
  • Eclipse isn't a single monolithic program, but rather a small kernel called a plug-in loader surrounded by hundreds (and potentially thousands) of plug-ins. Each plug-in may rely on services provided by another plug-in, and each may in turn provide services on which yet other plug-ins may rely. This modular design lends itself to discrete chunks of functionality that can be more readily reused to build applications not envisioned by Eclipse's original developers.
    The behavior of every plug-in is in code, yet the dependencies and services of a plug-in are declared in the MANIFEST.MF and plugin.xml. This structure facilitates lazy-loading of plug-in code on an as-needed basis, thus reducing both the startup time and the memory footprint of Eclipse.
    On startup, the plug-in loader scans the MANIFEST.MF and plugin.xml files for each plug-in and then builds a structure containing this information. This structure takes up some memory, but it allows the loader to find a required plug-in much more quickly, and it takes up a lot less space than loading all the code from all the plug-ins all the time.
    Plug-ins are loaded lazily during a session but not unloaded, causing the memory footprint to grow as the user requests more functionality. In future versions of Eclipse, this issue may be addressed by unloading plug-ins when they are no longer required
    The Eclipse IDE displays and modifies files located in a workspace . The workspace is a directory hierarchy containing both user files such as projects, source code, and so on, and plug-in state information such as. The plug-in state information located in the workspace directory hierarchy is associated only with that workspace, yet the Eclipse IDE, its plug-ins, the plug-in static resources and plug-in configuration files are shared by multiple workspaces.
    See: /workspace/.metadata/.plugins
  • Show in FlashBuilder….
  • Applications > Adobe Flash Builder Burrito > eclipse > plugins
    Some plugins require files in the features folder
  • Help > Install New Software > Already Install > Installed Software > Uninstall
    When a feature is disabled, all its plug-ins will be disabled also. They are still available on disk, and they can be enabled at any time in the future.
  • Help > Install New Software > Already Install > Installed Software > Uninstall
    When a feature is disabled, all its plug-ins will be disabled also. They are still available on disk, and they can be enabled at any time in the future.
    We advise extreme caution when physically removing plugin:
    You should not remove plug-ins from Eclipse.
    Remove the wrong ones, and you may have quite some trouble restoring your Eclipse to a stable state. Unless you care a lot about hard disk use, we recommend leaving the plug-ins where they are.
  • Flash > About Flash Builder > next click on the Eclipse icon. Next > you can talk to “Plug-in Details”. On Eclipse ver Help -> About Eclipse.
    FB Pannini is using Eclipse 3.6 aka ‘Helios’
  • FB 4.5 allows creating code templates, which provides a structured description for frequently used coding patterns. Flash Builder provides out of the box predefined code templates that help you quickly create MXML, ActionScript, and CSS code. You can also define your own code templates.
    Show how to create your own template…
  • Go to Flash builder and show how to use plugin
  • 4. FlexUnit 4 metadata
    The FlexUnit 4 framework is based on metadata tags. So far you've seen [Suite], [Test], and [RunWith].
    Here are some other common metadata tags:
    [Ignore] - Causes the method to be ignored. You can use this tag instead of commenting out a method.
    [Before] - Replaces the setup() method in FlexUnit 1 and supports multiple methods.
    [After] - Replaces the teardown() method in FlexUnit 1 and supports multiple methods.
    [BeforeClass] - Allows you to run methods before a test class.
    [AfterClass] - Allows you to run methods after a test class.
  • If you'd like, you can import settings for Flex Formatter
    Flex Formatter is an extremely useful plugin for FlexBuilder / FlashBuilder that formats your ActionScript code (AS3) and MXML according to a broad range of settings, and helps you to generate ASDoc comments automatically. It is free, and open source.
    It's code formatting is quite robust and configurable, handling things like brace settings (cuddling versus next line), white space around parameters and operators, sorting imports, and a ton more. Thankfully, you can export your settings to a file and share it with your whole team. You can also have it automatically update settings from a file that you can share over the network or via SVN / GIT.
    Unfortunately, it's ASDoc features are much more rudimentary, and do not have any configuration options. They serve as an acceptable starting point, and save some time, but I would love to see some additional support here (for example, an option to mark private and or protected members as @private, which is a very common requirement).
  • Screen shots showing the generation of ASDOC for a method. At the same time you can generate ASDOC for the entire AS file. Note that generating ASDOC is only available for AS files and wouldn’t work on MXML files. Many including myself will agree that formatting code should be standard kit and not a plugin just as in other IDE such as FDT
  • Current version: SourceMate
    This is designed for use with Flash Builder 4 and not "Burrito" (which adds many of the features)
    You can update to the V2 without removing the old version…
    Userid: sourcematePassword: source20element
  • Caveat - not open source as most code enhancement plugin and cost $79
    The SourceMate 2.0 Beta:
    1. as-you-type error identification and quickfixes.  
    2. Organize Imports - adds imports as well as rearranges.
    3. Externalize Strings - extract strings inside classes into resource bundles.
    4. New File from Template Wizards - create a file from scratch based on a template.
    5. Copy Qualified Class Name - right-click option in the Package Explorer.
  • The installation is a bit of a challenge. ADT was built for Eclipse 3.3, however FlashBuilder is using newer version of Eclipse. What you will have to do is first install WST and only then you will be able to install ADT plugin.
    To install WST add a remote location: galileo – select: Web, XML, and Java EE Development > WST Server Adapter
    Once WST is installed you can install the ADT plugin:Add remote location:ADT –
    Lastly, point to the Android SDK location. Flash Builder > Preferences > Android
    This is valuable – I have been using it with AIR Android development…
    In case you’re doing AIR Android development you’re familiar with Dalvik debug tool (just run ./ddms) and adb. You get information about the Android applications running and you can view/filter processors. You can view devices connected, terminate applications, filter, screen grab and many other features. What I usually do is filter for “flash” and you can see processors relate to AIR Android or Flash 10.1.
    In case you’re doing AIR Android development using FlashBuilder 4.5 (pre-release), I highly recommend adding Android Development Tools (ADT) plugin to your Eclipse/FB. It will replace the need to use Dalvik and adb command line in many cases.
  • View > tasks
    Mylyn (formerly known as Mylar) enhances productivity by seamlessly integrating tasks into Eclipse and automatically managing the context of those tasks as you work. Mylyn Project Lead Mik Kersten created two part article:
    Mylyn extends the Eclipse SDK with sophisticated mechanisms for keeping track of tasks store locally or post to a task repository. To connect to other repositories you need the Mylyn connector for that repository. Example:
    Integrate with JiRA:
    Once your tasks are integrated, Mylyn monitors your work activity on those tasks to identify information relevant to the task. task context -- the set of all artifacts related to your task. These can include documents you've browsed, methods you've edited, and APIs you've referred to
  • Open Source Software by Adobe, FlexPMD. The project runs a set of extensible rules over your AS3 or Flex source to detect bad coding practices and raise awareness that these issues exist. This is especially important for team development projects where code is being edited in mass and quality practices become essential.
    The rule set within FlexPMD is extensible and you should customize rules to fit your project. If you want to detect undocumented methods or enforce naming conventions, feel free to write a rule for that, and better still share the rule (FlexPMD is open source).
    Here is the FlexPMD Ruleset Creator. It is a Flex app that lets you export a set of rules custom to your app needs.
    Once you have run FlexPMD against your project, you can load the output into the PMD Violations viewer to see all the issues.
    FlexPMD also supports Hudson integration so with every build tests are run automatically and the team has a scorecard of quality throughout development. Seeing projects from this point of view really changes your perspective. I know on the Adobe Professional Services team FlexPMD has enabled teams to see deep within very large projects.My favorite feature of FlexPMD is flagging unused code. It is so easy to create a variable or method that goes unused. Detecting these within your project is hard and deleting a method always feels like a risk unless you really know it is unused. Having a tool to flag these is great and better still it gives me the confidence to delete methods and properties with impunity.
  • A trial or licensed version of Adobe Flash Builder 4 Premium is required to use the ActionScript Code Coverage Plug-in. To install Unpack the ZIP file and copy the folder into the eclipse plug-ins folder
    Open ‘package’ view to see the report…
  • Doc:
  • To use plugin -- open document in text editor.
    See here:
  • In the main menu navigate to: Help > Install New Software…
    Add the following URL with the name of galileo
    In the table of features, expand Web, XML, and Java EE development > Eclipse Java EE developer Tools
    Finish the wizard and restart Eclipse
    It has been the reigning champion of Java builds for years
  • Apache Ant
    1. Ant doesn't have formal conventions like a common project directory structure or default behavior. You have to tell Ant exactly where to find the source and where to put the output. Informal conventions have emerged over time, but they haven't been codified into the product.
    2. Ant is procedural. You have to tell Ant exactly what to do and when to do it. You have to tell it to compile, then copy, then compress.
    3. Ant doesn't have a lifecycle. You have to define goals and goal dependencies. You have to attach a sequence of tasks to each goal manually.
  • m2eclipse Extras:
    Maven SCM Integration
    Maven SCM handler for Team/CVS
    Maven SCM handler for Subclipse
    Maven issue tracking configurator for Mylyn 3.x
    Maven Integration for WTP
    M2Eclipse Extensions Development Support
    Maven is a project management tool which encompasses a project object model, a set of standards, a project lifecycle, a dependency management system, and logic for executing plugin goals at defined phases in a lifecycle. When you use Maven, you describe your project using a well-defined project object model, Maven can then apply cross-cutting logic from a set of shared (or custom) plugins.
    Don't let the fact that Maven is a "project management" tool scare you away. If you were just looking for a build tool, Maven will do the job. In fact, the first few chapters of this book will deal with the most common use case: using Maven to build and distribute your project
    Maven is more of a platform than a tool, while you could consider Maven an alternative to Ant, you are comparing apples to oranges. "Maven" includes more than just a build tool.
    1. Maven has conventions. It knows where your source code is because you followed the convention. Maven's Compiler plugin put the bytecode in target/classes, and it produces a JAR file in target.
    2. Maven is declarative. All you had to do was create a pom.xml file and put your source in the default directory. Maven took care of the rest.
    3. Maven has a lifecycle which was invoked when you executed mvn install. This command told Maven to execute a series of sequential lifecycle phases until it reached the install lifecycle phase. As a side-effect of this journey through the lifecycle, Maven executed a number of default plugin goals which did things like compile and create a JAR.
  • Flex Mojos:
    Guide book:
    Create project and filter: “Flex”
  • When installing -- no need to install jgit (java git plugin) only egit (both are hosted on same update location)...
  • After install is completed it asks for the connector to install -- you must select one connector to get it working
    What Is Incubation?
    The purpose of the incubation phase is to establish a fully-functioning open-source project. Many Eclipse Projects are proposed and initiated by individuals with extensive and successful software development experience - the incubation phase is not about changing those successful practices, but rather it is about developing the additional practices that create an open, transparent, welcoming, and predictable open-source project.
    While it may seem easy to transfer from closed source development to open source development (isn't it just opening up the source code repository?), the history at Eclipse has shown that it takes practice to learn the community-defined Eclipse-centric open source process and to build viable user, plug-in developer, and committer communities.
    Of course, in addition to learning "the Eclipse Way", the new project team must continue to do all the typical software project management tasks: identifying critical use cases, producing a high level design, setting up a release engineering system, writing automated unit testing, etc.
    Home -
    Update site -
  • Hudson is a slick, stable, and easy to install continuous integration environment:
    Run the server:
    java -jar ~/.hudson/hudson.war --httpPort=9000 &
    URL: http://localhost:9000/
    Install wget on mac:
    During recent years Hudson has become a popular alternative to CruiseControl. Commercial support for Hudson through Sun Microsystems was announced in August of 2009. Support is currently under review as Hudson CI transitions into Oracle.
    Hudson home:
  • ×