Today, I focused on Dynamic Panels and some of the interesting things you can simulate with them. It was really quite intriguing. It seems like the more you learn, the more you’ll be able to do. I’ve spent a lot of my time today debugging, going back and forth between examples/tutorials, and moments of excitement and frustration. I can’t say its gone completely smooth, but I can say I’ve had a lot of fun playing with it!
So far, I’ve decided if you have the patience, there are a lot of really complicated interactions you can create. And, I’ve also learned there are some additional prebuilt widgets that can keep you from having to create too much! Once you’ve spent all your time creating these new items, you can also save them in a library to use as future widgets (so hopefully you won’t have to recreate the items too many times!).
So, here is what I learned today… Note: You do not write code to do these things in Axure. Instead, you set these conditions up via dialogs. However, for explanation sake, I’m using “pseudo-code.”
Cases – You can have cases for a variety of objects in Axure (OnClick, OnMouseIn, OnMouseOut). These cases can have conditions built into them (e.g. If username_textfield = “user1” then ….). You can build in multiple conditions:
If (A and B and C)
but you cannot have complex conditions:
If (A and B) or (C and D)
You can however create multiple cases with the same actions:
- Case 1: If (A and B), Then XYZ
- Case 2: If (C and D), Then XYZ
And, yes, as the previous formula suggests, you can have multple actions for each case (e.g. Open a pop up, hide a menu, and set a dynamic panel state). It’s a little tedious creating duplicate cases for these situations, but its not awful. There are some good things to keep in mind while you’re building your case lists. Just like in programming, the cases seem to be checked in order. Also, if you have no conditions, the last case will run if none of the above cases are true. This will likely come in handy for error messages.
States – You can create different states for your dynamic panels. It was very easy to see how to create and edit these states, but I admit at first I did not see how to do anything with them. My scenario was to have different errors appear in a dynamic area, based on user input. After much searching, I figured out you can set the state within the case statement:
If A, then Set error_dynamicPanel to A_State and Show error_dynamicPanel.
You can also have states for dynamic panels that also contain dynamic panels with more states. I found it was much easier to figure out exactly what I was working on by using a strict naming scheme. Otherwise, you end up with multiple “State1” tabs in your work area.
Prototype Annotations – One last point I wanted to mention is that if you are worried about having little icons on the fields for specifications:
These can be turned on/off when you generate the prototype if you use the “More Generators or Configurations” (F8) menu option. This way, your users will not get confused during interviews!
One of my biggest concerns when selecting a tool for prototyping is that I will have too hard of a time creating the prototype in my head. The goal for me is to explain/test the best design, not the design that I’m able to create. So, if the tool takes too long to learn or the widget I want is too hard to create… I end up spending too much time trying to create it and not enough time on the design. (On a side note, this is one reason I am not enthusiastic about full HTML prototypes. If the UX person is not strong in HTML, their design will be handicapped based on their abilities. However, if the person is a strong coder or has a strong coder to work with, this is not an issue. It’s just something to keep in mind when you have a team that makes this request.)
I believe Axure will become easier to use as you use it. I also think there will always be new things you have to figure out how to simulate. Figuring out how to solve the problems will be fun at times. However, my biggest concern would be that I would not have time to figure it out to meet my deadlines with the best design (not just the best design I can create with the tool in the time alloted). On a high point, it looks like they have really good customer support to help you out if you get stuck!