Forums

Round Tables
TopCoder Studio Contests
My Post History | My Watches | User Settings
View: Flat (newest first)  | Threaded  | Tree
Watch Thread
Previous Thread  |  Next Thread
Forums > TopCoder Cookbook > Studio Build Competitions (Prototypes, Flash, etc) > Studio Basic #2: Getting Started to UI Prototype
Studio Basic #2: Getting Started to UI Prototype | Reply
This preceding text is created to help anyone who interested to participate in UI Prototype contest. To participate in this contest is easy, you must be a TopCoder member, at least 18 years of age, meeting all of the membership requirements.

So what is it UI prototype, and why prototype are created?

(Note: I took this text from this thread, created by adroc)

1) Client communication - an HTML prototype helps a client visual all the interactions their website or application is going to do as opposed to verbal descriptions or staring at one or two storyboards.
2) To test usability and user interest - To make sure the click-paths/user workflow makes sense before going into development
3) Help sell an idea
4) To prove that something is possible or a design can be done as planned

At TopCoder they take it one step farther and try and make its HTML prototypes ready for development (correct HTML/CSS markup) so a client knows their code is ready for production and works in the browsers they have specified.

(End of adroc's credits)

Here are several official online documents provided by TopCoder for anyone interested in UI Prototype contests:

- UI Prototype Competitions
http://www.topcoder.com/wiki/display/tc/UI+Prototype+Competitions

- Getting Started in UI Prototype Competitions
http://www.topcoder.com/w.....pe+Competitions

- UI Prototype Review Board Guidelines
http://www.topcoder.com/wiki/display/tc/UI+Prototype+Review+Board+Guidelines

UI Prototype Basic

In addition to official documents above, here is my personal account as a prototype competitor at TopCoder. I will covers informal aspect of it, and go further some fun stuff in it.

Skills

To compete in UI Prototype contest you must have knowledges in several areas: from (X)HTML, Cascading Style Sheet, and some JavaScript skills would add a lot benefit. Those main required skills. XHTML or HTML code is formed from a specific XML specification. It contains tags and properties to wrap contents used in web sites. This HTML documents then be styled by CSS document. CSS is formed selectors and classes, and apply them with several user interface rules. The rules ranging from layout, color, and typography. For better understanding on how to build web sites using HTML and CSS, you could read some references available online or read some books.

Some addition skills need also a good understanding on how to use Adobe Photoshop, and some knowledge to operate Adobe Illustrator is a bonus. The other skill needed is some good understanding on one of many text editor to work with the code for the prototype. As you know, prototype work mostly done by hand-coding all the stuff, whether it is HTML, CSS, and javascript code. You must at lest have known one good text editor you could work with. My personal picks is Adobe Dreamweaver (available for both PC & Mac). If some considers Dreamweaver license is bit pricey, there are several alternative free software like Eclipse based IDE (Win & Mac), Crimson Editor (Win), as well Notepad++ and Notepad (win), and TextEdit (mac). Aptana is also a good choice, and it has a separate licensed option. For macintosh platform, there are some cool software for prototype work like BBEdit, Textmate, and Coda. For CSS editing there is CSS Edit. Looks a lot huh? As for my personal preferences, I use mac for work and I own Dreamweaver and Coda license and I used both often. Tough one of all editor is Dreamweaver. Several of Dreamweaver's key feature was auto class naming suggestion, auto finding for image or resources as you type in the code, and the powerful global auto-updating links when you move or rename files. For quick edits, I use Coda as it light and beautiful.

Working Environments

To able to work on most UI Prototype projects, there are some working environment requirements that you should met, at least minimally. As stated in most UI Prototype contest requirement, your prototype must render properly in Internet Explorer 6, Internet Explorer 7, Firefox 2 and 3, Google Chrome and Safari in both Mac and PC environments. Sound a bit crazy, huh? Should you own Mac or PC? Wow, that would take a huge investment before competing to prototype contests. But don't worry. The real concern is browsers. You don't need to test in all platforms, but you should do well testing the prototype in any mentioned browsers.

IE6 is available on XP. IE7 or IE8 is available on Vista. Firefox available on all platforms, and you can only take one version as testing because it is impossible to have both at once. Chrome and Safari are also available on mac and PC environments. So my best bet is, it much be better own a mac, then you can run virtualization on it, so you will have Mac, XP, and Vista at once. For virtualization software in mac, you can use Parallels or VMWare Fusion, both sold at the same range price. If you only having Windows machine, don't worry. You should, however, still tests your work in both XP and Vista platforms. Be gentle and explain your environment by making proper documentation on your work, and stated clearly if you are unable to met to the requirements testing. The key to successful prototype is test and much more test on all required platforms and browsers. So, if you didn't have the environments, you might lose a sight of your work.

Slicing

UI Prototype contests usually provides one or more storyboard (mockup) that taken from previous contest. These documents usually in Adobe Photoshop format, but rarely in Adobe Illustrator. You must able to slice this graphic files into appropriate small chunks of graphic files that will be used as images into your prototype.

The first step to start your prototype work is to slice any provided storyboard into small graphic files. All the background, headers, some navigations if needed, are cropped or sliced from the huge provided storyboard. A good understanding of design as well as image optimization is needed to better create a good prototype, as the final result needed is a fast-load web page template that will get into production.


........continued in another post (8000 chars exceeded)
Re: Studio Basic #2: Getting Started to UI Prototype (response to post by oton ) | Reply
...continued text...


Coding

After you did the slicing part. Now is the coding time. There are many tutorials, articles or books that will give you good understanding on how creating good web site. O'Reilly does published some good books you could read. One of my favorite are High Performance Web Sites (Steve Souders, O'Reilly, September 2007). This book will help you to meet high standard web sites development as practiced by some high profile company. By participating in UI Prototype contests, you should also aware some standards that TopCoder make the prototype works flawlessly.

