// you’re reading...

Flash Builder Development

Can you spot the new Flex Builder 4 features?

Maybe Fb4?

So it’s amazing how much dust gets kicked up after we ship a product. As soon as Flex Builder 3 went out the door, we immediately started working on Flex 4…new states syntax, improved components…a small project called Thermo :) . And somewhere in there, we started scheming about what IDE features we could throw into the next version of Flex Builder…and it’s a *very* long list.

One of the new developers on the Builder team, Scott Evans, has just started blogging about IDE features and between the two of us, there might be a post every few weeks about the direction of the language intelligence/coding features that we’re working on for FB4. And Tim Buntel has posted a great entry about IDE maturity as well…I suggest taking a look and figuring out what to spend your $1oo on.

And what am I working on? I’ve had some time to implement a few pet features…if you look closely at the screen shot, maybe you’ll see something new…

Discussion

37 comments for “Can you spot the new Flex Builder 4 features?”

  1. namespaces? or maybe marching ants around the outside of the app. Oh, maybe override… wow–yeah, that’s needed.

    Posted by Phillip Kerman | May 9, 2008, 12:12 pm
  2. dang, I’m thinking overload!

    Posted by Phillip Kerman | May 9, 2008, 12:12 pm
  3. alright, two points for you. new namespace hinting…plus override indications…there’s more though :)

    Posted by david.z | May 9, 2008, 12:33 pm
  4. oh boy, package icons instead of just folders! do the packages show up as dot-notation in the project explorer? also, any chance you can make this bug part of your “pet features”?

    https://bugs.adobe.com/jira/browse/FB-12369

    i’ve submitted a couple other refactoring bugs, but they have gone largely unnoticed.

    Posted by Dan Schultz | May 9, 2008, 1:00 pm
  5. So I just raised the attention of that bug…any other bugs that you feel are stagnant?

    Posted by david.z | May 9, 2008, 1:05 pm
  6. I see new icons in the Outline view.

    Posted by DasFX | May 9, 2008, 1:33 pm
  7. This one is a bugger:

    https://bugs.adobe.com/jira/browse/FB-11950

    Thanks David!

    Posted by Dan Schultz | May 9, 2008, 1:40 pm
  8. It would be nice to have some auto-complete help on the things we write a billion times a day. “public ” should prompt me with var and function. “override ” should create a prompt, etc.

    Allowing event constants in event metadata would also be nice, like this: [Event(name=MyEvtClass.SOME_EVENT, type=MyEvtClass)]

    Somewhat related, the prompts for addEventListener should use actual event constants that exist, not just the string values in event metadata converted to const format.

    Posted by Ben Clinkinbeard | May 9, 2008, 7:28 pm
  9. Oh, and organize the imports in Script blocks in MXML files. Please.

    Posted by Ben Clinkinbeard | May 9, 2008, 7:29 pm
  10. great class name..

    Posted by kafka | May 11, 2008, 7:09 am
  11. metadata that actually uses code as Ben’s example (i.e. using a constant and a class that can be checked by the compiler) would be great. I hate those loose strings we all have to use.

    I’d love to see the syntax of the event metadata changed as well whilst i think about it. IMO it should be…

    [Event(type=MyEvtClass.SOME_EVENT, class=MyEvtClass)]

    … means in AS we refer to that first prop as the type, the current metadata is somewhat confusing.

    Posted by Tink | May 11, 2008, 12:55 pm
  12. I second Tink’s and Ben’s requests. Completion for var/function and the ability to reference classes and constants in metadata would both be quite excellent.

    Posted by Josh Tynjala | May 11, 2008, 4:27 pm
  13. David? FB-11950 that Dan pointed out is also my biggest annoyance. I have a suspicion that this one runs deep though. Whatever it is causing this issue, this is just one of the side-effects, so fixing this would close a lot of open bugs.

    J

    Posted by Jensa | May 12, 2008, 12:46 pm
  14. Jensa and Dan…can you guys give me more to go on than “sometimes it doesn’t work”? I need a solid, reproducible case or the actual projects that you’re dealing with. Feel free to e-mail me at dzuckerm at adobe dot com and we can figure this out off list

    Posted by david.z | May 12, 2008, 12:51 pm
  15. Ben and Tink: I would love to see Flex change so that constants can be used in event declarations. There’s always a discussion about it internally, and i’ll make sure to add your feedback to that discussion

    Posted by david.z | May 12, 2008, 12:52 pm
  16. My one feature I’d like is overloaded methods. Event constants in declarations would be nice. Other than that, intellisense, intellisense, intellisense and it has to be contextual. Open up Visual Studio and check out their intellisense and you’ll see where flex builder needs to be. There should be a popup on every key stroke.

    Posted by Brian Holmes | May 13, 2008, 9:04 pm
  17. Wow, I reread my bug post, and noticed who horrible I explained this bug :-) . I’ll spend some time tonight to get a working example to reproduce the issue.

    At first glance, it seems like if you try to do your first refactoring (when it does the indexing) from within a library project you will get this problem. However, if you refactor from a Flex project, everything works fine.

    Posted by Dan Schultz | May 14, 2008, 2:30 pm
  18. How about being able to drop a cfc into the mxml and have a auto-generated?

    Posted by Mark Forsberg | May 16, 2008, 8:16 am
  19. How about being able to drop a cfc into the mxml and have a remoteObject auto-generated.

    Posted by Mark Forsberg | May 16, 2008, 8:25 am
  20. Quick Fixes – that’d be sweet!

    Posted by Dirk Eismann | May 19, 2008, 2:33 am
  21. Being able to place Custom components into folders/groups. At present the long list is hard to manage, especially when including collections like flexlib

    Posted by Richard T-J | May 22, 2008, 9:48 pm
  22. First of all i’d like to thank you with your excellent work on the Flex Builder but there are a few features that would make coding a lot easier and fun :p

    If you don’t mind I’d like to sum them up in the following list:
    - warnings when vars or functions are never used in the code (when you create a var and you decide not to use it but it is still in the declaration section it clutters up that space and might cause confusion later on)
    - more suggestions like when you type: “public” it should suggest var/function
    - getter/setter generation (when you make a var _time it should make a getter and setter ‘time’)
    - Code templates (like: if, while, try/catch, singleton)
    - It might happen that when you run a project, it never runs through a block of code you just wrote because the condition is never reached. Some editors color code green when the code was executed at runtime
    - var/function highlighting, when you put your cursor on a var, the editor will highlight the code where it is used
    - autoformatting of code

    Ok, that’s my wish list at the moment :p It would be great if you could implement some of these features but I also understand I’m not the only one requesting new features :p. You can give me feedback at: bart dot claessens at boulevart dot be. I used to work with FDT for eclipse, you might get some inspiration of their project ;)

    Posted by Bart Claessens | May 25, 2008, 3:25 am
  23. One thing that bugs me is the amount of calling and return code to do a pop up window.

    It should be a simpler.

    It takes 3-5 lines of code to pop up a window.

    Also, flex library is big. One problem w/ java is that they would never deprecate things and it got larger, and larger and no one ever said no.
    How can we remove some stuff from flex so it’s smaller.

    .V

    Posted by Vic | June 5, 2008, 12:18 pm
  24. Hi David,

    i really would like to second the remarks of tink and ben.

    absolutely needed…. as wel as some advanced refactoring posibilities and template support!

    also some more advanced code completion/code generation would be awesome. the guys from flashdevelop are doing a great job in this regard:

    http://www.flashdevelop.org/wikidocs/index.php?title=Features:Completion
    http://www.flashdevelop.org/wikidocs/index.php?title=Features:Generation

    looking forward to the first beta :)

    Arnoud

    Posted by arnoud | June 13, 2008, 10:33 am
  25. Can you make it so we have an option to make library projects always include all of their classes? I have never needed/wanted to exclude classes in the project and going in and rechecking things every time a class is added is annoying.

    Posted by Ben Clinkinbeard | June 13, 2008, 10:49 am
  26. I’m not sure what this fuction is called, but I would like to see if you double click in a mxxml tag event handler that the ide auto creates a function for you with the control name and event type. So if I click in the ide would auto generate:

    function btn_1_click_Hanlder(event):void
    {
    }

    The IDE would auto add a script block if one didnt exist. It would add a id to the control if it was null or use the assigned id if present…
    this would be very nice for consistent nameing..

    Posted by Bill | June 19, 2008, 1:11 pm
  27. i would have to agree with all the code automation additions. i used to enjoy in SEPY if i had written say

    var USER_OPTION:Boolean

    if a couple lines later i start typing USE it would popup a menu to finish it for me.

    Posted by mike | June 23, 2008, 7:56 pm
  28. also im not sure if im doing something wrong but when i shrink/expand code brackets once i close the file it all resets.

    Posted by mike | June 23, 2008, 8:05 pm
  29. Hi,

    I have a question about view states:

    Normally i set the states of a view object in the folloving manner

    states
    mx:State name=”{StateEnum.STATE_NAME_A}”
    mx:State name=”{StateEnum.STATE_NAME_B}”
    /states

    So the StateEnum defines the possible values as static const for the currentState of the object.
    This way we have a type save solution with autocompletion as well.

    I have a separate statemanager for the whole app that handles all states in the application. In effect a central navigation manager.
    so all “currentState” variables are bound on the Statemanager like:

    MyView currentState=”{StateManager.getInstance().myViewState}”

    The statemanager internally enforces that assignments to the myViewState variable are values of StateEnum. This way we can still enforce valid states. This is nice if you want to suport deep linking into the flex app. The statemanager listens for changes in the url and sats the view states accordingly, which update the views by binding.

    With this structure i can also update for example a CrumbtrailView object in a central way. All navigation logic is centralized and the StateEnum is the contract between the StateManager and MyView

    Now finaly…… the point im trying to make:
    With the new states we have the posibillity to change properties of an object in an easy way like:

    CheckBox label=”Helicopter” color.stateName=”0xFF0000″

    But when i use Enumerations as the state names i would need a construct like:
    CheckBox label=”Helicopter” color.{StateEnum.STATE_NAME}=”0xFF0000″

    will something like this be possible? It would be a killer feature in my opinion, but i cannot find any info on this.

    thanx for reading this long post!

    Arnoud

    Posted by arnoud | June 28, 2008, 4:35 am
  30. It would be very nice to have a shortcut that will generate a block for ASDoc comments. I would be happy if the shortcut would just generate the following for me:


    /**
    *
    *
    * @param myparam
    *
    * @result
    */

    The param tags should match the params of my method and the return tag should only be added if the method has a return type other than void.

    Posted by TJ | July 1, 2008, 6:21 am
  31. Hi David,
    Thanks for the hard work and your endless efforts. Tell you the truth, im pretty new to Flex and i was just cheking the IDE. My concern is to reduce the learning curve of just learing the IDE and associated elements, that would help to spend much more time and concentration on learing the language. I totally support what other guys said regarding Autogeneration and Intellisence. Also when clicking on a control or a property of a control, there is no description of what is this and where it is used. I’m still exploring the IDE, hope my feedback would be helpful.
    Thanks again.

    Posted by Yaser | July 20, 2008, 11:29 am
  32. I see new icons in the Outline view.

    Posted by toby | July 29, 2008, 6:24 pm
  33. David, I just came across your blog and was amazed how many missing “must-have” FB features were discussed here! I really hope this information gets to the FB4 planners!

    Anyway, my company is developing a large (>100,000 line) application in Flex and the Flex debugger/profiler has proven absolutely invaluable as the project has grown. Based on this experience, I believe adding support for trigger breakpoints in the FB debugger (e.g. break when Array element’s value changes) would dramatically speed up development of large RIAs.

    Posted by cristian | August 1, 2008, 10:05 am
  34. How about this bug ?
    Is it going to be fixed in FB 4 ?

    http://bugs.adobe.com/jira/browse/FB-12201

    Posted by Fadi | October 10, 2008, 10:34 am
  35. Any place where we can look to see what new components are rumored for Flex 4? We’re specifically looking for footer/total row for the grid, and some sort of grid-ish control that can do row/colspan like an HTML table.

    Thanks,

    s.l.

    Posted by slocke | November 4, 2008, 11:45 am
  36. Hello!

    Looks great!

    Will flex 4 be available for linux?

    (as a eclipse plug in?)

    Greets

    Posted by Rasmus Jonsson | November 12, 2008, 12:24 am
  37. How bout this:
    http://bugs.adobe.com/jira/browse/FLEXDMV-1853

    I cannot find any work-around.

    Posted by John Isaacks | December 6, 2008, 9:15 pm

Post a comment