<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Brandon Walkin</title>
	<atom:link href="http://www.brandonwalkin.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brandonwalkin.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 21 Sep 2009 21:12:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iTunes Visual Redesign</title>
		<link>http://www.brandonwalkin.com/blog/2009/09/21/itunes-visual-redesign/</link>
		<comments>http://www.brandonwalkin.com/blog/2009/09/21/itunes-visual-redesign/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 20:40:46 +0000</pubDate>
		<dc:creator>Brandon Walkin</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.brandonwalkin.com/blog/?p=272</guid>
		<description><![CDATA[iTunes 9 was released a couple weeks ago with a significant number of user interface changes. It&#8217;s always interesting to look at the direction that&#8217;s taken with the iTunes UI because it&#8217;s often used as a testing bed for future iterations of the Mac OS X user interface. I thought it would be fun to [...]]]></description>
			<content:encoded><![CDATA[<p>iTunes 9 was released a couple weeks ago with a significant number of user interface changes. It&#8217;s always interesting to look at the direction that&#8217;s taken with the iTunes UI because it&#8217;s often used as a testing bed for future iterations of the Mac OS X user interface. I thought it would be fun to spend a weekend thinking about the iTunes visual design and giving it a minor refresh.</p>
<h4>The Design</h4>
<p><center><a class="largethumb" title="iTunes Redesign" href="http://brandonwalkin.com/blog/images/iTunes/RedesignFull.png"><img src="http://brandonwalkin.com/blog/images/iTunes/RedesignThumb.png" style="margin: 13px 0 15px 0" alt="iTunes Redesign"></a><br />
For comparison:<br />
<a class="largethumb" title="iTunes 8" href="http://brandonwalkin.com/blog/images/iTunes/iTunes8Full.png"><img src="http://brandonwalkin.com/blog/images/iTunes/iTunes8Thumb.png" style="margin: 5px 0 15px 0" alt="iTunes 8"></a><a class="largethumb" title="iTunes 9" href="http://brandonwalkin.com/blog/images/iTunes/iTunes9Full.png"><img src="http://brandonwalkin.com/blog/images/iTunes/iTunes9Thumb.png" style="margin: 5px 0 15px 0" alt="iTunes 9"></a></center></p>
<h4>Toolbar</h4>
<p><center><img src="http://brandonwalkin.com/blog/images/iTunes/ToolbarLeft.png" style="margin: 13px 0 15px 0" alt="Toolbar - Left Side"><br />
<img src="http://brandonwalkin.com/blog/images/iTunes/ToolbarRight.png" style="margin: 13px 0 15px 0" alt="Toolbar - Right Side"></center></p>
<h4>Display</h4>
<p><center><img src="http://brandonwalkin.com/blog/images/iTunes/Displays.png" style="margin: 13px 0 15px 0" alt="Displays"></center></p>
<h4>Table Headers</h4>
<p><center><img src="http://brandonwalkin.com/blog/images/iTunes/Headers.png" style="margin: 13px 0 15px 0" alt="Table Headers"></center></p>
<h4>Scrollbars</h4>
<p><center><img src="http://brandonwalkin.com/blog/images/iTunes/Scrollbars.png" style="margin: 13px 0 15px 0" alt="Scrollbars"></center></p>
<h4>Checkboxes</h4>
<p><center><img src="http://brandonwalkin.com/blog/images/iTunes/Checkboxes.png" style="margin: 13px 0 15px 0" alt="Checkboxes"></center></p>
<p>I&#8217;m closing the comments so I don&#8217;t have to sort through spam. If you&#8217;ve got feedback, feel free to hit me up on <a href="http://twitter.com/bwalkin">Twitter</a>.<br />&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwalkin.com/blog/2009/09/21/itunes-visual-redesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing UI Complexity</title>
		<link>http://www.brandonwalkin.com/blog/2009/08/10/managing-ui-complexity/</link>
		<comments>http://www.brandonwalkin.com/blog/2009/08/10/managing-ui-complexity/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 18:19:08 +0000</pubDate>
		<dc:creator>Brandon Walkin</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.brandonwalkin.com/blog/?p=152</guid>
		<description><![CDATA[Interface complexity is an issue every designer wrestles with when designing a reasonably sophisticated application. A complex interface can reduce user effectiveness, increase the learning curve of the application, and cause users to feel intimidated and overwhelmed. 
I&#8217;ve spent the past year redesigning a particularly complex application with my primary focus being on reducing complexity. [...]]]></description>
			<content:encoded><![CDATA[<p>Interface complexity is an issue every designer wrestles with when designing a reasonably sophisticated application. A complex interface can reduce user effectiveness, increase the learning curve of the application, and cause users to feel intimidated and overwhelmed. </p>
<p>I&#8217;ve spent the past year redesigning a particularly complex application with my primary focus being on reducing complexity. In this article, I&#8217;ll go over some of the issues surrounding complexity and techniques that can be used to manage it.</p>
<h4>Progressive Disclosure</h4>
<p>Progressive disclosure is the most popular means of managing complexity. The idea is that clutter and cognitive overhead can be reduced by hiding less frequently used elements behind some avenue of accessing those elements, like a mouse click or a keyboard shortcut. It requires that the designer accurately determine which elements are frequently and infrequently used and to what degree. </p>
<p>Quite a bit of care needs to be put into the progressive disclosure hierarchy and the mechanisms used for disclosure. Poorly considered use of progressive disclosure can achieve the opposite of the intended effect by making the interface even more complex. As an example, Microsoft Windows has been trending towards removing the menu bar from individual windows and instead packing each function into the main interface (often using pull down menus), which has some issues. I&#8217;ll go over a few of them:</p>
<ul>
<li>There are inconsistent ways of accessing common functionality. The Print function, for example, is in different locations in both the application&#8217;s interface and the progressive disclosure hierarchy. The Print controls in Internet Explorer, Contacts (Windows Explorer), and WordPad are highlighted in the screenshot below, to illustrate this. Competing first-party Mac applications (Safari, Address Book, and TextEdit, respectively) have the Print function available in a consistent location – the last item in the File menu. A user who learns how to print in one of those Mac applications won&#8217;t have to hunt to find the Print function in other applications. It&#8217;s a &#8220;learn once, use everywhere&#8221; model.
<p><center><a class="largethumb" title="Print Buttons" href="http://brandonwalkin.com/blog/images/PrintButtons.png"><img src="http://brandonwalkin.com/blog/images/PrintButtonsThumb.png" style="margin: 13px 0 15px 0" alt="Print Buttons"></a></center></p>
<li>There&#8217;s a tendency to overwhelm the user with progressive disclosure points. The default Internet Explorer interface (with Windows Live installed) has a total of <i>17 pull down buttons</i> – highlighted below. Further, all of these progressive disclosure controls require screen real estate. As more screen real estate is occupied by administrative actions, less is dedicated to displaying the actual content of the application (which, in this case, are webpages).
<p><center><a class="largethumb" title="IE 8 Pull Down Buttons" href="http://brandonwalkin.com/blog/images/IE8PullDown.png"><img src="http://brandonwalkin.com/blog/images/IE8PullDownThumb.png" style="margin: 13px 0 15px 0" alt="IE 8 Pull Down Buttons"></a></center></p>
</ul>
<h4>Contextual Actions</h4>
<p>This is a form of progressive disclosure where contextually appropriate controls are exposed on a particular object. The most common implementation are contextual menus, activated on the Mac by a right-click or a control-click. While contextual menus are a consistent and useful way of revealing contextual actions on objects, they&#8217;re hard to discover, which makes them inappropriate for workflow-critical actions that necessitate greater weight in the interface. </p>
<p>The standard way to give these actions greater weight is to integrate them in your interface by providing the set of contextual controls in front of or near each object. Complexity is increased substantially, because the set of controls is repeated for every object on screen. We can get rid of most of this complexity by using a different progressive disclosure technique. Controls can be displayed on a single object if the object is selected, the object has focus, or when the mouse is over the object. This solves the complexity issue since there&#8217;s only one set of contextual controls being shown at a particular time, but it&#8217;s not without its downsides. Consider whether this sort of technique is appropriate for your interface before deciding one way or the other.</p>
<h4>Alignment &#038; Visual Hierarchy</h4>
<p>Aligning elements in a user interface to a simple, consistent grid, will go great lengths in reducing the appearance of complexity. The use of strict alignment and a thoughtfully laid out grid can turn an interface from chaotic and overwhelming to harmonious and appealing. </p>
<p>Some compelling examples are the inspectors in Microsoft Expression Blend and Adobe Lightroom. While a host of factors are responsible for the Expression Blend inspector looking considerably more complex than the Lightroom inspector, the rough horizontal alignment is certainly a primary one. The horizontal alignment lines have been drawn in red to illustrate the differences. </p>
<p><center><a class="largethumb" title="Lightroom and Expression Blend" href="http://brandonwalkin.com/blog/images/LightroomVsExpressionBlend.png"><img src="http://brandonwalkin.com/blog/images/LightroomVsExpressionBlendThumb.png" style="margin: 13px 0 15px 0" alt="Lightroom and Expression Blend"></a></center></p>
<p>The examples shown above also demonstrate the effectiveness of the techniques used in each interface to indicate hierarchy. The Lightroom inspector has very strong visual distinctions between section headings and their contents. Headings are prominent. Set in large type with generous padding and a relatively high contrast foreground-background color combination, sections, headings, and the relationships between them are immediately clear. </p>
<h4>Visual Noise &#038; Contrast</h4>
<p>The amount of visual noise in an interface has a great deal of impact on the perceived complexity of the interface. And contrast plays an important role with respect to visual noise. Using lower contrast UI elements reduces visual noise which will often reduce the effective complexity of the interface, as you&#8217;ll see in the next couple of examples. </p>
<p>The Address Book UI eschews fields with relatively high contrast borders in favour of fields with borders that are only visible if the field has focus. This causes the fields to blend in with the rest of the interface. The Create Contact window in Entourage 2008 uses the standard window background color and standard text field styling which contributes to the interface looking more complex than the Address Book interface. </p>
<p><center><a class="largethumb" title="Address Book and Entourage" href="http://brandonwalkin.com/blog/images/AddressBook.jpg"><img src="http://brandonwalkin.com/blog/images/AddressBookThumb.png" style="margin: 13px 0 15px 0" alt="Address Book and Entourage"></a></center></p>
<p>As another example, I&#8217;ve taken the Filter window in Aperture 2.0 and mocked up what it would look like with the transparent controls from iLife &#8216;08 (and parts of iLife &#8216;09) with high contrast edges instead of the relatively low contrast controls that it shipped with. The UI I&#8217;ve mocked up looks notably more complex than the shipping interface because of the higher contrast controls. Simply adjusting the styling of your controls can have a considerable impact on complexity. </p>
<p><center><a class="largethumb" title="Aperture mockup" href="http://brandonwalkin.com/blog/images/ApertureContrast.png"><img src="http://brandonwalkin.com/blog/images/ApertureContrastThumb.png" style="margin: 13px 0 15px 0" alt="Aperture mockup"></a></center></p>
<h4>Use of Icons</h4>
<p>Interfaces widely regarded as complex with high learning curves are often characterized by an abundance of icons or glyphs that lack descriptive labels. When a user opens an application for the first time with an interface covered in label-less glyphs, it can be quite daunting. Every icon with a non-obvious meaning will have to be learned for the user to feel any sort of mastery over the application. </p>
<p>This is a difficult problem to solve. There often isn&#8217;t room for a label to sit next to an icon, and in many cases there is cost involved in replacing an icon with a label (mainly, users will not be able to quickly scan the interface for the icon). Deciding when to use an icon, a label, or both, is an art all in itself. </p>
<p>Nevertheless, here are some tips for those faced with this issue:</p>
<ul>
<li>Revamp your icons so they convey their meaning more effectively. Improve metaphors, adjust sizes, colors, etc.
<li>Use grouping to imply meaning. Grouping related icons together can often provide sufficient context to imply their function.
<li>Using progressive disclosure, place less often used icon-only buttons in a pull down menu with both icons and their labels. A nice benefit of this is that the user will learn the meaning of each icon when they use the pull down menu, and if the menu is designed to be used early on in a user&#8217;s experience with the application, you can get away with using those icons without labels in other places in the app (since the user will have already learned their meanings at that point).
</ul>
<h4>Mental Models</h4>
<p>A great way to reduce effective complexity is to align the conceptual model expressed by your interface with your user&#8217;s mental model as closely as possible. A poorly thought out model contributes to complexity by adding a significant amount of cognitive work that your users have to perform to learn your interface. </p>
<p>The recurrence UI in Windows Calendar, for instance, reflects the developer&#8217;s model of the task rather than the user&#8217;s model. Take a look at the second set of radio options in this screenshot: </p>
<p><center><img src="http://brandonwalkin.com/blog/images/WindowsCalendar.png" style="margin: 15px 0 15px 0" alt="Windows Calendar"></center></p>
<ol>
<li type="a">What&#8217;s the &#8220;28th last day of the month&#8221;?
<li type="a">What&#8217;s the &#8220;4th last Tuesday of the month&#8221;?
<li type="a">How long did you spend trying to work that out?
</ol>
<p>These options feel complex because the language used and functionality that&#8217;s represented doesn&#8217;t reflect your understanding of repeating events. Combat this issue by researching how your users conceptualize relevant tasks so your models are intuitive. You can read more about mental models in the <a href="http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGHIDesign/XHIGHIDesign.html#//apple_ref/doc/uid/TP30000353-CJBDDFAJ">HIG</a>. </p>
<h4>Use your Judgement</h4>
<p>Finally, use your own judgement. There are costs associated with nearly every technique I&#8217;ve listed here. Carefully consider each technique in the context of your interface and determine which are most appropriate for your application and how best to apply them. <br />&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwalkin.com/blog/2009/08/10/managing-ui-complexity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BWToolkit 1.2</title>
		<link>http://www.brandonwalkin.com/blog/2009/06/18/bwtoolkit-12/</link>
		<comments>http://www.brandonwalkin.com/blog/2009/06/18/bwtoolkit-12/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 21:12:41 +0000</pubDate>
		<dc:creator>Brandon Walkin</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.brandonwalkin.com/blog/?p=143</guid>
		<description><![CDATA[BWToolkit 1.2 is out with three new additions along with other improvements and fixes. The first addition is a gradient box which lets you draw a rectangle with a gradient or solid color. It also has optional border and inset lines. The next addition is a styled text field which lets you apply a gradient [...]]]></description>
			<content:encoded><![CDATA[<p>BWToolkit 1.2 is out with three new additions along with other improvements and fixes. The first addition is a gradient box which lets you draw a rectangle with a gradient or solid color. It also has optional border and inset lines. The next addition is a styled text field which lets you apply a gradient and a shadow to text. An example of what you&#8217;ll be able to create in Interface Builder with these two additions is this <a href="http://brandonwalkin.com/blog/images/CapoPurchaseScreen.png">fancy header bar</a> in Capo. The last addition is a hyperlink button that lets you link text or images to URLs which will open in the browser. </p>
<p>For a complete list of what&#8217;s new in 1.2 and to download the plugin and framework, visit the <a href="http://brandonwalkin.com/bwtoolkit/">BWToolkit website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwalkin.com/blog/2009/06/18/bwtoolkit-12/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>BWToolkit 1.1: Codeless Split Views</title>
		<link>http://www.brandonwalkin.com/blog/2009/02/24/bwtoolkit-11-codeless-split-views/</link>
		<comments>http://www.brandonwalkin.com/blog/2009/02/24/bwtoolkit-11-codeless-split-views/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 18:50:27 +0000</pubDate>
		<dc:creator>Brandon Walkin</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.brandonwalkin.com/blog/?p=104</guid>
		<description><![CDATA[I&#8217;m pleased to announce that BWToolkit 1.1 is now available for download with a brand new split view. The new BWSplitView has three main features:

Subview autosizing: In the inspector, the developer can tell the split view which subviews should resize with the window and which should remain at a fixed size. The standard behavior of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pleased to announce that BWToolkit 1.1 is now available for download with a brand new split view. The new BWSplitView has three main features:</p>
<ol>
<li><strong>Subview autosizing: </strong>In the inspector, the developer can tell the split view which subviews should resize with the window and which should remain at a fixed size. The standard behavior of NSSplitView is to ignore the autosizing masks on the subviews and resize them proportionally as the split view resizes. This is not the desired behavior for most applications. BWSplitView honors each subview&#8217;s autoresizing mask which is easily configurable in both the BWSplitView inspector and the subview&#8217;s size inspector.</li>
<li><strong>Constraints: </strong>Each subview&#8217;s minimum and maximum size is configurable in the BWSplitView inspector. You can specify the size in points or as a percentage of the split view&#8217;s size.</li>
<li><strong>Collapsing:</strong> BWSplitView has powerful new collapsing functionality. A view marked as &#8220;collapsible&#8221; in the inspector will collapse when its divider has been double clicked and when the user tries to make the view smaller than its minimum size. You can also hook up a toggle button to the split view&#8217;s toggleCollapse: action which will collapse or expand the subview using Core Animation. The split view takes care of synchronizing its state with the toggle button, so the button never shows the opposite indication.</li>
</ol>
<p>The reason I call the split view &#8220;codeless&#8221; is that for the vast majority of use cases, the developer will not have to write a single line of code to get the split view functionality they desire. For other use cases that do require something out of the ordinary, the developer can set themselves as the delegate on the split view and implement any relevant delegate methods.</p>
<p>In the video below, I create iCal&#8217;s split view layout, with maximum and minimum sizes for subviews, subview collapsing with animation, and proper autoresizing behavior, all within Interface Builder – and it takes less than 3 minutes.</p>
<p><a class="nounderline" href="http://brandonwalkin.com/blog/videos/iCalSplitView.mov"><img src="http://brandonwalkin.com/blog/images/icalstyle.png" alt="iCal-style Interface" /></a><br />
&nbsp;<br />
I&#8217;d love to hear your thoughts on the split view and any ideas you may have for improvements. <a href="mailto:bwalkin@gmail.com">Drop me a line</a> or <a href="http://bitbucket.org/bwalkin/bwtoolkit/issues/">file a bug</a>.</p>
<p>And a big thanks to Fraser Kuyvenhoven for developing the split view&#8217;s resizing algorithm.<br />
&nbsp;</p>
<p style="text-align: center;"><a class="nounderline" href="http://brandonwalkin.com/blog/bwtfiles/BWToolkit.zip"><img src="http://brandonwalkin.com/blog/images/download.png" alt="Download BWToolkit" /></a></p>
<p style="text-align: center;"><a class="lowcontrast" href="http://www.bitbucket.org/bwalkin/bwtoolkit/">Source Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwalkin.com/blog/2009/02/24/bwtoolkit-11-codeless-split-views/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://brandonwalkin.com/blog/videos/iCalSplitView.mov" length="15771555" type="video/quicktime" />
		</item>
		<item>
		<title>BWToolkit 1.0.2</title>
		<link>http://www.brandonwalkin.com/blog/2008/11/19/bwtoolkit-102/</link>
		<comments>http://www.brandonwalkin.com/blog/2008/11/19/bwtoolkit-102/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 17:10:33 +0000</pubDate>
		<dc:creator>Brandon Walkin</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.brandonwalkin.com/blog/?p=98</guid>
		<description><![CDATA[BWToolkit 1.0.2 is now out with some added functionality. The selectable toolbar has some new methods for setting its selected item, which is useful if you want to display the window with a certain tab selected, or want to select a certain tab from within another tab. You specify which item should be selected by [...]]]></description>
			<content:encoded><![CDATA[<p>BWToolkit 1.0.2 is now out with some added functionality. The selectable toolbar has some new methods for setting its selected item, which is useful if you want to display the window with a certain tab selected, or want to select a certain tab from within another tab. You specify which item should be selected by passing in the item identifier, which is a unique, non-localizable string.</p>
<p>To make this process simpler, a new item has been added to the plugin to allow you to easily specify a toolbar item&#8217;s identifier in Interface Builder. This item can be used with standard toolbars as well as selectable toolbars.</p>
<p>As for other improvements, the size of the framework bundle has been reduced by 40% by using Apple&#8217;s TIFF compression instead of Adobe&#8217;s and a few bugs have been fixed. See the release notes for details on the particular bug fixes.<br />
&nbsp;</p>
<p style="text-align: center;"><a class="nounderline" href="http://brandonwalkin.com/blog/bwtfiles/BWToolkit.zip"><img src="http://brandonwalkin.com/blog/images/download.png" alt="Download BWToolkit" /></a></p>
<p style="text-align: center;"><a class="lowcontrast" href="http://www.bitbucket.org/bwalkin/bwtoolkit/">Source Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwalkin.com/blog/2008/11/19/bwtoolkit-102/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing BWToolkit</title>
		<link>http://www.brandonwalkin.com/blog/2008/11/13/introducing-bwtoolkit/</link>
		<comments>http://www.brandonwalkin.com/blog/2008/11/13/introducing-bwtoolkit/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 18:20:42 +0000</pubDate>
		<dc:creator>Brandon Walkin</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.brandonwalkin.com/blog/?p=89</guid>
		<description><![CDATA[Update: BWToolkit now has its own website.
BWToolkit is a BSD licensed plugin for Interface Builder 3 that contains commonly used UI elements and other useful objects. Using these objects is as simple as dragging them from the library to your canvas or document window.
When I first heard about the plugin architecture in IB 3, I [...]]]></description>
			<content:encoded><![CDATA[<p>Update: <a href="http://brandonwalkin.com/bwtoolkit/">BWToolkit now has its own website</a>.</p>
<p>BWToolkit is a BSD licensed plugin for Interface Builder 3 that contains commonly used UI elements and other useful objects. Using these objects is as simple as dragging them from the library to your canvas or document window.</p>
<p>When I first heard about the plugin architecture in IB 3, I saw a huge potential for improving the developer user experience and lowering the barrier to entry for developers who are new to Cocoa. I hope to have accomplished that with this plugin. Read on for details regarding the items in BWToolkit and screencasts showing how they work. Be sure to read the release notes if you&#8217;re interested in downloading the plugin. It has installation instructions and known issues that users of this plugin should be aware of.</p>
<h4>&#8220;No Code&#8221; Preferences Windows and Tabbed Sheets</h4>
<p>With the Selectable Toolbar item in this plugin, you&#8217;ll be able to create preferences windows and tabbed sheets without writing a line of code. Using BWToolkit to create a preferences window or a tabbed sheet is radically simpler than conventional means. You don&#8217;t have to write a controller class or fiddle with plists and multiple nib/xib files. It&#8217;s drag and drop. Watch the videos below to see it in action.</p>
<p><a class="nounderline" href="http://brandonwalkin.com/blog/videos/PreferencesWindow.mov"><img src="http://brandonwalkin.com/blog/images/preferenceswindow.png" alt="Preferences Window" /></a><br />
<a class="nounderline" href="http://brandonwalkin.com/blog/videos/TabbedSheet.mov"><img class="toppadding" src="http://brandonwalkin.com/blog/images/tabbedsheet.png" alt="Tabbed Sheet" /></a></p>
<h4>Transparent Controls</h4>
<p>BWToolkit contains a suite of controls for transparent windows (or HUD windows). Provided controls include a button, pop-up button, check box, slider, text field, text view, table view, and a check box cell for a table view. If you find yourself needing a much wider array of controls than the ones available here, a standard panel may be more appropriate for your particular interface.</p>
<p><img src="http://brandonwalkin.com/blog/images/transparent3.png" alt="" /></p>
<h4>Button Bars</h4>
<p>The plugin includes an anchored button bar, anchored buttons, and unanchored buttons. An anchored button bar is one that is placed directly below a view (in other words, <em>anchored</em> to that view). Anchored button bars often appear at the bottom left of windows below source lists (like in Mail.app), below a table view with padding below the bar (like the Network pref pane), or run all the way across the bottom of the window (like in AppZapper). The anchored button bar library item handles all three of these modes.</p>
<p>Unanchored buttons are usually placed below a table view with a bit of padding separating the view from the buttons. They&#8217;re often configured to have a plus button beside a minus button. The unanchored buttons are similar to &#8220;Gradient Buttons&#8221; in Interface Builder, but tweaked to aesthetically replicate the +/- buttons in System Preferences. For instance, when a button is disabled, only the glyph dims, so the group of buttons remain a visually cohesive unit.</p>
<p>Using the anchored button bar and the gradient split view included in the plugin, you can easily create a Mail.app style interface. When an anchored button bar is dropped in a vertical split view, the split view is automatically configured to resize when the user drags the resize handle on the button bar. It&#8217;s also configured to keep the source list the same width while the window is resized &#8211; the standard split view behavior is to resize all of its subviews. Lastly, the left most view is constrained within a minimum and maximum width (which is configurable in the button bar inspector).</p>
<p><a class="nounderline" href="http://brandonwalkin.com/blog/videos/MailStyle.mov"><img src="http://brandonwalkin.com/blog/images/mailstyle.png" alt="Make a Mail.app style interface" /></a></p>
<h4>Bottom Bars</h4>
<p>With this plugin, you&#8217;ll be able to add a bottom bar to a window and it will appear on your canvas. This makes sizing and placement of controls on or around the bottom bar a trivial exercise. There are four bottom bars to choose from: mini size, small size, regular size, and one for sheets.</p>
<p>There are also some controls for bottom bars included in the plugin. You&#8217;ll find plus and minus glyphs for regular size Round Textured buttons, a text field with an inset (or etched) appearance, and a textured slider.  The textured slider comes pre-configured with the two most popular indicators in Mac apps: speaker and photo. If you opt to use them, you&#8217;ll find that the click actions for the two indicators are conveniently already hooked up to the slider.</p>
<p><img src="http://brandonwalkin.com/blog/images/bottombar.png" alt="" /></p>
<h4>And More</h4>
<p>There are a few other items in the plugin that haven&#8217;t been listed yet or shown in a screencast: split views with adjustable divider colors, Fonts and Colors toolbar items from iWork &#8216;08, and a fancy gradient token field.</p>
<p>If you have any questions or comments, feel free to <a href="mailto:bwalkin@gmail.com">email</a> me or ping me on <a href="http://twitter.com/bwalkin">Twitter</a>.<br />
 </p>
<p style="text-align: center;"><a class="nounderline" href="http://brandonwalkin.com/blog/bwtfiles/BWToolkit.zip"><img src="http://brandonwalkin.com/blog/images/download.png" alt="Download BWToolkit" /></a></p>
<p style="text-align: center;"><a class="lowcontrast" href="http://www.bitbucket.org/bwalkin/bwtoolkit/">Source Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwalkin.com/blog/2008/11/13/introducing-bwtoolkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://brandonwalkin.com/blog/videos/MailStyle.mov" length="16348176" type="video/quicktime" />
<enclosure url="http://brandonwalkin.com/blog/videos/TabbedSheet.mov" length="7955023" type="video/quicktime" />
<enclosure url="http://brandonwalkin.com/blog/videos/PreferencesWindow.mov" length="9531779" type="video/quicktime" />
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.355 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-10 22:28:06 -->
