<?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>WM Innovations iPhone devblog</title>
	<atom:link href="http://devblog.wm-innovations.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.wm-innovations.com</link>
	<description>iPhone / iPad development blog</description>
	<lastBuildDate>Tue, 09 Aug 2011 09:25:08 +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>KookJij to be featured on redeemcodes.com</title>
		<link>http://devblog.wm-innovations.com/2011/08/09/kookjij-to-be-featured-on-redeemcodes-com/</link>
		<comments>http://devblog.wm-innovations.com/2011/08/09/kookjij-to-be-featured-on-redeemcodes-com/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 09:25:08 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[KookJij]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=203</guid>
		<description><![CDATA[KookJij will be featured at http://redeemcodes.com on the 11th of August, where we will give away 7 free promo codes for our app.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://itunes.apple.com/app/kookjij/id333188805?mt=8#" target="_blank">KookJij</a> will be featured at <a href="http://redeemcodes.com" target="_blank">http://redeemcodes.com</a> on the 11th of August, where we will give away 7 free promo codes for our app.</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2011/08/09/kookjij-to-be-featured-on-redeemcodes-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No more AMR audio support in iOS 4.3.x</title>
		<link>http://devblog.wm-innovations.com/2011/07/27/no-more-amr-audio-support-in-ios-4-3-x/</link>
		<comments>http://devblog.wm-innovations.com/2011/07/27/no-more-amr-audio-support-in-ios-4-3-x/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 18:35:58 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[iOS4]]></category>
		<category><![CDATA[makeiPhoneRefMovie]]></category>
		<category><![CDATA[MPMoviePlayerController]]></category>
		<category><![CDATA[MPMoviePlayerViewController]]></category>
		<category><![CDATA[Passie voor Horeca]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=198</guid>
		<description><![CDATA[Today I got a notice that the 3G movies in the Passie voor Horeca app no longer worked. When on a 3G connection, the movie would not play and exit immediately back to the list of movies.
It turns out that the AMR audio format (libamr) that ffmpeg uses by default for all .3gp based movies, [...]]]></description>
			<content:encoded><![CDATA[<p>Today I got a notice that the 3G movies in the Passie voor Horeca app no longer worked. When on a 3G connection, the movie would not play and exit immediately back to the list of movies.</p>
<p>It turns out that the AMR audio format (libamr) that ffmpeg uses by default for all .3gp based movies, is no longer supported. In order to fix this, you need to re-encode movies with a supported audio encoder like AAC, this is done by adding the <strong>-acodec libfaac</strong> option to the ffmpeg commandline.</p>
<p>Example commandline to get a working .3gp file for use over 3G and/or GPRS:<br />
<code>ffmpeg -i inputfile.flv -vcodec mpeg4 -acodec libfaac -r 10 -ac 1 -ar 8000 -b 52050 -ab 11950 -aspect 16:9 outputfile.3gp</code></p>
<p>I had to downscale the video bitrate a bit (-b option, decreased it with 4000) and up the audio bitrate (-ab option, added 4000) to get a decent audio track in the resulting .3gp file compared to the AMR format.</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2011/07/27/no-more-amr-audio-support-in-ios-4-3-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KookJij Kerst becomes KookJij Gratis</title>
		<link>http://devblog.wm-innovations.com/2011/02/16/kookjij-kerst-becomes-kookjij-gratis/</link>
		<comments>http://devblog.wm-innovations.com/2011/02/16/kookjij-kerst-becomes-kookjij-gratis/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 21:52:19 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[KookJij]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=191</guid>
		<description><![CDATA[I removed the christmas theme and made the &#8216;KookJij Kerst&#8217; app a more generic &#8216;KookJij Gratis&#8217;. Function-wise it&#8217;s still the same, just a little less jingle bells  
Update got approved on Feb 16th

]]></description>
			<content:encoded><![CDATA[<p>I removed the christmas theme and made the &#8216;KookJij Kerst&#8217; app a more generic &#8216;KookJij Gratis&#8217;. Function-wise it&#8217;s still the same, just a little less jingle bells <img src='http://devblog.wm-innovations.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Update got approved on Feb 16th<br />
<center><a href="http://itunes.apple.com/nl/app/kookjij-kerst/id403774587?mt=8" target="_blan"><img src="/images/kookjij-gratis.png" border="0"></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2011/02/16/kookjij-kerst-becomes-kookjij-gratis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KookJij Kerst released</title>
		<link>http://devblog.wm-innovations.com/2010/11/23/kookjij-kerst-released/</link>
		<comments>http://devblog.wm-innovations.com/2010/11/23/kookjij-kerst-released/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 09:14:26 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[KookJij]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=180</guid>
		<description><![CDATA[Released today: KookJij Kerst A free version of the KookJij app themed for the holiday season. 

]]></description>
			<content:encoded><![CDATA[<p>Released today: <a href="http://itunes.apple.com/nl/app/kookjij-kerst/id403774587?mt=8">KookJij Kerst</a><br /> A free version of the KookJij app themed for the holiday season. </p>
<p><center><a href="http://itunes.apple.com/nl/app/kookjij-kerst/id403774587?mt=8"><img src="http://devblog.wm-innovations.com/images/kookjij-kerst-icon-small.png"></a><br /><img src="http://devblog.wm-innovations.com/images/kookjij-kerst-mainmenu.jpg"></center></p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/11/23/kookjij-kerst-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter function in KookJij broken</title>
		<link>http://devblog.wm-innovations.com/2010/09/03/twitter-function-in-kookjij-broken/</link>
		<comments>http://devblog.wm-innovations.com/2010/09/03/twitter-function-in-kookjij-broken/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 11:06:22 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Various]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=176</guid>
		<description><![CDATA[With the new OAuth requirement on the Twitter API, posting your recipe tip from the KookJij app to your twitter is currently broken. I&#8217;m working on a fix, so there should be an update available soon.
]]></description>
			<content:encoded><![CDATA[<p>With the new <a href="http://dev.twitter.com/pages/basic_auth_shutdown">OAuth requirement</a> on the Twitter API, posting your recipe tip from the KookJij app to your twitter is currently broken. I&#8217;m working on a fix, so there should be an update available soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/09/03/twitter-function-in-kookjij-broken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Passie voor Horeca free today</title>
		<link>http://devblog.wm-innovations.com/2010/08/26/passie-voor-horeca-free-toda/</link>
		<comments>http://devblog.wm-innovations.com/2010/08/26/passie-voor-horeca-free-toda/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 07:35:23 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Various]]></category>
		<category><![CDATA[appevent]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[Passie voor Horeca]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=172</guid>
		<description><![CDATA[Today the Passie voor Horeca app is free today due to the monthly AppEvent free app of the day.

]]></description>
			<content:encoded><![CDATA[<p>Today the <a href="http://itunes.apple.com/nl/app/passie-voor-horeca/id373083151?mt=8">Passie voor Horeca</a> app is free today due to the monthly <a href="http://nl.appevent.com/" target="_blank">AppEvent</a> free app of the day.</p>
<p><center><a href="http://itunes.apple.com/nl/app/passie-voor-horeca/id373083151?mt=8"><img src="http://devblog.wm-innovations.com/images/horeca-icon-small.png"></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/08/26/passie-voor-horeca-free-toda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Passie voor Horeca promo video</title>
		<link>http://devblog.wm-innovations.com/2010/08/18/passie-voor-horeca-promo-video-2/</link>
		<comments>http://devblog.wm-innovations.com/2010/08/18/passie-voor-horeca-promo-video-2/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 19:34:17 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Various]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Passie voor Horeca]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=162</guid>
		<description><![CDATA[SvH made a promo video for the &#8220;Passie voor Horeca&#8221; app I made for them, take a look:
]]></description>
			<content:encoded><![CDATA[<p>SvH made a promo video for the &#8220;<a href="http://itunes.apple.com/nl/app/passie-voor-horeca/id373083151?mt=8">Passie voor Horeca</a>&#8221; app I made for them, take a look:</p>
<p><a href="http://devblog.wm-innovations.com/2010/08/18/passie-voor-horeca-promo-video-2/"><em>Click here to view the embedded video.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/08/18/passie-voor-horeca-promo-video-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KookJij vandaag gratis</title>
		<link>http://devblog.wm-innovations.com/2010/08/05/kookjij-gratis/</link>
		<comments>http://devblog.wm-innovations.com/2010/08/05/kookjij-gratis/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 22:54:40 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Various]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[KookJij]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=155</guid>
		<description><![CDATA[KookJij is vandaag gratis in verband met de AppEvent-actie tijdens de maand augustus! Bezoek http://www.appevent.com voor meer informatie over gratis applicaties in de komende dagen!
Om KookJij gratis te krijgen kun je rechts op &#8216;t App icon klikken..
]]></description>
			<content:encoded><![CDATA[<p>KookJij is vandaag gratis in verband met de AppEvent-actie tijdens de maand augustus! Bezoek http://www.appevent.com voor meer informatie over gratis applicaties in de komende dagen!</p>
<p>Om KookJij gratis te krijgen kun je rechts op &#8216;t App icon klikken..</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/08/05/kookjij-gratis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Passie voor Horeca (Lite) en KookJij updates</title>
		<link>http://devblog.wm-innovations.com/2010/07/21/passie-voor-horeca-lite-en-kookjij-updates/</link>
		<comments>http://devblog.wm-innovations.com/2010/07/21/passie-voor-horeca-lite-en-kookjij-updates/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 10:05:11 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[iOS4]]></category>
		<category><![CDATA[MPMoviePlayerController]]></category>
		<category><![CDATA[MPMoviePlayerViewController]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=148</guid>
		<description><![CDATA[Yesterday, Passie voor Horeca 1.1 and Passie voor Horeca Lite 1.2 got accepted as update by apple. Two weeks ago, KookJij 1.4 also got accepted which in all cases fixed several bugs when running with iOS4.
With the KookJij app the main issue was a buggy imageloader class which loads thumbnails in a threaded way when [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, Passie voor Horeca 1.1 and Passie voor Horeca Lite 1.2 got accepted as update by apple. Two weeks ago, KookJij 1.4 also got accepted which in all cases fixed several bugs when running with iOS4.</p>
<p>With the KookJij app the main issue was a buggy imageloader class which loads thumbnails in a threaded way when scrolling through lists. This same class was used in the Passie voor Horeca apps. They all resulted in UIImages being loaded very slowly.<br />
In the end I decided to rewrite the class from scratch.</p>
<p>Another issue with the Passie voor Horeca apps, was the major change in the MPMoviePlayerController, in iOS4 this class has been deprecated and was replaced by the MPMoviePlayerViewController class in iOS4. Hence some detection on the running OS version on iPhones is now in place, < 3.2 gets the old videoplayer, 3.2 (iPad) and higher gets the video player.</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/07/21/passie-voor-horeca-lite-en-kookjij-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KookJij 1.3 released</title>
		<link>http://devblog.wm-innovations.com/2010/06/14/kookjij-1-3-released/</link>
		<comments>http://devblog.wm-innovations.com/2010/06/14/kookjij-1-3-released/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 10:18:11 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Various]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=139</guid>
		<description><![CDATA[This weekend KookJij v 1.3 got accepted in the App store.
Updates in this version:
A shake function: ShakeJij, this option will detect a shake gesture from the iPhone and display a bunch of random recipes based on the category selected
A twitter post option: At the top of every recipe there&#8217;s a new button allowing to post [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend KookJij v 1.3 got accepted in the App store.</p>
<p>Updates in this version:</p>
<li>A shake function: ShakeJij, this option will detect a shake gesture from the iPhone and display a bunch of random recipes based on the category selected</li>
<li>A twitter post option: At the top of every recipe there&#8217;s a new button allowing to post the name+url to the recipe directly to twitter.</li>
<li>Better and smoother loading of the images in the UITableViewCell, should be a bit faster and have a nicer look since images now have a fade-in effect.</li>
<p>
<center><a href="http://www.kookjij.nl/iphone/app"><img src="http://devblog.wm-innovations.com/images/kookjij-13.png" alt="KookJij v1.3" border="0"/></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/06/14/kookjij-1-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New apps released: Passie voor Horeca, Passie voor Horeca LITE</title>
		<link>http://devblog.wm-innovations.com/2010/05/22/new-apps-released-passie-voor-horeca-passie-voor-horeca-lite/</link>
		<comments>http://devblog.wm-innovations.com/2010/05/22/new-apps-released-passie-voor-horeca-passie-voor-horeca-lite/#comments</comments>
		<pubDate>Sat, 22 May 2010 01:56:59 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[distribution]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=127</guid>
		<description><![CDATA[Two apps I&#8217;ve been working on for the last 4 months have been released today in the app store: Passie voor Horeca and Passie voor Horeca LITE. I submitted them last monday so that&#8217;s 5 days until Apple approved it, that&#8217;s pretty fast if you ask me 

This app features the custom swipe on a [...]]]></description>
			<content:encoded><![CDATA[<p>Two apps I&#8217;ve been working on for the last 4 months have been released today in the app store: <a href="http://itunes.apple.com/nl/app/passie-voor-horeca/id373083151?mt=8" target="_blank">Passie voor Horeca</a> and <a href="http://itunes.apple.com/nl/app/passie-voor-horeca-lite/id373177302?mt=8">Passie voor Horeca LITE</a>. I submitted them last monday so that&#8217;s 5 days until Apple approved it, that&#8217;s pretty fast if you ask me <img src='http://devblog.wm-innovations.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<br />
This app features the <a href="http://devblog.wm-innovations.com/2010/03/30/custom-swipe-uitableviewcell/">custom swipe on a UITableViewCell</a> so you can get a feeling on how it works live.</p>
<p><center><img src="/images/horeca-populair.png" alt="Passie voor Horeca Populair"></center></p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/05/22/new-apps-released-passie-voor-horeca-passie-voor-horeca-lite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I need a new Mac&#8230;</title>
		<link>http://devblog.wm-innovations.com/2010/05/12/i-need-a-new-mac/</link>
		<comments>http://devblog.wm-innovations.com/2010/05/12/i-need-a-new-mac/#comments</comments>
		<pubDate>Wed, 12 May 2010 20:54:17 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Various]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=121</guid>
		<description><![CDATA[Specifically one that can handle more then 4GB of RAM..
Don&#8217;t get me wrong, I have a nice setup here, with a 24&#8243; iMac, a 2nd 24&#8243; screen, and a Tritton See2 xtreme USB video adapter for a 3rd 21&#8243; screen.. (to the devs of this device: Update your damn drivers to be Snow leopard 10.6.3 [...]]]></description>
			<content:encoded><![CDATA[<p>Specifically one that can handle more then 4GB of RAM..</p>
<p>Don&#8217;t get me wrong, I have a nice setup here, with a 24&#8243; iMac, a 2nd 24&#8243; screen, and a Tritton See2 xtreme USB video adapter for a 3rd 21&#8243; screen.. (to the devs of this device: Update your damn drivers to be Snow leopard 10.6.3 compatible and support 1920&#215;1200 resolution for gods sake, I bought this thing because it had OSX support)</p>
<p>But with 2 Firefox windows open (each having about 12 tabs open), Xcode, the iPhone simulator, Mozilla thunderbird, sometimes Photoshop to review the work my designer&#8217;s cooked up for my apps AND Parallels for Paint Shop Pro 6 (hey I&#8217;m a programmer, not a designer.., it&#8217;s what I learned to work with back in my Windows years <img src='http://devblog.wm-innovations.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ), 4GB seriously isn&#8217;t enough!</p>
<p>If I leave my iMac running for a few days, I put it in sleep mode inbetween, the memory usage becomes quite high. After a week or so it starts some serious swapping. I just had to reboot because I was swapping 1.8GB to disk, you have any idea how slow your Mac becomes when it does that ? When you look at funny YouTube video&#8217;s of cats jumping in boxes, it stutters and hiccups madly. If my poor iMac could moan under the stress, it most certainly would!</p>
<p>So either I need one of these semi-new 27&#8243; widescreen iMacs that support up to 8GB of RAM, or I need (want?) a spiffy Mac Pro that also handles more then 2 screens properly..</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/05/12/i-need-a-new-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding a &#8216;Load more&#8217; cell in your UITableView</title>
		<link>http://devblog.wm-innovations.com/2010/04/22/adding-a-load-more-cell-in-uitableview/</link>
		<comments>http://devblog.wm-innovations.com/2010/04/22/adding-a-load-more-cell-in-uitableview/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 00:13:29 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Various]]></category>
		<category><![CDATA[UITableView]]></category>
		<category><![CDATA[UITableViewCell]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=115</guid>
		<description><![CDATA[For a project I&#8217;m currently working on, I needed to show a &#8216;Load more&#8217; cell when there were >25 results, this is not a basic 1-2-3 on how to fill tablecells with data, so below code is assuming you already have that and it&#8217;s left out
In my code I will fetch a maximum of 25 [...]]]></description>
			<content:encoded><![CDATA[<p>For a project I&#8217;m currently working on, I needed to show a &#8216;Load more&#8217; cell when there were >25 results, this is not a basic 1-2-3 on how to fill tablecells with data, so below code is assuming you already have that and it&#8217;s left out</p>
<p>In my code I will fetch a maximum of 25 results (which can be less) and stick this into an array. If the array count is 25, we have to add an extra cell, to do this we increase the count by one:</p>
<div class="dean_ch" style="white-space: wrap;">- <span class="br0">&#40;</span>NSInteger<span class="br0">&#41;</span>tableView:<span class="br0">&#40;</span>UITableView *<span class="br0">&#41;</span>tableView numberOfRowsInSection:<span class="br0">&#40;</span>NSInteger<span class="br0">&#41;</span>section <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; NSLog<span class="br0">&#40;</span>@<span class="st0">&quot;Setting numberOfRowsInSection to %i&quot;</span>,<span class="br0">&#91;</span>self.<span class="me1">localJsonArray</span> count<span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="br0">&#91;</span>jsonArray count<span class="br0">&#93;</span> &lt; <span class="nu0">25</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="br0">&#91;</span>self.<span class="me1">localJsonArray</span> count<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="br0">&#91;</span>self.<span class="me1">localJsonArray</span> count<span class="br0">&#93;</span> + <span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>&nbsp; &nbsp; &nbsp; &nbsp;<br />
<span class="br0">&#125;</span></div>
<p>Next we populate the tablecells, we fill it with data from the index, and we look if we&#8217;re still working with data or are at the +1 we defined above:</p>
<div class="dean_ch" style="white-space: wrap;">- <span class="br0">&#40;</span>UITableViewCell *<span class="br0">&#41;</span>tableView:<span class="br0">&#40;</span>UITableView *<span class="br0">&#41;</span>tableView cellForRowAtIndexPath:<span class="br0">&#40;</span>NSIndexPath *<span class="br0">&#41;</span>indexPath <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">static</span> NSString *CellIdentifier = @<span class="st0">&quot;Cell&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ImageCell *cell = <span class="br0">&#40;</span>ImageCell *<span class="br0">&#41;</span><span class="br0">&#91;</span>tableView dequeueReusableCellWithIdentifier:CellIdentifier<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>indexPath.<span class="me1">row</span> != <span class="br0">&#91;</span>localJsonArray count<span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// As long as we haven&#8217;t reached the +1 yet in the count, we populate the cell like normal</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>cell == nil<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cell = <span class="br0">&#91;</span><span class="br0">&#91;</span><span class="br0">&#91;</span>ImageCell alloc<span class="br0">&#93;</span> initWithFrame:CGRectZero reuseIdentifier:CellIdentifier<span class="br0">&#93;</span> autorelease<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NSDictionary *itemAtIndex = <span class="br0">&#40;</span>NSDictionary *<span class="br0">&#41;</span><span class="br0">&#91;</span>self.<span class="me1">localJsonArray</span> objectAtIndex:indexPath.<span class="me1">row</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>cell setData:itemAtIndex<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="co1">// Ok, all done for filling the normal cells, next we probaply reach the +1 index, which doesn&#8217;t contain anything yet</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="br0">&#91;</span>jsonArray count<span class="br0">&#93;</span> == <span class="nu0">25</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// Only call this if the array count is 25</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>indexPath.<span class="me1">row</span> == <span class="br0">&#91;</span>localJsonArray count<span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// Here we check if we reached the end of the index, so the +1 row </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>cell == nil<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cell = <span class="br0">&#91;</span><span class="br0">&#91;</span><span class="br0">&#91;</span>ImageCell alloc<span class="br0">&#93;</span> initWithFrame:CGRectZero reuseIdentifier:CellIdentifier<span class="br0">&#93;</span> autorelease<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Reset previous content of the cell, I have these defined in a UITableCell subclass, change them where needed</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cell.<span class="me1">cellBackground</span>.<span class="me1">image</span> = nil;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cell.<span class="me1">titleLabel</span>.<span class="me1">text</span> = nil;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Here we create the &#8216;Load more&#8217; cell</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loadMore =<span class="br0">&#91;</span><span class="br0">&#91;</span>UILabel alloc<span class="br0">&#93;</span>initWithFrame: CGRectMake<span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">0</span>,<span class="nu0">362</span>,<span class="nu0">73</span><span class="br0">&#41;</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loadMore.<span class="me1">textColor</span> = <span class="br0">&#91;</span>UIColor blackColor<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loadMore.<span class="me1">highlightedTextColor</span> = <span class="br0">&#91;</span>UIColor darkGrayColor<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loadMore.<span class="me1">backgroundColor</span> = <span class="br0">&#91;</span>UIColor clearColor<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loadMore.<span class="me1">font</span>=<span class="br0">&#91;</span>UIFont fontWithName:@<span class="st0">&quot;Verdana&quot;</span> size:<span class="nu0">20</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loadMore.<span class="me1">textAlignment</span>=UITextAlignmentCenter;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loadMore.<span class="me1">font</span>=<span class="br0">&#91;</span>UIFont boldSystemFontOfSize:<span class="nu0">20</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loadMore.<span class="me1">text</span>=@<span class="st0">&quot;Load More..&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>cell addSubview:loadMore<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> cell;<br />
<span class="br0">&#125;</span></div>
<p>And voila, cell #26 is the &#8216;Load more&#8217; cell, next we start detecting if it&#8217;s that cell that&#8217;s being selected:</p>
<div class="dean_ch" style="white-space: wrap;">- <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>tableView:<span class="br0">&#40;</span>UITableView *<span class="br0">&#41;</span>tableView didSelectRowAtIndexPath:<span class="br0">&#40;</span>NSIndexPath *<span class="br0">&#41;</span>indexPath <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="br0">&#91;</span>jsonArray count<span class="br0">&#93;</span> == <span class="nu0">25</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// &nbsp;Only call the function if we have 25 results in the array</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>indexPath.<span class="me1">row</span> == <span class="br0">&#91;</span>localJsonArray count<span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NSLog<span class="br0">&#40;</span>@<span class="st0">&quot;Load More requested&quot;</span><span class="br0">&#41;</span>; <span class="co1">// Add a function here to add more data to your array and reload the content</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NSLog<span class="br0">&#40;</span>@<span class="st0">&quot;Normal cell selected&quot;</span><span class="br0">&#41;</span>; <span class="co1">// Add here your normal didSelectRowAtIndexPath code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NSLog<span class="br0">&#40;</span>@<span class="st0">&quot;Normal cell selected with &lt; 25 results&quot;</span><span class="br0">&#41;</span>; <span class="co1">// &nbsp;Add here your normal didSelectRowAtIndexPath code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;</div>
<p>Note that I&#8217;m working with 2 arrays here, jsonArray and localJsonArray, the jsonArray is what I fill with new results, i.e. 1-25 26-50, the localJsonArray is what&#8217;s being filled more and more, so on every &#8216;Load More&#8217; selection, the localJsonArray will grow with +25 if there&#8217;s >= 25 items to load.</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/04/22/adding-a-load-more-cell-in-uitableview/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Setting global variables</title>
		<link>http://devblog.wm-innovations.com/2010/04/12/setting-global-variables/</link>
		<comments>http://devblog.wm-innovations.com/2010/04/12/setting-global-variables/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 17:54:45 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Code tips]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=107</guid>
		<description><![CDATA[In general try to avoid to set too many global variables, instead use local class variables instead to keep things as less complicated as possible.
But sometimes it can come in handy to set variables in your app that you can address from all your classes.
The easiest way to do this, is to use your AppDelegate [...]]]></description>
			<content:encoded><![CDATA[<p>In general try to avoid to set too many global variables, instead use local class variables instead to keep things as less complicated as possible.<br />
But sometimes it can come in handy to set variables in your app that you can address from all your classes.</p>
<p>The easiest way to do this, is to use your AppDelegate class for this. You can just include your AppDelegate where needed and address the functions and variables that are in there.</p>
<p>First, define the variables in the AppDelegate&#8217;s .h and .m files:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co2">#import &lt;UIKit/UIKit.h&gt;</span></p>
<p>@interface My_ApplicationAppDelegate : NSObject &lt;UIApplicationDelegate, UITabBarControllerDelegate&gt; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; UIWindow *window;<br />
&nbsp; &nbsp; NSInteger *myGlobalInteger;<br />
&nbsp;<span class="br0">&#125;</span><br />
@property <span class="br0">&#40;</span>nonatomic, assign<span class="br0">&#41;</span> NSInteger *myGlobalInteger;</div>
<p></p>
<div class="dean_ch" style="white-space: wrap;"><span class="co2">#import &quot;My_ApplicationAppDelegate.h&quot;</span><br />
@implementation My_ApplicationAppDelegate<br />
@synthesize window,myGlobalInteger;</div>
<p>To access these global variables from and to your AppDelegate class, first include your AppDelegate in the .m file of the class where you need it.
<div class="dean_ch" style="white-space: wrap;"><span class="co2">#import &quot;My_ApplicationAppDelegate.h&quot;</span></div>
<p>And then define the following in the function where you need to access the variable:</p>
<div class="dean_ch" style="white-space: wrap;">- <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>myFunction <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; My_ApplicationAppDelegate *appDelegate = <span class="br0">&#40;</span>My_ApplicationAppDelegate *<span class="br0">&#41;</span><span class="br0">&#91;</span><span class="br0">&#91;</span>UIApplication sharedApplication<span class="br0">&#93;</span> delegate<span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; appDelegate.<span class="me1">myGlobalInteger</span> = <span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; NSLog<span class="br0">&#40;</span>@<span class="st0">&quot;The integer value is %i&quot;</span>,myGlobalInteger<span class="br0">&#41;</span>;<br />
&nbsp;<span class="br0">&#125;</span></div>
<p>And voila, you can access the <b>myGlobalInteger</b> value from everywhere where you allocate the My_ApplicationAppDelegate like shown above.</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/04/12/setting-global-variables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Formatting a proper datestamp in a NSString</title>
		<link>http://devblog.wm-innovations.com/2010/04/06/formatting-a-r-datestamp-nsstring/</link>
		<comments>http://devblog.wm-innovations.com/2010/04/06/formatting-a-r-datestamp-nsstring/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 09:57:36 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Code tips]]></category>
		<category><![CDATA[NSDate]]></category>
		<category><![CDATA[NSDateFormatter]]></category>
		<category><![CDATA[NSLocale]]></category>
		<category><![CDATA[NSString]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://devblog.wm-innovations.com/?p=93</guid>
		<description><![CDATA[Formatting a proper date string can be a bit tedious, I&#8217;ve tried to work with the time function available in C, but that didn&#8217;t work out very well due dates not getting converted properly to my locale (Dutch in my case).
After fiddeling quite a bit, it turned out that combining NSDateFormatter with NSLocale and NSDate [...]]]></description>
			<content:encoded><![CDATA[<p>Formatting a proper date string can be a bit tedious, I&#8217;ve tried to work with the time function available in C, but that didn&#8217;t work out very well due dates not getting converted properly to my locale (Dutch in my case).</p>
<p>After fiddeling quite a bit, it turned out that combining <b>NSDateFormatter</b> with <b>NSLocale</b> and <b>NSDate</b> would work the magic I needed for displaying a proper date in a UITableView.</p>
<div class="dean_ch" style="white-space: wrap;">
NSDateFormatter *setDateLocale = <span class="br0">&#91;</span><span class="br0">&#91;</span>NSDateFormatter alloc<span class="br0">&#93;</span> init<span class="br0">&#93;</span>;<br />
NSLocale *nl_NL = <span class="br0">&#91;</span><span class="br0">&#91;</span>NSLocale alloc<span class="br0">&#93;</span> initWithLocaleIdentifier:@<span class="st0">&quot;nl_NL&quot;</span><span class="br0">&#93;</span>;<br />
<span class="br0">&#91;</span>setDateLocale setDateFormat:@<span class="st0">&quot;EEE, d MMM yyy&quot;</span><span class="br0">&#93;</span>;<br />
<span class="br0">&#91;</span>setDateLocale setLocale:nl_NL<span class="br0">&#93;</span>;<br />
NSDate *now = <span class="br0">&#91;</span><span class="br0">&#91;</span>NSDate alloc<span class="br0">&#93;</span> init<span class="br0">&#93;</span>;<br />
NSString *FormattedYMD = <span class="br0">&#91;</span>setDateLocale stringFromDate:now<span class="br0">&#93;</span>;<br />
<span class="br0">&#91;</span>nl_NL release<span class="br0">&#93;</span>;<br />
<span class="br0">&#91;</span>setDateLocale release<span class="br0">&#93;</span>;<br />
<span class="br0">&#91;</span>now release<span class="br0">&#93;</span>;</div>
<p>And voila, <i>FormattedYMD</i> now holds the current datestamp formatted as: <b>ma, 6 apr 2010</b></p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.wm-innovations.com/2010/04/06/formatting-a-r-datestamp-nsstring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

