<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Why would you use Interface Builder for iPhone Development?</title>
	<atom:link href="http://blog.shinetech.com/?feed=rss2&#038;p=195" rel="self" type="application/rss+xml" />
	<link>http://blog.shinetech.com/?p=195</link>
	<description>Thoughts from Shine Technologies</description>
	<pubDate>Tue, 07 Sep 2010 23:51:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Anthony Hologram</title>
		<link>http://blog.shinetech.com/?p=195#comment-1987</link>
		<dc:creator>Anthony Hologram</dc:creator>
		<pubDate>Thu, 22 Jul 2010 19:55:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1987</guid>
		<description>As a developer who made 5 apps by hand coding, without a single XIB/NIB..  I knew I hated that thing from the start.

However, our last app's over budgetedness kind of turned my opinion.  Here are the reasons you should leverage interface builder:

- Design/implement GUI graphically, right brained like you will use the program
- LESS LINES OF CODE to debug, write, remember to think about retain counts and spend dozens of lines setting up, say text field properties
- Less memory management!  The whole XIB is loaded/unloaded behind the scenes
- Share the XIBs so DESIGNERS CAN LAY THEM OUT.  No more time spent pixel pushing from a PSD comp, the designer will create the VERY LAYOUT U WILL USE!  :D
- Less buggy code.  IB makes sure you are initializing, configuring and disposing properly.  (Not that *I* need that)  
- FASTER development of a complex UI.  If you have 10+ styled elements on a view, it takes probably 50 lines of code to set them up right.  With IB it takes zero.

Now, the shortcomings.. (Rumored XCode 4 with integrated IB might fix some of this)
- Terminology is confusing.  Outlets, "File's Owner" etc are never used in non-IB code, so pure coders don't know what they do
- Seems difficult to style/configure certain things.  Attaching a UITableViewCell to a UITableView for example.
- The magic of how the elements interact with the code is a hurdle for many at first. 