Here are some useful habits:


  • It usually better to have your own ready to use general templates for use. You could learn from previous UI Prototype contests to know what are most used widgets for prototype works. You could collects and builds your templates bank for future use. Please note, it is not a good thing to take someone work for your use, tough you still able to learn it and apply their techniques into your own work.

  • It also worth to have several scripts ready on your own. As you know, working prototype usually need a lot of JavaScript tool to handle some required interactions. Some of most used JavaScript toolset are:

    • Collapsible panel

    • Tabbed Panel

    • Pulldown Menu

    • Accordion

    • Tooltips


  • It is also good to have some collections of jQuery (a JavaScript framework) plugins as it mostly needed. Some of plugins that often used are:

    • Modal window, like Thickbox and its variation

    • Tooltips (you can build you own, so it mentioned in previous section, or using some available plugins)

    • Carousel

    • Radio or Checkbox replacement, it needed to make standard elements looks beautiful according to storyboard.





Please note, some contest allowed the use of a JavaScript libraries created by others. Some are not. However, good understanding of some JavaScript libraries are necessary. Some of the popular libraries are jQuery, YUI, Script.aculo.us (Prototype JS framework) and also Dojo.

Debugging and Testing

Then the most boring part. It really is. However, if you do some good amount of prototype works, you will find some good habits and future work will become easier and faster. I even experienced that I don't need to have to deal with some nasty bugs (hint: IE6, hello!).

Here are some of good habits:

  • Start your HTML naked. This is how everyone said in web standard development. It means that you type of all your HTML code at once before applying any CSS styling. After completing HTML code and put some contents in it, you test and validated it in the browsers. If everything looks good, you can then continue with CSS. Feels strange? Yeah, it is. By working with this step first, you ensure all of the HTML stuff is put at the right place and it has proper semantic structure. Semantically structured code is like saying page title should be wrapped with H1 or H2, and sub title should goes next lower elements, and it usually H3 or H4, and so.

  • Tests your work from the most modern browser first. Do not deal with IE6 first, as this browser having lots of bugs rendering.

  • Disabled images, css, and javascript to test your work in most limited user environments. If you work works without a problem in such cases, you did a very good job.




...End for now... Will be editing later :)
Re: Studio Basic #2: Getting Started to UI Prototype (response to post by oton ) | Reply
Really useful information. I think you should use the format problem-solution-discussion.

I have some notes:
- You don't need vista to use IE7/IE8 and to install IE6 you can use "multiple_ie" which let you install probably all IE versions (I'm not sure about IE8)
So, one win OS is enough for all IEs.

- In the debugging/testing part it's worth mentioning Firebug extension for Firefox as the ultimate tool for web developers, and the developer toolbar for IE.

Tidy (and Firefox tidy extension) is also a good tool to have as a web developer, it fasten your web development by making easy validating/formatting your code.

- I disagree with you when you say : "Tests your work from the most modern browser first. Do not deal with IE6 first, as this browser having lots of bugs rendering."

I used to test my work entirely on Firefox first, then test the other required browsers, and I missed many deadlines because of that :)

For me, The best think to do it to test whenever you think it's necessary and test in ALL browsers. This way you're sure that you are in the right track and that you won't have to correct the same mistake many times :)

Great work oton ;)
Re: Studio Basic #2: Getting Started to UI Prototype (response to post by AjJi ) | Reply
Just small notes too from me:

- You can use IETester too, as far as i know can running IE8, IE7 IE 6 and IE5.5 on Vista and XP.

And for me to completed the prototype, i always used to test my work on Safari 4 Mac then test the other browser on Mac or Windows.

Cheers guys :)
Re: Studio Basic #2: Getting Started to UI Prototype (response to post by lunarkid ) | Reply
Hey guys!

Thanks for the feedback. Really appreciate it. I hope I can fixing it in the next two days as the deadline approaching. Well, to write this cookbook, we need a lot of time :)

I still have others idea need to write. Oh, only 24 hours a day....