<?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>farp.blog &#187; thoughtback</title>
	<atom:link href="http://fredandrandall.com/blog/tag/thoughtback/feed/" rel="self" type="application/rss+xml" />
	<link>http://fredandrandall.com/blog</link>
	<description>Bloggin&#039; about whatever</description>
	<lastBuildDate>Tue, 04 Nov 2014 07:15:30 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>How to create a custom cocoa framework</title>
		<link>http://fredandrandall.com/blog/2011/02/04/how-to-create-a-custom-cocoa-framework/</link>
		<comments>http://fredandrandall.com/blog/2011/02/04/how-to-create-a-custom-cocoa-framework/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 04:29:53 +0000</pubDate>
		<dc:creator><![CDATA[Randall]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[thoughtback]]></category>

		<guid isPermaLink="false">http://fredandrandall.com/blog/?p=238</guid>
		<description><![CDATA[I was recently trying to rip out some code from the Thoughtback app into it&#8217;s own framework so that I could eventually open source when we decide to make our API public. I&#8217;ve used frameworks plenty of times, but I&#8217;ve never &#8230; <a href="http://fredandrandall.com/blog/2011/02/04/how-to-create-a-custom-cocoa-framework/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I was recently trying to rip out some code from the <a href="http://www.thoughtback.com">Thoughtback</a> app into it&#8217;s own framework so that I could eventually open source when we decide to make our API public. I&#8217;ve used frameworks plenty of times, but I&#8217;ve never actually made my own.</p>
<p>I started off by just using the default Cocoa Framework project that XCode makes for you. It all seemed to work just fine, but when I tried actually using the framework in a different project, it wouldn&#8217;t load. I kept getting this error</p>
<pre class="brush: plain; title: ; notranslate">Library not loaded: path/to/framework
 Referenced from: path/to/app/
 Reason: image not found</pre>
<p><span id="more-238"></span>After lots of looking around I finally figured out the problem. Frameworks can be referenced at the System level (requires admin rights to install), the User level (could be useful to share a framework between apps), and at the application level. Bundling your framework inside the application is the most common way to do that. The &#8220;image not found&#8221; error has to do with some pathing in the framework. To fix it, you&#8217;ll need to change the &#8220;Installation Directory&#8221; in the build settings of your framework. Right click on your framework&#8217;s target to bring up the info panel. Search for &#8220;Installation Directory&#8221; and set it to be <strong>@executable_path/../Frameworks</strong>.</p>
<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2011/02/InstallationDirectory.png"><img class="aligncenter size-full wp-image-248" title="InstallationDirectory" src="http://fredandrandall.com/blog/wp-content/uploads/2011/02/InstallationDirectory.png" alt="" width="516" height="593" /></a></p>
<p>Now the framework should load just fine in any project you want to use it in. I still had a problem though. If you&#8217;re familiar with cocoa frameworks, you&#8217;ll know its just a bundle with a library and some header files in a certain directory structure. I looked at my framework and couldn&#8217;t find the &#8220;Headers&#8221; folder with my header files so I couldn&#8217;t use anything that was in my framework. I googled around for a little while and found nothing. Thats when I noticed the &#8220;Role&#8221; column when I clicked on my framework target. That let me set the header files to public, private, or project, depending on how I wanted them to show up in my framework.</p>
<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2011/02/PublicHeader.png"><img class="aligncenter size-full wp-image-247" title="PublicHeader" src="http://fredandrandall.com/blog/wp-content/uploads/2011/02/PublicHeader.png" alt="" width="370" height="401" /></a></p>
<p>So now that I have the library path right and the header files right, there is just one thing I needed to do to get it working in my test app. You&#8217;ll need to add another build step to your application target that copies the framework to your application bundle.</p>
<ol>
<li>Right click on your application target.</li>
<li>Click &#8220;New Build Phase&#8221;</li>
<li>Click &#8220;New Copy Files Build Phase&#8221;</li>
<li>Change the destination to &#8220;Frameworks&#8221;</li>
<li>Close the window.</li>
<li>Drag and drop your framework into the build phase.</li>
</ol>
<p><object id="scPlayer" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="763" height="429" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/jingswfplayer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/FirstFrame.jpg&amp;containerwidth=763&amp;containerheight=429&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/00000074.swf&amp;blurover=false" /><param name="allowFullScreen" value="true" /><param name="scale" value="showall" /><param name="allowScriptAccess" value="always" /><param name="base" value="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/" /><param name="src" value="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/jingswfplayer.swf" /><param name="flashvars" value="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/FirstFrame.jpg&amp;containerwidth=763&amp;containerheight=429&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/00000074.swf&amp;blurover=false" /><param name="allowfullscreen" value="true" /><embed id="scPlayer" type="application/x-shockwave-flash" width="763" height="429" src="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/jingswfplayer.swf" base="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/" allowscriptaccess="always" scale="showall" allowfullscreen="true" flashvars="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/FirstFrame.jpg&amp;containerwidth=763&amp;containerheight=429&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/00000074.swf&amp;blurover=false" bgcolor="#FFFFFF" quality="high" data="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/jingswfplayer.swf"></embed></object></p>
<p>Hopefully you found this useful. I couldn&#8217;t find all of the resources I needed in one place and what I did find wasn&#8217;t detailed enough to solve my problem immediately. This <a href="http://www.cimgf.com/2008/09/04/cocoa-tutorial-creating-your-very-own-framework/">post</a> from Cocoa Is My Girlfriend got me most of the way there and has some more good information on the subject.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredandrandall.com/blog/2011/02/04/how-to-create-a-custom-cocoa-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thoughtback, get your thoughts back.</title>
		<link>http://fredandrandall.com/blog/2010/11/11/thoughtback-get-your-thoughts-back/</link>
		<comments>http://fredandrandall.com/blog/2010/11/11/thoughtback-get-your-thoughts-back/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 00:36:34 +0000</pubDate>
		<dc:creator><![CDATA[Randall]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[swlansing]]></category>
		<category><![CDATA[thoughtback]]></category>

		<guid isPermaLink="false">http://fredandrandall.com/blog/?p=151</guid>
		<description><![CDATA[This past weekend I went to an event called Startup Weekend Lansing. Basically, you take a bunch of people with ideas and a bunch of people with the skills to build those ideas and put them all in a room &#8230; <a href="http://fredandrandall.com/blog/2010/11/11/thoughtback-get-your-thoughts-back/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2010/11/thoughtbackiphone.png"><img class="alignleft size-medium wp-image-157" title="thoughtbackiphone" src="http://fredandrandall.com/blog/wp-content/uploads/2010/11/thoughtbackiphone-156x300.png" alt="" width="156" height="300" /></a><a href="http://fredandrandall.com/blog/wp-content/uploads/2010/11/thoughtbackiphone.png"><br />
</a>This past weekend I went to an event called <a href="http://lansing.startupweekend.org/">Startup Weekend Lansing</a>. Basically, you take a bunch of people with ideas and a bunch of people with the skills to build those ideas and put them all in a room for a weekend. The result of that was several startups.</p>
<p>The result of my weekend? <a href="http://www.thoughtback.com">Thoughtback</a>.</p>
<p>Thoughtback is a personal idea saving/reminding service. Basically, we built an app around the idea that lots of people try to keep track of their thoughts and ideas, but very few ever get to revisit them. So what <a href="http://www.thoughtback.com">thoughtback</a> will do is take your thoughts, then at some later time, send you an email with one of those thoughts so you can revisit the idea.</p>
<p>The service is a webapp, iPhone app, and Mac OSX app. How did we do it in just one weekend?</p>
<p><span id="more-151"></span>We had a pretty skilled team of developers. A few people on the team built the website, and I built the iPhone and Mac apps.</p>
<p>The website backend was written in PHP using CodeIgniter. The email stuff is done using Python and Cron. That stuff is sorta outside my realm of expertise so I&#8217;m glad I got on a team with people that knew what they were doing.</p>
<p>I wrote the iPhone and Mac apps. At first, it might seem like an awful lot to get done in 48 hours, but I was able to do a pretty good job of sharing code between the two apps. For example, all the network communication is done using a cross platform class. Luckily NSURLConnection was one of the things that Apple decided to keep on both platforms. For Keychain access I used a class I found that was actually designed to be used just for iPhone. Unfortunately (although fortunate in my case) the iPhone simulator doesn&#8217;t use the iPhone keychain, it bizarrely uses the Mac keychain. So I was able to use some code (<a href="https://github.com/ldandersen/scifihifi-iphone">SFHFKeychainUtils</a> written by Buzz Anderson) and slightly modify it so it would work on both the iPhone and Mac. Basically I just changed the ifdef from the iPhone simulator to my mac. This let me basically just switch out my view classes and I was good to go.</p>
<p>Anyway, it was an AWESOME weekend and we&#8217;re gonna keep working on it. We even won $1000 bucks to put back into the &#8220;company&#8221; so hopefully we can get some cool stuff into it. We&#8217;ve even been getting some press on local radio stations and in the <a href="http://www.lansingstatejournal.com/article/20101108/NEWS03/11080321/1004/NEWS03">newspaper</a>. The Mac app is available for download RIGHT NOW and the iPhone app is ready to be submitted to the app store. Check it out <a href="http://www.thoughtback.com">www.thoughtback.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredandrandall.com/blog/2010/11/11/thoughtback-get-your-thoughts-back/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
