Half year ago I made few comments regarding tricks I like to use when developing large Flex 2 applications. SInce then I have been receiving steady stream of emails – once every week in the beginning, up to few per days lately. They are asking for information from the upcoming Ria Book we are writing (http://www.riabook.com). Apparently, there are quite a few developers that a) become impatient if the build takes more then 5 seconds and b) concerned that their application will be delivered to the user with similar attention span that could walk away in 10 seconds or less – regardles of artwork in the progeress meter.
That pretty much forces developers to break the applications in the manner similar to the current generation of loosely applications:
- application has to use RSL methodology to speed up development and minimize linkage time
- bootstrap application has to be kept to bare minimum – just initialize global managers and list common runtime libraries – to keep “rebuild” time low and initial load fast
- optimized runtime libraries – while it is tempting to load complete framework SWC with every application, it would amount to extra 500-600KB on the initial download – better managememt via automatic extract to shared RSL is required
- application should make use of automatic download of “pages” – essentially parts of application that are either optional or independent or can be customized/added due to subscription /security.
Given those requirements the book talks about static linkage of Flex applications (unlike classical environments that compile everything and then link object modules Flex starts from the “application” and pools necessary resources via sophisticated linker/preprocessor/compiler/optimizer/packager workflow. The book describes the differences between MXML and ActionScript applications, differences between compile-time and run-time linkafe, class loading, self-initialization of dynamically loaded SWFs, and other small details that you only need to know when your application grows over 10-15 screens /1MB of statically linked SWF.
I am starting this thread here in format of Q&A to answer the forementioned issues.
[tags]Flex, ActionScript, large, module, link, static, deployment, distributed[/tags]