<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Reacties op: Building iPhone applications using MonoTouch, part 5: software design considerations</title>
	<atom:link href="http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/feed/" rel="self" type="application/rss+xml" />
	<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/</link>
	<description></description>
	<lastBuildDate>Fri, 20 Jan 2012 08:31:42 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Door: iphone apps</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-3141</link>
		<dc:creator>iphone apps</dc:creator>
		<pubDate>Thu, 25 Feb 2010 00:46:38 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-3141</guid>
		<description>Building iPhone applications using MonoTouch is very considerate design of having features like this. thanks for the benefits.</description>
		<content:encoded><![CDATA[<p>Building iPhone applications using MonoTouch is very considerate design of having features like this. thanks for the benefits.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Door: Richard de Zwart</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-1869</link>
		<dc:creator>Richard de Zwart</dc:creator>
		<pubDate>Mon, 04 Jan 2010 19:54:03 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-1869</guid>
		<description>Thanks Alex, I totally agree. Before the var-keyword I have always wondered why I had to type the same thing twice, like in:
&lt;code&gt;SomeClass sc = new SomeClass()&lt;/code&gt;. Surely the compiler can see what I&#039;ve typed on the right side. Of course since we all program using interfaces (don&#039;t we?), the var-keyword is hardly ever useful since you write code like: &lt;code&gt;ISomeInterface sc = new SomeClass()&lt;/code&gt;.
Nevertheless, I love to use the var-keyword in foreach-loops, where the scope is limited and it&#039;s mostly clear what your var is supposed to be. 
As with all powerful stuff: use it wisely.</description>
		<content:encoded><![CDATA[<p>Thanks Alex, I totally agree. Before the var-keyword I have always wondered why I had to type the same thing twice, like in:<br />
<code>SomeClass sc = new SomeClass()</code>. Surely the compiler can see what I&#8217;ve typed on the right side. Of course since we all program using interfaces (don&#8217;t we?), the var-keyword is hardly ever useful since you write code like: <code>ISomeInterface sc = new SomeClass()</code>.<br />
Nevertheless, I love to use the var-keyword in foreach-loops, where the scope is limited and it&#8217;s mostly clear what your var is supposed to be.<br />
As with all powerful stuff: use it wisely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Door: Alex York</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-1855</link>
		<dc:creator>Alex York</dc:creator>
		<pubDate>Mon, 04 Jan 2010 10:55:48 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-1855</guid>
		<description>@Brofski: I just want to correct your first point about using &quot;strongly typed&quot; variables instead of &quot;var&quot;.

When you use var, your variable IS still strongly typed. var i = 3; is strongly typed.  It&#039;s an int. Thats why i = &quot;foo&quot;; on the next line would result in a compile-time error. The var keyword is always strongly typed. That&#039;s also why var i; doesn&#039;t compile. The var keyword doesn&#039;t decrease how strongly typed your variables are. It COULD decrease code readability though, if overused :-)</description>
		<content:encoded><![CDATA[<p>@Brofski: I just want to correct your first point about using &#8220;strongly typed&#8221; variables instead of &#8220;var&#8221;.</p>
<p>When you use var, your variable IS still strongly typed. var i = 3; is strongly typed.  It&#8217;s an int. Thats why i = &#8220;foo&#8221;; on the next line would result in a compile-time error. The var keyword is always strongly typed. That&#8217;s also why var i; doesn&#8217;t compile. The var keyword doesn&#8217;t decrease how strongly typed your variables are. It COULD decrease code readability though, if overused <img src='http://lsd.luminis.eu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Door: Richard de Zwart</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-1013</link>
		<dc:creator>Richard de Zwart</dc:creator>
		<pubDate>Wed, 02 Dec 2009 19:10:34 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-1013</guid>
		<description>Hi Brofski, events/delegates have crossed my mind, exactly because of the loose coupling. But I assumed that you have no alternative for overriding a method like &quot;RowSelected&quot;. I would prefer subscribing to a RowSelected-event.
Can you share some of your code?</description>
		<content:encoded><![CDATA[<p>Hi Brofski, events/delegates have crossed my mind, exactly because of the loose coupling. But I assumed that you have no alternative for overriding a method like &#8220;RowSelected&#8221;. I would prefer subscribing to a RowSelected-event.<br />
Can you share some of your code?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Door: Brofski</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-915</link>
		<dc:creator>Brofski</dc:creator>
		<pubDate>Mon, 30 Nov 2009 22:36:32 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-915</guid>
		<description>I agree totally in the separation of model and view and letting the controller do all the brokering.  But I have some comments to share.

1. var is overused.  You should strongly type your variables instead.

2. I have worked around many of the design problems you have mentioned using delegates (from a C# point of view, not the cocoa paradigm) and events.  Have you considered using this in your designs?  This way your model can send notifications without knowing or caring who is listening and the controllers can be notified about the things they only care about.</description>
		<content:encoded><![CDATA[<p>I agree totally in the separation of model and view and letting the controller do all the brokering.  But I have some comments to share.</p>
<p>1. var is overused.  You should strongly type your variables instead.</p>
<p>2. I have worked around many of the design problems you have mentioned using delegates (from a C# point of view, not the cocoa paradigm) and events.  Have you considered using this in your designs?  This way your model can send notifications without knowing or caring who is listening and the controllers can be notified about the things they only care about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Door: Richard de Zwart</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-847</link>
		<dc:creator>Richard de Zwart</dc:creator>
		<pubDate>Sat, 28 Nov 2009 21:24:10 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-847</guid>
		<description>Sorry for that. Used the &quot;Organize usings / sort and remove&quot; and that removed the line using System.Linq; Fixed.</description>
		<content:encoded><![CDATA[<p>Sorry for that. Used the &#8220;Organize usings / sort and remove&#8221; and that removed the line using System.Linq; Fixed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Door: Alex York</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-791</link>
		<dc:creator>Alex York</dc:creator>
		<pubDate>Thu, 26 Nov 2009 22:46:38 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-791</guid>
		<description>By the way, your zipped-up project didn&#039;t compile.</description>
		<content:encoded><![CDATA[<p>By the way, your zipped-up project didn&#8217;t compile.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Door: Alex York</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-790</link>
		<dc:creator>Alex York</dc:creator>
		<pubDate>Thu, 26 Nov 2009 22:42:17 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-790</guid>
		<description>You could do a few things differently which would solve a few of your problems.  Check my blog, I populate data into a table in more than one of my posts/tutorials.

I create a subclass of UITableViewController and assign it to the UITableViewController I dragged onto my project in Interface Builder. This class will have two nested classes: one for DataSource, one for TableDelegate. Their constructors will accept your UITableViewController subclass as a parameter.  Your data, loaded from a textfile or web service or wherever, could be a public property, say a string array, which the DataSource and TableDelegate classes will have access to. That saves you loading the data again: it is stored in an in-memory List/array.

I populate data into a table to build a simple RSS reader here:
http://www.alexyork.net/blog/post/UINavigationController-with-MonoTouch-Building-a-simple-RSS-reader-Part-1.aspx

Kevin Sheffield uses a UISearchDisplayController in this post here:
http://ksheffield.com/blog/?p=22

Craig Dunn&#039;s blog has some sample projects (e.g. the MonoSpace app) that populates data into tables entirely from code (no Interface Builder):
http://conceptdev.blogspot.com/

The problems you have run into in this post have all already been solved - just have a poke around those websites and you should get back on track.

Keep up the great posts - and it&#039;s good that you&#039;re thinking about SOLID, too many developers don&#039;t.</description>
		<content:encoded><![CDATA[<p>You could do a few things differently which would solve a few of your problems.  Check my blog, I populate data into a table in more than one of my posts/tutorials.</p>
<p>I create a subclass of UITableViewController and assign it to the UITableViewController I dragged onto my project in Interface Builder. This class will have two nested classes: one for DataSource, one for TableDelegate. Their constructors will accept your UITableViewController subclass as a parameter.  Your data, loaded from a textfile or web service or wherever, could be a public property, say a string array, which the DataSource and TableDelegate classes will have access to. That saves you loading the data again: it is stored in an in-memory List/array.</p>
<p>I populate data into a table to build a simple RSS reader here:<br />
<a href="http://www.alexyork.net/blog/post/UINavigationController-with-MonoTouch-Building-a-simple-RSS-reader-Part-1.aspx" rel="nofollow">http://www.alexyork.net/blog/post/UINavigationController-with-MonoTouch-Building-a-simple-RSS-reader-Part-1.aspx</a></p>
<p>Kevin Sheffield uses a UISearchDisplayController in this post here:<br />
<a href="http://ksheffield.com/blog/?p=22" rel="nofollow">http://ksheffield.com/blog/?p=22</a></p>
<p>Craig Dunn&#8217;s blog has some sample projects (e.g. the MonoSpace app) that populates data into tables entirely from code (no Interface Builder):<br />
<a href="http://conceptdev.blogspot.com/" rel="nofollow">http://conceptdev.blogspot.com/</a></p>
<p>The problems you have run into in this post have all already been solved &#8211; just have a poke around those websites and you should get back on track.</p>
<p>Keep up the great posts &#8211; and it&#8217;s good that you&#8217;re thinking about SOLID, too many developers don&#8217;t.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Door: MonoTouch.Info</title>
		<link>http://lsd.luminis.eu/building-iphone-applications-using-monotouch-part-5-software-design-considerations/comment-page-1/#comment-788</link>
		<dc:creator>MonoTouch.Info</dc:creator>
		<pubDate>Thu, 26 Nov 2009 21:22:48 +0000</pubDate>
		<guid isPermaLink="false">http://lsd.luminis.nl/?p=574#comment-788</guid>
		<description>&lt;strong&gt;MonoTouch Article - Building iPhone applications using MonoTouch, part 5: software design considerations...&lt;/strong&gt;

Thank you for submitting this entry - Trackback from MonoTouch.Info...</description>
		<content:encoded><![CDATA[<p><strong>MonoTouch Article &#8211; Building iPhone applications using MonoTouch, part 5: software design considerations&#8230;</strong></p>
<p>Thank you for submitting this entry &#8211; Trackback from MonoTouch.Info&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

