<?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>Michael Schneider</title>
	<atom:link href="http://mischneider.net/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://mischneider.net/blog</link>
	<description>About Study, Programming, Mac …</description>
	<lastBuildDate>Sun, 04 Mar 2012 14:10:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>From ReadNow to Read Later</title>
		<link>http://mischneider.net/blog/?p=581</link>
		<comments>http://mischneider.net/blog/?p=581#comments</comments>
		<pubDate>Thu, 01 Mar 2012 16:49:30 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[readnow]]></category>

		<guid isPermaLink="false">http://mischneider.net/blog/?p=581</guid>
		<description><![CDATA[And&#8230; We&#8217;re back! Due to a trademark infringement notice I had to bring ReadNow down temporarily. I am pleased to announce that ReadNow is now Read Later and is available immediately and completely Free! I created Read Later as I &#8230; <a href="http://mischneider.net/blog/?p=581">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>And&#8230; We&#8217;re back! </p>
<p>Due to a trademark infringement notice I had to bring ReadNow down temporarily. </p>
<p>I am pleased to announce that ReadNow is now Read Later and is available immediately and completely Free!</p>
<p>I created Read Later as I really wanted a Mac Client for Read It Later / Instapaper and couldn&#8217;t find one. It has been a really great experience and I learned a lot in the development phase from version 0.1 to the current version 2.0.2. </p>
<p>The new version has a few updates<br />
- [Added] Save fullscreen state<br />
- [Added] Caching of delete bookmark operations<br />
- [Added] Keyboard Shortcuts in the Sharing Popovers<br />
- [Fixed] Case Insensitivity in the bookmark search<br />
- [Fixed] Close of Popover Windows<br />
- [Improvements] Share with Evernote</p>
<p>You will find additional information under the following link:</p>
<p><a href="http://mischneider.net/readlaterapp" title="Read Later">Read Later</a></p>
<p>Thanks, Michael</p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=581</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ReadNow 2</title>
		<link>http://mischneider.net/blog/?p=452</link>
		<comments>http://mischneider.net/blog/?p=452#comments</comments>
		<pubDate>Thu, 08 Dec 2011 16:37:23 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[readnow]]></category>
		<category><![CDATA[ReadNow]]></category>

		<guid isPermaLink="false">http://mischneider.net/blog/?p=452</guid>
		<description><![CDATA[ReadNow was renamed to Read Later. You will find Read Later at: Read Later It was very quiet about ReadNow in the last weeks, but this was for a reason. I&#8217;ve worked very hard and are really happy to announce &#8230; <a href="http://mischneider.net/blog/?p=452">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>ReadNow was renamed to Read Later. You will find Read Later at: <a href="http://mischneider.net/readlaterapp/" title="Read Later">Read Later</a></p>
<hr />
<p>It was very quiet about <a href="http://mischneider.net/readnowapp/">ReadNow</a> in the last weeks, but this was for a reason. I&#8217;ve worked very hard and are really happy to announce that ReadNow 2 will be released today. It&#8217;s available on the Mac App Store and a free update for all current ReadNow users.</p>
<p><a href="http://mischneider.net/readnowapp/"><img style="width:200px; height:200px; border:none;" src="http://dl.dropbox.com/u/9686014/readnow/rn_icon.png" /></a></p>
<p>This is the biggest update since the first release of ReadNow about 1.5 years ago. In the following I will introduce some changes and new features of ReadNow 2.</p>
<h2>Completly redesigned User Interface</h2>
<p>First of all, ReadNow has a complete new design as well as a complete new menubar and application icon. It&#8217;s also no menubar only application anymore. </p>
<p><img style="max-width:100%; border:none;" src="http://dl.dropbox.com/u/9686014/readnow/main_window.png" /></p>
<h2>Minimalistic</h2>
<p>ReadNows Main Window is now fully customizable in the window size or the way bookmarks, folders and the associated articles should be displayed.<br />
<img style="width:450px; height:450px; border:none;" src="http://dl.dropbox.com/u/9686014/readnow/minimalistic_window.png" /></p>
<h2>Article View</h2>
<p>Furthermore the Article View is completly redesigned. It&#8217;s fully customizable to fullfill the personal reading expectations and extend the experience to read full articles within ReadNow. The Article View also supports 3 themes: Paper, Light and Dark.</p>
<div style="width:700x; height:420px; margin-left:5px;">
<div style="float:left;">
    <img style="width:345px; height=480px; float:left; border:none;" src="http://dl.dropbox.com/u/9686014/readnow/articleview_light.png" />
  </div>
<div style="float:left">
    <img style="width:345px; height=480px; float:left; margin-left:5px; border:none;" src="http://dl.dropbox.com/u/9686014/readnow/articleview_dark.png" />
  </div>
</div>
<h2>Multiple Accounts Support</h2>
<p>Manage one Instapaper and one Read It Later account at the same time. </p>
<p><img style="border:none;" src="http://dl.dropbox.com/u/9686014/readnow/multiple_accounts.png" /></p>
<h2>Offline Mode</h2>
<p>A next big change is the offline mode. It&#8217;s now more like the iOS application of your read later service of choice. All articles of bookmarks will be downloaded and cached to have access also if the Mac is offline. Actions like archiving / unarchiving or liking / unliking of bookmarks will be saved too and the changes will be pushed to the service in the next bookmarks syncing cyclus.</p>
<h2>Drag and Drop</h2>
<p>Faster change of bookmark folder or assign tags. Just drag and drop a bookmark onto a folder or tag and it will be moved to this folder or the tag will be assigned.</p>
<p><img style="border:none;" src="http://dl.dropbox.com/u/9686014/readnow/drag_bookmark.png" /></p>
<h2>Sharing</h2>
<p>New sharing services are available. With ReadNow 2 sharing bookmarks on Twitter, Facebook, Pinboard, Delicious and Evernote is integrated and it&#8217;s planned to extend it to further services in upcoming updates.</p>
<p><img style="border:none;" src="http://dl.dropbox.com/u/9686014/readnow/rn_sharing.png" /></p>
<h2>Other changes:</h2>
<p>- Search in the Article View<br />
- Tag autocompletion in the edit window<br />
- Redownload article<br />
- Second click menubar icon menu<br />
- Folder management for Instapaper</p>
<p><!--<a href="http://itunes.apple.com/us/app/readnow/id409349978?mt=12"><img class="appstore_badge" style="border:none;" src="../img/mas_badge.png" alt="" /></a>&#8211;></p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=452</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Read Later and Instapaper</title>
		<link>http://mischneider.net/blog/?p=433</link>
		<comments>http://mischneider.net/blog/?p=433#comments</comments>
		<pubDate>Thu, 30 Jun 2011 09:48:09 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mischneider.net/blog/?p=433</guid>
		<description><![CDATA[It seems like there are a lot of confusion about Read Later and the interaction with Instapaper, I hope this post will clear these confusion: I you would like to use Read Later with Instapaper or I tried to login &#8230; <a href="http://mischneider.net/blog/?p=433">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It seems like there are a lot of confusion about Read Later and the interaction with Instapaper, I hope this post will clear these confusion:</p>
<p><strong>I you would like to use Read Later with Instapaper </strong><br />
or<br />
<strong>I tried to login with my username and password into the Instapaper website a few times, which was no problem.</strong> The error message was:<br />
=====<br />
An Instapaper subscription is required, for further information check out http://blog.instapaper.com/post/3208433429<br />
=====</p>
<p>To use Read Later with Instapaper you need to have a subscriber account at Instapaper. The subscriber account is NOT only a regular account you have also to pay 1$/month for a Subscription membership. The reason of that is that all developers can use the Full Instapaper API (Read Later need this), but it will only work for customers with Instapaper’s $1/month Subscription memberships.</p>
<p><strong>How do I purchase a subscription?</strong><br />
Visit <a href="http://instapaper.com">http://instapaper.com</a>, click Create Account in the upper right corner, then after creating a new account click the &#8220;subscribe&#8221; link or visit <a href="http://instapaper.com/subscription">http://instapaper.com/subscription</a></p>
<p><strong>Further Details</strong><br />
For further details please also look at the following blog post on the instapaper blog: <a href="http://blog.instapaper.com/post/3208433429">http://blog.instapaper.com/post/3208433429</a>. This blog post will give you additional details, why this Subscription membership is necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=433</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ReadNow in the Mac App Store</title>
		<link>http://mischneider.net/blog/?p=432</link>
		<comments>http://mischneider.net/blog/?p=432#comments</comments>
		<pubDate>Thu, 06 Jan 2011 15:07:03 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mischneider.net/?p=432</guid>
		<description><![CDATA[I&#8217;m really excited, ReadNow is now exclusively on the Mac App Store. Further information at info or grab your copy directly at the Mac App Store.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really excited, ReadNow is now exclusively on the Mac App Store. Further information at <a href="http://mischneider.net/?page_id=180">info</a> or grab your copy directly at the <a href="http://t.co/ydnggX3">Mac App Store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=432</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ReadNow: App Store Announcement</title>
		<link>http://mischneider.net/blog/?p=420</link>
		<comments>http://mischneider.net/blog/?p=420#comments</comments>
		<pubDate>Mon, 03 Jan 2011 19:52:44 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ReadNow]]></category>

		<guid isPermaLink="false">http://mischneider.net/?p=420</guid>
		<description><![CDATA[The launch of the Mac App Store is right around the corner and I want to take this time to provide some insight on the future of ReadNow. After careful consideration, I have decided that ReadNow will be available through &#8230; <a href="http://mischneider.net/blog/?p=420">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The launch of the Mac App Store is right around the corner and I want to take this time to provide some insight on the future of ReadNow. After careful consideration, I have decided that ReadNow will be available through the Mac App Store. It will be available to purchase for $3.99 USD. </p>
<p><strong>Why are you charging for ReadNow? </strong><br />
I&#8217;ve developed ReadNow in the last several month and a great deal of work has been put into it to make it at it is now. Several long nights have been put into developing new features and improving on the old as well as correct a lot of bug reports of feature requests from the version 0.x users. If you choose to purchase from the Mac App Store you will not only be showing your support but also helping to provide a foundation for even more to come.</p>
<p>Furthermore I&#8217;m a student and don&#8217;t have the same resources on time and money as a full time developer, so the revenue also goes towards support for further development of ReadNow or other projects as well as the Mac Developer Account that privileges me to submit ReadNow in the Mac App Store which costs $99 USD/year.</p>
<p><strong>Will you provide a free version of ReadNow?</strong><br />
After the release of ReadNow in the Mac App Store I plan to provide a version of ReadNow with reduced features free of charge on my website.</p>
<p>    Michael Schneider</p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=420</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Custom Sliding Text View</title>
		<link>http://mischneider.net/blog/?p=400</link>
		<comments>http://mischneider.net/blog/?p=400#comments</comments>
		<pubDate>Wed, 24 Nov 2010 17:10:26 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[cocoa]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://mischneider.net/?p=400</guid>
		<description><![CDATA[I&#8217;m currently in the process to implement a preview window in ReadNow. One of my ideas was to implement a sliding text at the bottom of the window, because lots of websites have a title that is longer than the &#8230; <a href="http://mischneider.net/blog/?p=400">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently in the process to implement a preview window in ReadNow. One of my ideas was to implement a sliding text at the bottom of the window, because lots of websites have a title that is longer than the window. The view should slide the text to the right side till the end of the text and then back to the beginning of the text. Another requirement was that it should be very easy to change the text.<br />
First I thought it will be not so much complicated to implement that, but I was wrong. I tried several of options, like to slide a text within a NSScrollView, but no one of that fit my needs.<br />
After a while of searching , I read a post in a forum that mentioned a implementation of a sliding text view with a Custom NSView and Core Animation. Unfortunately no sample code was given.  Due to I don&#8217;t use Core Animation before, I decided to dive a little bit into Core Animation. </p>
<p>The plan was:</p>
<p>1. Create a NSView subclass<br />
2. Say the NSView that he needs a layer.<br />
Core Animation is layer based, it&#8217;s like the view hierarchy with NSView and subviews. Basically a NSView don&#8217;t have a layer attached, you must explicitly say that he needs a layer in the Interface Builder. You see the necessary setting in the following screenshot:</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/18.png" /></p>
<p>3. Create a CAScrollLayer and set it as the layer of the NSView subclass<br />
4. Add a CATextLayer to our CAScrollLayer<br />
5. Attach a animation to the CATextLayer that scrolls the text within the CAScrollLayer.<br />
In detail, it changes the position property of the CATextLayer that results in a sliding effect.</p>
<p>The result code is at the following:</p>
<p>Header file:</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6e371a;">#import &lt;Cocoa/Cocoa.h&gt;</span><br />
<br />
<span style="color: #a61390;">@class</span> CATextLayer;<br />
<span style="color: #a61390;">@class</span> CAScrollLayer;<br />
<br />
<span style="color: #a61390;">@interface</span> CustomTextScrollView <span style="color: #002200;">:</span> <a href="http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/"><span style="color: #400080;">NSView</span></a> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; CAScrollLayer <span style="color: #002200;">*</span>scrollLayer;<br />
&nbsp; &nbsp; CATextLayer <span style="color: #002200;">*</span>textLayer;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #a61390;">float</span> fontSize;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>setText<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>text;<br />
<br />
<span style="color: #a61390;">@end</span></div></div>
<p>Implementation file:</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:500px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6e371a;">#import &quot;CustomTextScrollView.h&quot;</span><br />
<span style="color: #6e371a;">#import &lt;Quartz/Quartz.h&gt;</span><br />
<br />
<span style="color: #11740a; font-style: italic;">// Helper class to set different colors for foreground or backgrounds</span><br />
<span style="color: #a61390;">@interface</span> CustomTextScrollView<span style="color: #002200;">&#40;</span>Color<span style="color: #002200;">&#41;</span><br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>black;<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>white;<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>blue;<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>red;<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>green;<br />
<span style="color: #a61390;">@end</span><br />
<br />
<span style="color: #a61390;">@implementation</span> CustomTextScrollView<br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>initWithFrame<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRect</span><span style="color: #002200;">&#41;</span>frame<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>self <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>super initWithFrame<span style="color: #002200;">:</span>frame<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; fontSize <span style="color: #002200;">=</span> <span style="color: #2400d9;">14</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// ScrollLayer</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; scrollLayer <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>CAScrollLayer layer<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; scrollLayer.frame <span style="color: #002200;">=</span> NSRectToCGRect<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>self bounds<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// TextLayer</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; textLayer <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>CATextLayer layer<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; textLayer.foregroundColor <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>self black<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; textLayer.fontSize <span style="color: #002200;">=</span> fontSize;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Set textLayer as sublayer of the scrollLayer</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#91;</span>scrollLayer addSublayer<span style="color: #002200;">:</span>textLayer<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#91;</span>self setLayer<span style="color: #002200;">:</span>scrollLayer<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">return</span> self;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>setText<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>text <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>textLayer removeFromSuperlayer<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; textLayer.<span style="color: #a61390;">string</span> <span style="color: #002200;">=</span> text;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// &nbsp;Get the width of the text and set it as the new width of the textLayer</span><br />
&nbsp; &nbsp; <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span>attributes <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> dictionaryWithObjectsAndKeys<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSFont_Class/"><span style="color: #400080;">NSFont</span></a> fontWithName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;Helvetica&quot;</span> size<span style="color: #002200;">:</span>textLayer.fontSize<span style="color: #002200;">&#93;</span>, NSFontAttributeName, <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>; <br />
&nbsp; &nbsp; <span style="color: #a61390;">float</span> textWidth <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>text sizeWithAttributes<span style="color: #002200;">:</span>attributes<span style="color: #002200;">&#93;</span>.width;<br />
&nbsp; &nbsp; <span style="color: #a61390;">NSRect</span> textRect <span style="color: #002200;">=</span> NSMakeRect<span style="color: #002200;">&#40;</span><span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">0.0</span>, textWidth, scrollLayer.frame.size.height<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; textLayer.frame <span style="color: #002200;">=</span> NSRectToCGRect<span style="color: #002200;">&#40;</span>textRect<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Animate only if text is longer than the view</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>self.frame.size.width &lt; textRect.size.width<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#91;</span>self addAnimation<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span> <span style="color: #a61390;">else</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Place text in the middle of the textlayer</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #a61390;">float</span> newX <span style="color: #002200;">=</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>self frame<span style="color: #002200;">&#93;</span>.size.width <span style="color: #002200;">-</span> textRect.size.width<span style="color: #002200;">&#41;</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #a61390;">NSRect</span> newTextRect <span style="color: #002200;">=</span> NSMakeRect<span style="color: #002200;">&#40;</span>newX, <span style="color: #2400d9;">0</span>, textLayer.frame.size.width, textLayer.frame.size.height<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; textLayer.frame <span style="color: #002200;">=</span> NSRectToCGRect<span style="color: #002200;">&#40;</span>newTextRect<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>scrollLayer addSublayer<span style="color: #002200;">:</span>textLayer<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>addAnimation <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Prepare the animation from the current position to the new position</span><br />
&nbsp; &nbsp; CABasicAnimation <span style="color: #002200;">*</span>animation <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>CABasicAnimation animationWithKeyPath<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;position&quot;</span><span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; animation.autoreverses <span style="color: #002200;">=</span> <span style="color: #a61390;">YES</span>;<br />
&nbsp; &nbsp; animation.timingFunction <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>CAMediaTimingFunction functionWithName<span style="color: #002200;">:</span>kCAMediaTimingFunctionEaseInEaseOut<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; animation.duration <span style="color: #002200;">=</span> <span style="color: #2400d9;">2.5</span>;<br />
&nbsp; &nbsp; animation.repeatCount <span style="color: #002200;">=</span> HUGE_VALF;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #a61390;">NSPoint</span> from <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>textLayer position<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; from.x <span style="color: #002200;">+=</span> <span style="color: #2400d9;">10</span>;<br />
&nbsp; &nbsp; animation.fromValue <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSValue_Class/"><span style="color: #400080;">NSValue</span></a> valueWithPoint<span style="color: #002200;">:</span>from<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #a61390;">NSPoint</span> to <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>scrollLayer position<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; to.x <span style="color: #002200;">-=</span> <span style="color: #002200;">&#40;</span>textLayer.frame.size.width <span style="color: #002200;">-</span> textLayer.position.x <span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>self.frame.size.width<span style="color: #002200;">/</span><span style="color: #2400d9;">2</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">+</span> <span style="color: #2400d9;">10</span><span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; animation.toValue <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSValue_Class/"><span style="color: #400080;">NSValue</span></a> valueWithPoint<span style="color: #002200;">:</span>to<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Add the animation, overriding the implicit animation.</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>textLayer addAnimation<span style="color: #002200;">:</span>animation forKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;position&quot;</span><span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>drawRect<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRect</span><span style="color: #002200;">&#41;</span>dirtyRect <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Drawing code here.</span><br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>dealloc <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>super dealloc<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #a61390;">@end</span><br />
<br />
<span style="color: #a61390;">@implementation</span> CustomTextScrollView<span style="color: #002200;">&#40;</span>Color<span style="color: #002200;">&#41;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorSpaceRef<span style="color: #002200;">&#41;</span>genericRGBSpace <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">static</span> CGColorSpaceRef space <span style="color: #002200;">=</span> <span style="color: #a61390;">NULL</span>;<br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NULL</span> <span style="color: #002200;">==</span> space<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; space <span style="color: #002200;">=</span> CGColorSpaceCreateWithName <span style="color: #002200;">&#40;</span>kCGColorSpaceGenericRGB<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">return</span> space;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>black <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">static</span> CGColorRef black <span style="color: #002200;">=</span> <span style="color: #a61390;">NULL</span>;<br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span>black <span style="color: #002200;">==</span> <span style="color: #a61390;">NULL</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; CGFloat values<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">4</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">1.0</span><span style="color: #002200;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; black <span style="color: #002200;">=</span> CGColorCreate<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>self genericRGBSpace<span style="color: #002200;">&#93;</span>, values<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">return</span> black;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>white<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">static</span> CGColorRef white <span style="color: #002200;">=</span> <span style="color: #a61390;">NULL</span>;<br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span>white <span style="color: #002200;">==</span> <span style="color: #a61390;">NULL</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; CGFloat values<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">4</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">1.0</span>, <span style="color: #2400d9;">1.0</span>, <span style="color: #2400d9;">1.0</span>, <span style="color: #2400d9;">1.0</span><span style="color: #002200;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; white <span style="color: #002200;">=</span> CGColorCreate<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>self genericRGBSpace<span style="color: #002200;">&#93;</span>, values<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">return</span> white;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>blue <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">static</span> CGColorRef blue <span style="color: #002200;">=</span> <span style="color: #a61390;">NULL</span>;<br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span>blue <span style="color: #002200;">==</span> <span style="color: #a61390;">NULL</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; CGFloat values<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">4</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">1.0</span>, <span style="color: #2400d9;">1.0</span><span style="color: #002200;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; blue <span style="color: #002200;">=</span> CGColorCreate<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>self genericRGBSpace<span style="color: #002200;">&#93;</span>, values<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">return</span> blue;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>red <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">static</span> CGColorRef red <span style="color: #002200;">=</span> <span style="color: #a61390;">NULL</span>;<br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span>red <span style="color: #002200;">==</span> <span style="color: #a61390;">NULL</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; CGFloat values<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">4</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">1.0</span>, <span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">1.0</span><span style="color: #002200;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; red <span style="color: #002200;">=</span> CGColorCreate<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>self genericRGBSpace<span style="color: #002200;">&#93;</span>, values<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">return</span> red;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>CGColorRef<span style="color: #002200;">&#41;</span>green <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">static</span> CGColorRef green <span style="color: #002200;">=</span> <span style="color: #a61390;">NULL</span>;<br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span>green <span style="color: #002200;">==</span> <span style="color: #a61390;">NULL</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; CGFloat values<span style="color: #002200;">&#91;</span><span style="color: #2400d9;">4</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">1.0</span>, <span style="color: #2400d9;">0.0</span>, <span style="color: #2400d9;">1.0</span><span style="color: #002200;">&#125;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; green <span style="color: #002200;">=</span> CGColorCreate<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>self genericRGBSpace<span style="color: #002200;">&#93;</span>, values<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #a61390;">return</span> green;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #a61390;">@end</span></div></div>
<p>You will find a sample <a href="https://github.com/maicki/ScrollingTextSample">Xcode project</a> on my <a href="http://github.com/maicki/">github-profile</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=400</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linking to the Google Data APIs Objective-C Client Library in iPhone SDK 4.0</title>
		<link>http://mischneider.net/blog/?p=377</link>
		<comments>http://mischneider.net/blog/?p=377#comments</comments>
		<pubDate>Sun, 05 Sep 2010 10:42:08 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[cocoa]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://mischneider.net/?p=377</guid>
		<description><![CDATA[In the last weekend I tried to dive a little bit into the Google Data APIs Objective-C Client Library. Unfortunately it wasn&#8217;t so easy to integrate the Library into my iPhone project as I thought at the beginning. If you &#8230; <a href="http://mischneider.net/blog/?p=377">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
In the last weekend I tried to dive a little bit into the Google Data APIs Objective-C Client Library. Unfortunately it wasn&#8217;t so easy to integrate the Library into my iPhone project as I thought at the beginning.</p>
<p>If you would like to integrate the Google Data APIs Library in one of your iPhone Projects, I wrote the necessary steps, down which you can read at the following:</p>
<p>First of all we have to add the necessary frameworks to the iPhone Project.<br />
This are the Security.framework and the SystemConfiguration.framework. For each of the frameworks we have to do the following:<br />
We make a right click on the &#8220;Frameworks&#8221; folder in the &#8220;Group &#038; Files&#8221; list and choose the &#8220;Add->Existing Frameworks&#8230;&#8221; menu item.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/1.png" /></p>
<p>
We scroll to the respective framework, click on it, and click the &#8220;Add&#8221; button.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/2.png" /></p>
<p>
Next, we download the source of the Google Data APIs Objective-C Client Library from the URL: http://code.google.com/p/gdata-objectivec-client and make some necessary preparations.<br />
After unzipping the archive we open the GData.xcodeproj file in the &#8220;Source&#8221; directory.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/3.png" /></p>
<p>
After Xcode opened the GData.xcodeproj file we click on the left triangle besides the &#8220;Targets&#8221; entry. Then we make a double click on the GDataTouchStaticLib and substitute the Base SDK entry from &#8220;iPhone Device 3.0&#8243; to &#8220;iPhone Device 4.0&#8243;.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/11.png" width=700/></p>
<p>
At the end we have to open the project settings for the GData.xcodeproj file (Project -> Edit Project Settings) and delete all entries in &#8220;Other warning flags&#8221;.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/12.png" width=700/></p>
<p>
Back to the iPhone Project.<br />
The GData library project includes a target for building a static library for iPhone and iPod Touch apps; this avoids dragging individual library  source files into the iPhone application&#8217;s project. To build the iPhone poject with the static library we have to make a cross project reference.<br />
There are two ways, choose on of it:</p>
<ul>
<li>drag the GData.xcodeproj  file itself from the Finder into &#8220;Groups &#038; Files&#8221; in the iPhone project</li>
<li>add the GData.xcodeproj file with &#8220;Project->Add to Project&#8230;&#8221; to the iPhone project</li>
</ul>
<p><img src="http://dl.dropbox.com/u/9686014/blog/7.png" /></p>
<p>
In the next step, we add the GDataTouchStaticLib target as a dependency for building the iPhone project: We have to do a click on the triangle besides the Target entry, a right mouse click on the Target in the targets list and a click on the &#8220;Get info&#8221; menu item.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/8.png" /></p>
<p>
Now you switch to the &#8220;General&#8221; pane on the top of the target editor. To add a target dependency, click the plus-sign button. The list of targets  shown includes all the other targets in the current project, as well as the targets in any referenced projects. Due to we have the GData.xcodeproj as a cross reference we see the GDataTouchStaticLib in the list of targets. Now we click on the GDataTouchStaticLib and &#8220;Add Target&#8221; Button to add it as a target dependency. After that we close the target editor window.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/9.png" /></p>
<p>
The next step is to drag the static library target (libGDataTouchStaticLibrary) from under the  GData.xcodeproj cross-project  reference in our iPhone project to the target&#8217;s &#8220;Link Binary With Libraries&#8221; build phase from our iPhone project. You will see the &#8220;Link Binary With Libraries&#8221; build phase if you click on the triangle besides you Target.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/10.png" /></p>
<p>
Next we have to add some &#8220;Other Linker Flags&#8221; to the iPhone project preferences. In Xcode,  double-click the target&#8217;s name under &#8220;Targets&#8221; in the project window. Choose the &#8220;Build&#8221; pane from the ensuing &#8220;Info&#8221; window. Scroll down to the &#8220;Other Linker Flags&#8221; build setting under the Linking collection and open it with a double click. Add &#8220;-ObjC&#8221; in line 1 and &#8220;-lxml2&#8243; in line 2 to the table view.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/15.png" /></p>
<p>
After that, we will have problems to build the Project, because Xcode can&#8217;t find the lxml library. To solve this problem we add to the &#8220;Header Search Paths&#8221; build setting the entry: /usr/include/libxml2
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/16.png" /></p>
<p>
Now we have to build the iPhone project to create header files of the static library. Click (Build->build). After the build have been finished, the static library build creates the necessary directory of header files  (in its build products directory) that should be dragged into the iPhone project.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/13.png" /></p>
<p>
So go to the the GData Project Folder and change the folder to &#8220;Source -> build -> Debug-iphonesimulator&#8221; and you will see a directory called &#8220;Headers&#8221;. We drag the hole directory to our iPhone project.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/14.png" /></p>
<p>
Thats all, with the static library linked into your project, refer directly to the headers by omitting the framework name, like</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">#import &quot;GData.h&quot;</div></div>
<p>in your source files.
</p>
<p><img src="http://dl.dropbox.com/u/9686014/blog/17.png" /></p>
<p>
Further informations you will find at the following links:</p>
<ul>
<li><a href="http://code.google.com/p/gdata-objectivec-client/">http://code.google.com/p/gdata-objectivec-client/</a></li>
<li><a href="https://docs.google.com/present/view?id=dftpzpbs_0g5w3q5cg">Google Data APIs for<br />
Cocoa Applications</a></li>
<li><a href="http://code.google.com/p/gdata-objectivec-client/wiki/GDataObjCIntroduction">GDataObjCIntroduction</a></li>
<li><a href="http://code.google.com/apis/gdata/">Google Data Protocol<br />
</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=377</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Script to install the AirVideo Server on a Debian server automatically</title>
		<link>http://mischneider.net/blog/?p=350</link>
		<comments>http://mischneider.net/blog/?p=350#comments</comments>
		<pubDate>Mon, 02 Aug 2010 17:42:35 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mischneider.net/?p=350</guid>
		<description><![CDATA[This is a little gist from me, that automatically install the latest AirVideo Server for Linux on a Debian server. http://gist.github.com/505001]]></description>
			<content:encoded><![CDATA[<p>This is a little gist from me, that automatically install the latest AirVideo Server for Linux on a Debian server.</p>
<p><a href="http://gist.github.com/505001">http://gist.github.com/505001</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=350</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ImageStoreMac a image cache library for the Mac</title>
		<link>http://mischneider.net/blog/?p=342</link>
		<comments>http://mischneider.net/blog/?p=342#comments</comments>
		<pubDate>Tue, 20 Jul 2010 18:56:06 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[cocoa]]></category>

		<guid isPermaLink="false">http://mischneider.net/?p=342</guid>
		<description><![CDATA[I’ve finished my exams last week and as I wrote in the last post, I started to program on ReadNow again. I’m currently implementing some feature request from users of ReadNow. This contains the display of favicons and growl support. &#8230; <a href="http://mischneider.net/blog/?p=342">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I’ve finished my exams last week and as I wrote in the last post, I started to program on ReadNow again.<br />
I’m currently implementing some feature request from users of ReadNow. This contains the display of favicons and growl support. The favicon integration is a bit tricky, because I don’t have so many experiences with image handling and I have also different ideas and approaches for the implementation. But all of these ideas had one component that is necessary: an image cache. Fortunately I looked on github and found a library with the name ImageStore from psychs, a developer from Japan that works on Echofon for Mac or LimeChat for Mac. Unfortunately the library is only for iPhone development and so I decided to make it Mac compatible and change it also a little bit for my purposes.<br />
The result is also on github and you will found it on my github profile at: <a href="http://github.com/maicki">http://github.com/maicki</a> with the name: ImageStoreMac.</p>
<p>Some details of ImageStoreMac:<br />
* What is ImageStore</p>
<p>ImageStore is a library for the Mac to download images in background automatically and cache it.<br />
The sample project includes also a HttpClient, I would hope it will help you.</p>
<p>* How to use<br />
See the sample project that downloads some favicons and display it in a NSTabelView.</p>
<p>* The Author<br />
Mac Version:<br />
Michael Schneider<br />
<a href="http://mischneider.net/">http://mischneider.net/</a></p>
<p>iPhone Version:<br />
Satoshi Nakagawa<br />
<a href="http://limechat.net/psychs/">http://limechat.net/psychs/</a><br />
#limechat on irc.freenode.net</p>
<p>* License<br />
The New BSD License</p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=342</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Current Situation</title>
		<link>http://mischneider.net/blog/?p=309</link>
		<comments>http://mischneider.net/blog/?p=309#comments</comments>
		<pubDate>Fri, 11 Jun 2010 19:23:28 +0000</pubDate>
		<dc:creator>maicki</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://mischneider.net/?p=309</guid>
		<description><![CDATA[Today I will post a little update to my current situation and the state of ReadNow. Unfortuantely I must write important exams in the next weeks and so I don&#8217;t have much time to program on ReadNow currently. A soon &#8230; <a href="http://mischneider.net/blog/?p=309">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I will post a little update to my current situation and the state of ReadNow. Unfortuantely I must write important exams in the next weeks and so I don&#8217;t have much time to program on ReadNow currently. A soon as I have finished my exams I will start to improve ReadNow and implement new features.</p>
]]></content:encoded>
			<wfw:commentRss>http://mischneider.net/blog/?feed=rss2&#038;p=309</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

