Build 06/12/2010

Due to the significant changes in this release, all users are advised to do a full project clean (Project -> Clean… ) on all Potomac projects.


Dynamic Bundle Loading

The main focus of this release is to enable dynamic bundle loading. That is, to allow applications to determine which bundles to load at runtime based on some internal logic of their choosing. This feature is accomplished through the use of a new extension point [StartupListener]. For more information on how to implement dynamic bundle loading please see this page in the documentation.

This new build contains a new example application ‘PotomacAdvancedExample’ and bundle ‘potomac_advancedexample_core’ that demonstrate dynamic bundle loading.

Among the changes to support this feature is the addition of a file called ‘assets.swf’ in each bundle’s output folder. This file, found alongside the existing swc, swf, and bundle.xml, contains all resources and assets necessary for Potomac to load the bundle. This includes an embedded copy of the bundle.xml as well as any image assets used by extensions defined within the bundle. The bundle.xml found in the bin directory is no longer loaded at runtime. It is still required at compile time as its used by the Potomac tooling.

Potomac Preloaders

Applications using dynamic bundle loading or who otherwise want to provide a very branded experience may make use of the new Potomac enhanced preloading features. A preloader is a class that shows the initial ‘progress’ UI before an application is loaded. Potomac initialization can be as long or in many cases longer than the initial application download, therefore Potomac now has features to extend preloaders past the Potomac initialization phase. Please see this page in the documentation for more information.

RSLs now Preloads

In prior versions, bundles could be marked to be loaded as RSLs in the appManifest.xml. This has now been altered to instead marked bundles as ‘preloads’. A preloaded bundle is loaded immediately after installation (ie. at startup). In most use cases, this results in the same user experience but offers some more flexibility for updating bundles (don’t need to recompile the main application) and other future features.

The ‘rslRequired’ attribute of [ExtensionPoint] declarations was renamed as a result to ‘preloadRequired’. If you have an existing [ExtensionPoint] with this is attribute it must be renamed.

SourceMate Integration and [ExtensionPointDetails]

The Potomac Flash Builder plug-in can now integrate with ElementRiver’s SourceMate plug-in. Specifically, SourceMate will provide content assist (i.e. code hinting) for Potomac extension points. To enable this integration you must be using SourceMate version 1.1 (currently in beta).

SourceMate will read any declared [ExtensionPoint]s automatically but developers may wish to provide more details including descriptions, default values, and more. The new extension point [ExtensionPointDetails] is available for this purpose. Please see this page in the documentation for more details.

Extension assets

In prior versions, all assets (images) specified in an extension tag were required to exist in a special ‘extensionAssets’ folder. This is no longer required. Assets may exist in any folder. Previously, all files in the extensionAssets folder were embed into the main application so that the assets would be available prior to the bundle being loaded. Now only those assets specifically used in an extension tag are embed and they are now embed into the new assets.swf file found in the bundle’s output directory (they are not incorporated into the main application in any way).

Source Control and Potomac Generated Files

As a result of some of the above feature work, as well as the continuing effort to make Potomac more ’source control’ friendly, some of the files which were generated automatically in the potomac.derived package have gone away. In fact, the only remaining automatically generated file is the PotomacInitializer.as. All other files have been removed or made obsolete. Performing a project clean on a Potomac application project should remove these obsolete files for you automatically.

Other

There were a handful of other minor changes. The ASDoc has been updated.