<?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>Abizern.org &#187; build</title>
	<atom:link href="http://abizern.org/tag/build/feed/" rel="self" type="application/rss+xml" />
	<link>http://abizern.org</link>
	<description>The personal and developer blog of a Mac developer in London.</description>
	<lastBuildDate>Sun, 09 Oct 2011 19:06:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Using a Single Build Directory in Xcode</title>
		<link>http://abizern.org/2010/03/18/using-a-single-build-directory-in-xcode/</link>
		<comments>http://abizern.org/2010/03/18/using-a-single-build-directory-in-xcode/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 19:26:01 +0000</pubDate>
		<dc:creator>Abizer</dc:creator>
				<category><![CDATA[Mac Development]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[default]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://abizern.org/?p=325</guid>
		<description><![CDATA[Here&#8217;s an old screencast which I never got around to uploading. It makes sense to set up a single directory in Xcode where built products and intermediate files are kept. You can blitz all the files at once if you don&#8217;t need them, you don&#8217;t have to set up manual exclusions for your version control [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="545" height="349" id="viddler_bee69bc"><param name="movie" value="http://www.viddler.com/player/bee69bc/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/bee69bc/" width="545" height="349" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_bee69bc"></embed></object></p>
<p>Here&#8217;s an old screencast which I never got around to uploading.</p>
<p>It makes sense to set up a single directory in Xcode where built products and intermediate files are kept. You can blitz all the files at once if you don&#8217;t need them, you don&#8217;t have to set up manual exclusions for your version control and you can set up the files to be excluded from Time Machine backups.</p>
<p>This was recorded with an earlier version of Xcode, but the steps still apply. Please excuse the sound quality.</p>
]]></content:encoded>
			<wfw:commentRss>http://abizern.org/2010/03/18/using-a-single-build-directory-in-xcode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Some tips for lazy Xcoders</title>
		<link>http://abizern.org/2009/11/11/some-tips-for-lazy-xcoders/</link>
		<comments>http://abizern.org/2009/11/11/some-tips-for-lazy-xcoders/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 12:40:53 +0000</pubDate>
		<dc:creator>Abizer</dc:creator>
				<category><![CDATA[Mac Development]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[clang]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[commits]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.stompy.org/?p=177</guid>
		<description><![CDATA[We all know what we should be doing when writing code. Each methodology you choose to use has it&#8217;s own best practices, whether it&#8217;s working from full specifications, writing unit tests first, programming in pairs, yadda, yadda. But, as developers, we&#8217;re only human, and we&#8217;re lazy. We have tools to make things easy for us. [...]]]></description>
			<content:encoded><![CDATA[<p>We all know what we should be doing when writing code. Each methodology you choose to use has it&#8217;s own best practices, whether it&#8217;s working from full specifications, writing unit tests first, programming in pairs, yadda, yadda. But, as developers, we&#8217;re only human, and we&#8217;re lazy. We have tools to make things easy for us. Here are a few tips that you can use to help when you&#8217;re not as rigorous in your coding as you should be.</p>
<h2>Use a static analyser.</h2>
<p>You can use the <a href="http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/9#compilers">Clang Static Analyser</a> in Xcode by setting a build option. This will find a whole host of errors in your code, even down to unconventionally named functions.</p>
<p><img src="http://abizern.org/wp-content/uploads/2009/11/ClangBuildSetting.png" alt="ClangBuildSetting.png" width="502" height="122" /></p>
<p>Now you can just code away and have the compiler pick up your mistakes when you run &#8216;Build and Analyze&#8217; (Shift ⌘ A).</p>
<h2>Find your mistakes quickly</h2>
<p>Any real application you develop will have a large number of resources that need to be copied to your application bundle. The default projects that Xcode create for you will copy these files first before compiling.</p>
<p><img src="http://abizern.org/wp-content/uploads/2009/11/XcodeDefault.png" alt="XcodeDefault.png" width="232" height="88" /></p>
<p>But, the lazy Xcoder knows that there are probably errors in the code that need to get flagged by the compiler, so this copying is a waste of time. Reorder the build steps by dragging so that the compilation is done first.</p>
<p><img src="http://abizern.org/wp-content/uploads/2009/11/XcodeRecommended.png" alt="XcodeRecommended.png" width="219" height="86" /></p>
<p>Your builds will now break early (and often!).</p>
<h2>Don&#8217;t fear the version controller</h2>
<p>I&#8217;m going to stick my neck out and say that if you&#8217;re not using version control you&#8217;re an idiot. The lazy Xcoder uses a powerful system that lets him or her branch easily, make lots of little changes, and lots of mistakes (that can be backed out). These changes can then be bundled into larger commits to be merged into the main branch so that your co-workers don&#8217;t see what an idiot you&#8217;ve been.</p>
<p>One such version control system is <a href="http://git-scm.com/">git</a>. The lazy Xcoder writes a bit of code, checks it in out of habit and then compiles. The compiler picks up the mistakes, and he or she fixes them. Rather than make a new commit, and retype the commit message, just call:</p>
<p><code>git commit --amend -a -C HEAD</code></p>
<p>This will bring up the previous commit message in the editor, which you can amend if you wish. This new commit will replace the previous one. The <code>-a</code> option means you don&#8217;t even need to do a git add and the <code>-C HEAD</code> option means it will use the commit message from the last commit.</p>
<p>Of course, if you&#8217;re a rockstar programmer, you don&#8217;t make mistakes at this level. But I&#8217;m not, and I prefer to work with human nature rather than against it.</p>
]]></content:encoded>
			<wfw:commentRss>http://abizern.org/2009/11/11/some-tips-for-lazy-xcoders/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

