<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Swift Archives - Richard Warrender</title>
	<atom:link href="https://richardwarrender.com/category/programming/swift/feed/" rel="self" type="application/rss+xml" />
	<link>https://richardwarrender.com/category/programming/swift/</link>
	<description>Creative Thinking, Clear Engineering</description>
	<lastBuildDate>Thu, 19 Feb 2026 20:06:12 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.9</generator>
<site xmlns="com-wordpress:feed-additions:1">219281189</site>	<item>
		<title>Use AI to Build or Be Built by AI</title>
		<link>https://richardwarrender.com/2026/02/use-ai-to-build-or-be-built-by-ai/</link>
					<comments>https://richardwarrender.com/2026/02/use-ai-to-build-or-be-built-by-ai/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Thu, 19 Feb 2026 19:57:42 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[Music]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=22375</guid>

					<description><![CDATA[I’ve noticed there are two kinds of people using AI. You’ve got to work out which one you are as it will make big differences to your life in the long term. A couple of months ago I found myself standing on a stage, blinded by lights. I plugged in my new Takamine guitar and [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2026/02/use-ai-to-build-or-be-built-by-ai/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">22375</post-id>	</item>
		<item>
		<title>Seven Years later: What I Learned from Building an AI Chatbot &#8211; Part 1</title>
		<link>https://richardwarrender.com/2024/07/building-ai-chatbot-learnings-part-1/</link>
					<comments>https://richardwarrender.com/2024/07/building-ai-chatbot-learnings-part-1/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Thu, 04 Jul 2024 17:24:38 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[Natural Language Processing]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=21335</guid>

					<description><![CDATA[Seven&#160;years ago, I embarked on an ambitious attempt to build a rudimentary rule-based AI chatbot. Frustrated by the limitations of Apple’s Siri and motivated by exciting updates to Apple’s Natural Language Processing APIs, I dreamed of building something that could understand complex queries, construct mental models of objects, and seamlessly interact with users using just [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2024/07/building-ai-chatbot-learnings-part-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">21335</post-id>	</item>
		<item>
		<title>Beautifully-formatted Times and Numbers</title>
		<link>https://richardwarrender.com/2015/06/beautifully-formatted-times-and-numbers/</link>
					<comments>https://richardwarrender.com/2015/06/beautifully-formatted-times-and-numbers/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 16 Jun 2015 19:22:21 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[CoreText]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[uikit]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=838</guid>

					<description><![CDATA[Not all font instances are created equally! In iOS text is mostly displayed using proportional fonts, meaning each character width is trimmed and varies depending on each character. This makes the text easier to read and feel more natural and you&#8217;ll notice this on characters such as &#8216;i&#8217; which will often be the thinnest character [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2015/06/beautifully-formatted-times-and-numbers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">838</post-id>	</item>
		<item>
		<title>Core Animation stops animation on app relaunch</title>
		<link>https://richardwarrender.com/2011/09/core-animation-stops-ani-on-app-relaunch/</link>
					<comments>https://richardwarrender.com/2011/09/core-animation-stops-ani-on-app-relaunch/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Mon, 19 Sep 2011 12:31:44 +0000</pubDate>
				<category><![CDATA[Core Animation]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[Core Animaton]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[multitasking]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=385</guid>

					<description><![CDATA[On one of my projects I discovered a bug in a never-ending animation I had set up. Whenever the app was suspended (such as when you multitask and open another app), on relaunching the app the animation was frozen. After some investigating, I discovered that with Core Animation you need to set a flag on [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2011/09/core-animation-stops-ani-on-app-relaunch/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">385</post-id>	</item>
		<item>
		<title>Core Data Objects in Wrong Sections</title>
		<link>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/</link>
					<comments>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Mon, 18 Oct 2010 17:55:49 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[key-paths]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sorting]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=213</guid>

					<description><![CDATA[NSFetchedResultsController is a really handy class. Use one of the default Core Data templates in Xcode and you&#8217;ll very quickly have a nice list of managed objects in a table view.&#160;With a few more lines of code you can get the NSFetchedResultsController to group your objects by sections. You do this by specifying a key-path [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">213</post-id>	</item>
		<item>
		<title>Custom fonts on iPad and iPhone</title>
		<link>https://richardwarrender.com/2010/08/custom-fonts-on-ipad-and-iphone/</link>
					<comments>https://richardwarrender.com/2010/08/custom-fonts-on-ipad-and-iphone/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Wed, 18 Aug 2010 20:48:54 +0000</pubDate>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[uikit]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=147</guid>

					<description><![CDATA[Just incase you didn&#8217;t realise, with iOS 3.2 (iPad) and above you can load in custom fonts and use them with a standard UIFont object. There are a few catches&#8230;&#160;The font must be in the following format: &#8211; OpenType Format (OTF) TrueType Format (TTF) Once you&#8217;ve dragged your chosen font file into an Xcode project, [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2010/08/custom-fonts-on-ipad-and-iphone/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">147</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using Disk
Database Caching 26/61 queries in 0.021 seconds using Memcached

Served from: richardwarrender.com @ 2026-05-01 01:18:17 by W3 Total Cache
-->