<story><title>Lion: Cocoa Autolayout Release Notes</title><url>http://developer.apple.com/library/mac/#releasenotes/UserExperience/RNAutomaticLayout/_index.html#//apple_ref/doc/uid/TP40010631</url></story><parent_chain></parent_chain><comment><author>kenferry</author><text>Some of that document is out of date - Interface Builder does have support for Auto Layout now.  Auto Layout also has a space now. ;-)  I like to spell it [Auto]-[Layout] (see the ASCII art programming language part of that document).&lt;p&gt;People may also be interested in the WWDC session on Auto Layout: &lt;a href=&quot;http://goo.gl/5sSgK&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/5sSgK&lt;/a&gt; (requires free developer account).&lt;p&gt;Some interesting aspects of the system to me:&lt;p&gt;(1) The use of fairly simple but freeform constraints.  The numerical solver is based on work in this paper, &lt;a href=&quot;http://goo.gl/6fHdd&quot; rel=&quot;nofollow&quot;&gt;http://goo.gl/6fHdd&lt;/a&gt;.  They end up covering really a lot of stuff you want to do in a natural way, and with a single constraint object with few properties.&lt;p&gt;(2) The emphasis on visualization.  Most of the time constraints are created visually, in Interface Builder, by dragging objects around and snapping them together.  When doing layout in source code, you use an ASCII art inspired format string that visually looks like the interface you&apos;re trying to create.  When debugging at runtime, you can ask a window to draw constraints on screen, so that you can see what they are.  (The debugging support itself is also interesting.)&lt;p&gt;(3) The reworking of how layout fits into Cocoa&apos;s model-view-controller design.  Previously, too much was in the controller layer - to do layout you ended up having to say things that you didn&apos;t really know, because it was data intrinsically known by the view layer.  By reworking the layering, the views can take responsibility for those aspects of layout that are intrinsically known to the view.  This takes a lot of pressure off, because (a) you don&apos;t have to specify things you don&apos;t know, (b) there&apos;s less work to do because the views are doing some of it, (c) a lot of the time the views are coming out of AppKit, so you never have to write the view parts at all.  It also aligns the easiest thing to do (don&apos;t mess with the views) with the right thing to do (use standard OS behavior).  If you want to make it do something unusual, you can, but you have to say so.  Your code records the places you intentionally deviated.&lt;p&gt;[Disclosure - I worked on this.]</text></comment>
<story><title>Lion: Cocoa Autolayout Release Notes</title><url>http://developer.apple.com/library/mac/#releasenotes/UserExperience/RNAutomaticLayout/_index.html#//apple_ref/doc/uid/TP40010631</url></story><parent_chain></parent_chain><comment><author>jamesaguilar</author><text>The syntax is crazy, but brilliant. I would never have thought of it myself, but now that I&apos;ve seen it it&apos;s obvious.&lt;p&gt;The main thing I wonder is whether the syntax is supported by vanilla objective c, or if Apple is cheating a little (i.e. building support for new hotness into the compiler).</text></comment>