Ultimately I wouldn't recommend newbies using IB.  Get a firm grasp on the codez first and then you will see how IB can help you.</description>
		<content:encoded><![CDATA[<p>As a developer who made 5 apps by hand coding, without a single XIB/NIB..  I knew I hated that thing from the start.</p>
<p>However, our last app&#8217;s over budgetedness kind of turned my opinion.  Here are the reasons you should leverage interface builder:</p>
<p>- Design/implement GUI graphically, right brained like you will use the program<br />
- LESS LINES OF CODE to debug, write, remember to think about retain counts and spend dozens of lines setting up, say text field properties<br />
- Less memory management!  The whole XIB is loaded/unloaded behind the scenes<br />
- Share the XIBs so DESIGNERS CAN LAY THEM OUT.  No more time spent pixel pushing from a PSD comp, the designer will create the VERY LAYOUT U WILL USE!  <img src='http://blog.shinetech.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
- Less buggy code.  IB makes sure you are initializing, configuring and disposing properly.  (Not that *I* need that)<br />
- FASTER development of a complex UI.  If you have 10+ styled elements on a view, it takes probably 50 lines of code to set them up right.  With IB it takes zero.</p>
<p>Now, the shortcomings.. (Rumored XCode 4 with integrated IB might fix some of this)<br />
- Terminology is confusing.  Outlets, &#8220;File&#8217;s Owner&#8221; etc are never used in non-IB code, so pure coders don&#8217;t know what they do<br />
- Seems difficult to style/configure certain things.  Attaching a UITableViewCell to a UITableView for example.<br />
- The magic of how the elements interact with the code is a hurdle for many at first. </p>
<p>Ultimately I wouldn&#8217;t recommend newbies using IB.  Get a firm grasp on the codez first and then you will see how IB can help you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: aiak</title>
		<link>http://blog.shinetech.com/?p=195#comment-1968</link>
		<dc:creator>aiak</dc:creator>
		<pubDate>Tue, 13 Jul 2010 13:03:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1968</guid>
		<description>"Setup your controllers and views in here." is just what you should do with IB. I don't think you would choose to adjust the values in CGRectMake in order to finally put it in the right location, rather than to drag it and place it directly on your simulator screen.

it's kind of hard for people including me to accept IB if they are too used to MS VS. but the more code one writes, the more convenient he'd find IB really is, especially for those "view-based applications", as apple names them.</description>
		<content:encoded><![CDATA[<p>&#8220;Setup your controllers and views in here.&#8221; is just what you should do with IB. I don&#8217;t think you would choose to adjust the values in CGRectMake in order to finally put it in the right location, rather than to drag it and place it directly on your simulator screen.</p>
<p>it&#8217;s kind of hard for people including me to accept IB if they are too used to MS VS. but the more code one writes, the more convenient he&#8217;d find IB really is, especially for those &#8220;view-based applications&#8221;, as apple names them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SteveP</title>
		<link>http://blog.shinetech.com/?p=195#comment-1965</link>
		<dc:creator>SteveP</dc:creator>
		<pubDate>Sat, 10 Jul 2010 00:55:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1965</guid>
		<description>I've found IB useful for setting up the first static view of most of screens and setting all of the properties. As soon as you see blocks of code with more than a half dozen lines of UI component setup it is hint you might want to move it into IB. I don't use it for much else though, just component wire up, layout, and properties. Doing anything behavioral, such as transitions and event wire-up seems to lead to VB-like spaghetti code.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve found IB useful for setting up the first static view of most of screens and setting all of the properties. As soon as you see blocks of code with more than a half dozen lines of UI component setup it is hint you might want to move it into IB. I don&#8217;t use it for much else though, just component wire up, layout, and properties. Doing anything behavioral, such as transitions and event wire-up seems to lead to VB-like spaghetti code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karl</title>
		<link>http://blog.shinetech.com/?p=195#comment-1956</link>
		<dc:creator>Karl</dc:creator>
		<pubDate>Tue, 06 Jul 2010 23:49:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1956</guid>
		<description>I have been programming iPhone apps for over a year now but am also developing with Visual Studio in other project.

Frankly said the Interface Builder is an absolute relic.  The steps and clicks needed to code a single button implementation are more then 10!  Compare that to Drag and Double-Click which is all that is needed with Visual Studio.

I forgive Apple though because the iPhone is such a wonderful product but it must be said that the Interface Builder (as well as the Xcode debugger) is pathetic.</description>
		<content:encoded><![CDATA[<p>I have been programming iPhone apps for over a year now but am also developing with Visual Studio in other project.</p>
<p>Frankly said the Interface Builder is an absolute relic.  The steps and clicks needed to code a single button implementation are more then 10!  Compare that to Drag and Double-Click which is all that is needed with Visual Studio.</p>
<p>I forgive Apple though because the iPhone is such a wonderful product but it must be said that the Interface Builder (as well as the Xcode debugger) is pathetic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Davidmoreen</title>
		<link>http://blog.shinetech.com/?p=195#comment-1955</link>
		<dc:creator>Davidmoreen</dc:creator>
		<pubDate>Tue, 06 Jul 2010 05:25:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1955</guid>
		<description>At the moment I have only been writing iphone applications for two months and I found that interface builder is limited, yet useful. I will use interface builder to make a wireframe of the application, and just modify the outlets respectively. I would like to go to a no-nib solution, however currently I am not experienced enough, and I don't want to have to keep remembering xy placement (Interface builder has the dotted blue line which is very helpful for consistent alignment).

I do find it really odd however that Interface Builder does not implement all of the attributes that are available in code. For example making a label bold...</description>
		<content:encoded><![CDATA[<p>At the moment I have only been writing iphone applications for two months and I found that interface builder is limited, yet useful. I will use interface builder to make a wireframe of the application, and just modify the outlets respectively. I would like to go to a no-nib solution, however currently I am not experienced enough, and I don&#8217;t want to have to keep remembering xy placement (Interface builder has the dotted blue line which is very helpful for consistent alignment).</p>
<p>I do find it really odd however that Interface Builder does not implement all of the attributes that are available in code. For example making a label bold&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: emarch</title>
		<link>http://blog.shinetech.com/?p=195#comment-1942</link>
		<dc:creator>emarch</dc:creator>
		<pubDate>Mon, 28 Jun 2010 17:43:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1942</guid>
		<description>Yes, I have to agree IB is weird and funky and best. I see the advantages it offers, but Apple being king of nice clean visual controls communicating to the user and now developer what going has missed the mark. I used OWL, wxWidgets, MFC, .NET, and FLTK, and IB just isnt there as far as visually seeing how to do things easy. Why can't they at least generate the methods and synthesize the properties when needed? Its time savings are deeply embedded in project portability and not in day to day hour by hour coding. Way too many weird mouse miles to do simple stuff. Wake Up Apple!!!</description>
		<content:encoded><![CDATA[<p>Yes, I have to agree IB is weird and funky and best. I see the advantages it offers, but Apple being king of nice clean visual controls communicating to the user and now developer what going has missed the mark. I used OWL, wxWidgets, MFC, .NET, and FLTK, and IB just isnt there as far as visually seeing how to do things easy. Why can&#8217;t they at least generate the methods and synthesize the properties when needed? Its time savings are deeply embedded in project portability and not in day to day hour by hour coding. Way too many weird mouse miles to do simple stuff. Wake Up Apple!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ozzy</title>
		<link>http://blog.shinetech.com/?p=195#comment-1940</link>
		<dc:creator>ozzy</dc:creator>
		<pubDate>Mon, 14 Jun 2010 21:29:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1940</guid>
		<description>Honestly, after using C++ Builder or Delphi for about 2 minutes (or less), you will see that IB only convolutes things.

Imagine:

Drag a button onto your view.
Double click the button, to open a code file where you can now type your code that occurs when the button is pressed.  DONE!  Automatically updates all relevant files.

I've looked through 2 tutorial now, and still haven't figured out how to get my IB view to be visible,
although, by this point, I think if the button were there, you could click it and it might do something.</description>
		<content:encoded><![CDATA[<p>Honestly, after using C++ Builder or Delphi for about 2 minutes (or less), you will see that IB only convolutes things.</p>
<p>Imagine:</p>
<p>Drag a button onto your view.<br />
Double click the button, to open a code file where you can now type your code that occurs when the button is pressed.  DONE!  Automatically updates all relevant files.</p>
<p>I&#8217;ve looked through 2 tutorial now, and still haven&#8217;t figured out how to get my IB view to be visible,<br />
although, by this point, I think if the button were there, you could click it and it might do something.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jose</title>
		<link>http://blog.shinetech.com/?p=195#comment-1936</link>
		<dc:creator>jose</dc:creator>
		<pubDate>Sun, 06 Jun 2010 18:29:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1936</guid>
		<description>@xf I've always created all of my apps using IB. Go ahead and hate me. IB is a powerful tool that can make code considerably easier to write and conceptually easier to understand. This is true even with the most complex of applications if you take the time to learn why. When I've needed to improve drawing performance, because of piling a bunch of transparent views on top of each other or the like, I just use nib2objc to generate code to incorporate into my project.

And if you work in an enterprise environment where you're not the only developer, or someone else is responsible for the user interface, heaven help you if you can't sit down and quickly show UX designers what small changes will look like without recompiling 100,000 lines of code.

To me it's like saying that it's stupid to use Core Data because you have the FULL power to work yourself directly with sqlite and optimize your app's performance. Good luck with that.</description>
		<content:encoded><![CDATA[<p>@xf I&#8217;ve always created all of my apps using IB. Go ahead and hate me. IB is a powerful tool that can make code considerably easier to write and conceptually easier to understand. This is true even with the most complex of applications if you take the time to learn why. When I&#8217;ve needed to improve drawing performance, because of piling a bunch of transparent views on top of each other or the like, I just use nib2objc to generate code to incorporate into my project.</p>
<p>And if you work in an enterprise environment where you&#8217;re not the only developer, or someone else is responsible for the user interface, heaven help you if you can&#8217;t sit down and quickly show UX designers what small changes will look like without recompiling 100,000 lines of code.</p>
<p>To me it&#8217;s like saying that it&#8217;s stupid to use Core Data because you have the FULL power to work yourself directly with sqlite and optimize your app&#8217;s performance. Good luck with that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://blog.shinetech.com/?p=195#comment-1929</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Mon, 31 May 2010 20:05:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1929</guid>
		<description>I've just read the comment about IB, saying "It is a wonderful tool having lot of features."... Don't make me laugh!!!

Why do Apple always overcomplicate things???

No wonder I've tended to avoid Apple products over the years!</description>
		<content:encoded><![CDATA[<p>I&#8217;ve just read the comment about IB, saying &#8220;It is a wonderful tool having lot of features.&#8221;&#8230; Don&#8217;t make me laugh!!!</p>
<p>Why do Apple always overcomplicate things???</p>
<p>No wonder I&#8217;ve tended to avoid Apple products over the years!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Palanichamy</title>
		<link>http://blog.shinetech.com/?p=195#comment-1895</link>
		<dc:creator>Palanichamy</dc:creator>
		<pubDate>Thu, 20 May 2010 23:13:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.shinetech.com/?p=195#comment-1895</guid>
		<description>I think IB reduces the code lines.It is a wonderful tool having lot of features.</description>
		<content:encoded><![CDATA[<p>I think IB reduces the code lines.It is a wonderful tool having lot of features.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
