<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>IOS on Stay Frosty</title><link>https://frosty.blog/tags/ios/</link><description>Recent content in IOS on Stay Frosty</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><copyright>© James Frost</copyright><lastBuildDate>Sun, 28 Jul 2019 08:06:19 +0000</lastBuildDate><atom:link href="https://frosty.blog/tags/ios/index.xml" rel="self" type="application/rss+xml"/><item><title>Hacking with Swift: Live!</title><link>https://frosty.blog/2019/07/28/hacking-with-swift-live/</link><pubDate>Sun, 28 Jul 2019 08:06:19 +0000</pubDate><guid>https://frosty.blog/2019/07/28/hacking-with-swift-live/</guid><description>&lt;p&gt;A couple of weeks ago, I attended the first ever &lt;a href="https://www.hackingwithswift.com/live"&gt;Hacking with Swift: Live!&lt;/a&gt; conference in Bath, England. Helpfully, Bath is less than an hour away from where I live so it seemed like a great opportunity to attend a conference while still getting to see my family. And it was fantastic!&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://www.hackingwithswift.com/uploads/hws-live.jpg" alt="" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;If you&amp;rsquo;re not familiar with &lt;a href="Https://www.hackingwithswift.com"&gt;Hacking with Swift&lt;/a&gt;, it&amp;rsquo;s a website run by &lt;a href="https://twitter.com/twostraws"&gt;Paul Hudson&lt;/a&gt;. Paul is a one-man tutorial &lt;em&gt;machine&lt;/em&gt;. I have no idea how he produces so much content. He&amp;rsquo;s written 15 books on Swift and Apple&amp;rsquo;s platforms, and his website contains a &lt;em&gt;ton&lt;/em&gt; of free articles, tutorials, and videos all about Swift. His SwiftUI content has been really helpful, and again I don&amp;rsquo;t know how he created so much of it so soon after WWDC.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A couple of weeks ago, I attended the first ever <a href="https://www.hackingwithswift.com/live">Hacking with Swift: Live!</a> conference in Bath, England. Helpfully, Bath is less than an hour away from where I live so it seemed like a great opportunity to attend a conference while still getting to see my family. And it was fantastic!</p>
<figure>
  <img src="https://www.hackingwithswift.com/uploads/hws-live.jpg" alt="" loading="lazy">
</figure>
<p>If you&rsquo;re not familiar with <a href="Https://www.hackingwithswift.com">Hacking with Swift</a>, it&rsquo;s a website run by <a href="https://twitter.com/twostraws">Paul Hudson</a>. Paul is a one-man tutorial <em>machine</em>. I have no idea how he produces so much content. He&rsquo;s written 15 books on Swift and Apple&rsquo;s platforms, and his website contains a <em>ton</em> of free articles, tutorials, and videos all about Swift. His SwiftUI content has been really helpful, and again I don&rsquo;t know how he created so much of it so soon after WWDC.</p>
<p>Hacking with Swift: Live was Paul&rsquo;s first attempt at running this conference and I think it was a huge success. The venue was modern, clean, and bright, the wifi worked excellently, and the food was really good. There were around 200 attendees which felt like just the right number to me. The format of the event was a little different than other conferences I&rsquo;ve attended before.</p>
<h3 id="day-1">Day 1</h3>
<p><strong>Day 1</strong> was quite standard conference fare, with 8 talks from some fantastic speakers: Cory Benfield (Apple), Kelly Hutchinson, Kilo Loco, Ellen Shapiro, Sally Shepard, Daniel Steinberg, John Sundell, and James Thomson. I particularly enjoyed:</p>
<ul>
<li>Cory&rsquo;s explanation of an easy place to get caught out in terms of performance with Swift&rsquo;s copy-on-write behaviour.</li>
<li>Ellen&rsquo;s talk about the Swift package manager, and using Swift scripts and tools to improve your development life.</li>
<li>Daniel&rsquo;s talk, which cleverly walked through a SwiftUI example by calling out which Swift Evolution proposals were responsible for which pieces of syntax, and explained how they worked.</li>
<li>James&rsquo;s history of easter eggs in Apple&rsquo;s software.</li>
</ul>
<p>But they were all great! The videos are all available on YouTube, and you can find links in <a href="https://www.hackingwithswift.com/articles/197/hacking-with-swift-live-2019-raises-30-000-for-charity">this post on hackingwithswift.com</a>.</p>
<h3 id="day-2">Day 2</h3>
<p><strong>Day 2</strong> was one big workshop. Paul literally <em>wrote a book</em> just for the conference, with 3 large example apps covering most of the big iOS 13 features. We then spent the day following along on our laptops as he led us through each tutorial. It was great to get a chunk of dedicated time working through a real example using the new features.</p>
<div class="gallery">
<figure>
  <a href="/images/2019/07/img_5053.jpeg"><img src="/images/2019/07/img_5053-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/07/img_5054.jpeg"><img src="/images/2019/07/img_5054-1600.jpeg" alt="" loading="lazy"></a>
</figure>
</div>
<p>I particularly enjoyed the morning, which was all SwiftUI. I have to say I have been somewhat skeptical about SwiftUI up until this point (these kids and their new-fangled technologies, what&rsquo;s wrong with the way we do it now? grumble mumble), but using it for a couple of hours&hellip; <strong>wow</strong> is it quick and convenient to build a UI and preview it.</p>
<figure>
  <a href="/images/2019/07/simulator-screen-shot-iphone-xca80-2019-07-10-at-17.18.42.png"><img src="/images/2019/07/simulator-screen-shot-iphone-xca80-2019-07-10-at-17.18.42-1600.png" alt="" loading="lazy"></a>
  <figcaption><p>The SwiftUI demo app we built</p></figcaption>
</figure>
<p>The other standout new pieces of API were diffable data sources (they clean up so much code!) and compositional collection view layouts.</p>
<h3 id="a-good-cause">A good cause</h3>
<p>All of the proceeds from Hacking with Swift: Live went to charity. The conference supported <a href="https://www.specialeffect.org.uk">Special Effect</a>, a charity that &ldquo;puts fun and inclusion back into the lives of people with physical disabilities by helping them to play video games&rdquo;. It seemed like a great cause, and the conference was able to donate $30,000!</p>
<h3 id="summary">Summary</h3>
<p>Paul ended the conference by talking about &rsquo;the bigger picture&rsquo;. How code brought us all together, but it&rsquo;s not the most important thing in any of our lives, and how we should think about the difference we can all make in the wider world. He also said how proud he was to bring everybody together to his home town, and brought his family onstage to say they were his reason for doing everything he does. I may have cried a little 😅.</p>
<p>I really enjoyed the event and felt like it could&rsquo;ve easily been a few days longer (although just two days was quite nice as it limited time away from home). I&rsquo;m keen to go back next year if they hold it again!</p>
]]></content:encoded></item><item><title>Week Links – 2019/01/20</title><link>https://frosty.blog/2019/01/20/week-links-2019-01-20/</link><pubDate>Sun, 20 Jan 2019 21:42:29 +0000</pubDate><guid>https://frosty.blog/2019/01/20/week-links-2019-01-20/</guid><description>&lt;ul&gt;
&lt;li&gt;I got a lot of value from Cal Newport&amp;rsquo;s last book, &lt;a href="https://www.amazon.co.uk/dp/B013UWFM52/ref=dp-kindle-redirect?_encoding=UTF8&amp;amp;btkr=1"&gt;Deep Work&lt;/a&gt;, so I&amp;rsquo;m looking forward to his new one, out at the beginning of February: &lt;a href="https://www.amazon.co.uk/Digital-Minimalism-Living-Better-Technology/dp/0241341132"&gt;Digital Minimalism&lt;/a&gt;. Cal was recently on the podcast Hurry Slowly, discussing &lt;a href="https://hurryslowly.co/cal-newport/"&gt;Using Technology with Intention&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/s/notes-on-changing-your-life/how-to-develop-better-habits-in-2019-143e1e21ecbc"&gt;How to Develop Better Habits in 2019&lt;/a&gt;: Some good practical tips from Ryan Holiday for building habits this year.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thefocuscourse.com/a-weekly-review-for-your-goals/"&gt;A Weekly Review For Your Goals&lt;/a&gt;: Review your goals weekly to see your progress and push your plans forward.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tombartel.me/blog/exhibit-leadership-as-individual-contributor/"&gt;How to Exhibit Leadership as an Individual Contributor&lt;/a&gt;: &amp;ldquo;Leadership is not tied to a position. Leadership is a mindset.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;I just started using &lt;a href="https://ulysses.app"&gt;Ulysses&lt;/a&gt; this week to organise my writing and notes, and it&amp;rsquo;s fantastic. A simple hierarchical folder structure (with custom icons!) is a game changer. I found &lt;a href="https://thesweetsetup.com/shawn-blanc-ulysses-setup/"&gt;Shawn Blanc&amp;rsquo;s guide to his Ulysses setup&lt;/a&gt; had some really helpful ideas for how to use it.&lt;/li&gt;
&lt;li&gt;The developers behind &lt;a href="https://codea.io/"&gt;Codea&lt;/a&gt;, the awesome coding app for iPad, recently blogged about the little details behind their app&amp;rsquo;s dropdown menu interface. It&amp;rsquo;s a fantastic piece of UI, and so much thought went into it. &lt;a href="https://codea.io/blog/the-ios-menu/"&gt;Part 1&lt;/a&gt;, &lt;a href="https://codea.io/blog/detailing-the-ios-menu/"&gt;Part 2&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Sean McCabe posted this fun little video on Twitter as a reminder not to overthink things, and just get your story out there: &lt;a href="https://twitter.com/seanwes/status/1084532127662788610"&gt;Stop Overthinking. Start Doing&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description><content:encoded><![CDATA[<ul>
<li>I got a lot of value from Cal Newport&rsquo;s last book, <a href="https://www.amazon.co.uk/dp/B013UWFM52/ref=dp-kindle-redirect?_encoding=UTF8&amp;btkr=1">Deep Work</a>, so I&rsquo;m looking forward to his new one, out at the beginning of February: <a href="https://www.amazon.co.uk/Digital-Minimalism-Living-Better-Technology/dp/0241341132">Digital Minimalism</a>. Cal was recently on the podcast Hurry Slowly, discussing <a href="https://hurryslowly.co/cal-newport/">Using Technology with Intention</a>.</li>
<li><a href="https://medium.com/s/notes-on-changing-your-life/how-to-develop-better-habits-in-2019-143e1e21ecbc">How to Develop Better Habits in 2019</a>: Some good practical tips from Ryan Holiday for building habits this year.</li>
<li><a href="https://thefocuscourse.com/a-weekly-review-for-your-goals/">A Weekly Review For Your Goals</a>: Review your goals weekly to see your progress and push your plans forward.</li>
<li><a href="https://www.tombartel.me/blog/exhibit-leadership-as-individual-contributor/">How to Exhibit Leadership as an Individual Contributor</a>: &ldquo;Leadership is not tied to a position. Leadership is a mindset.&rdquo;</li>
<li>I just started using <a href="https://ulysses.app">Ulysses</a> this week to organise my writing and notes, and it&rsquo;s fantastic. A simple hierarchical folder structure (with custom icons!) is a game changer. I found <a href="https://thesweetsetup.com/shawn-blanc-ulysses-setup/">Shawn Blanc&rsquo;s guide to his Ulysses setup</a> had some really helpful ideas for how to use it.</li>
<li>The developers behind <a href="https://codea.io/">Codea</a>, the awesome coding app for iPad, recently blogged about the little details behind their app&rsquo;s dropdown menu interface. It&rsquo;s a fantastic piece of UI, and so much thought went into it. <a href="https://codea.io/blog/the-ios-menu/">Part 1</a>, <a href="https://codea.io/blog/detailing-the-ios-menu/">Part 2</a>.</li>
<li>Sean McCabe posted this fun little video on Twitter as a reminder not to overthink things, and just get your story out there: <a href="https://twitter.com/seanwes/status/1084532127662788610">Stop Overthinking. Start Doing</a>.</li>
</ul>
]]></content:encoded></item><item><title>iPad Pro (2018) First Impressions</title><link>https://frosty.blog/2018/11/09/ipad-pro-2018-first-impressions/</link><pubDate>Fri, 09 Nov 2018 14:53:53 +0000</pubDate><guid>https://frosty.blog/2018/11/09/ipad-pro-2018-first-impressions/</guid><description>&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2018/11/img_1726.jpg"&gt;&lt;img src="https://frosty.blog/images/2018/11/img_1726-1600.jpg" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;I picked up a new 11&amp;quot; iPad Pro this week, to replace my original 9.7&amp;quot; Pro. I’ve been using it for a couple of days now, so here are some of my initial thoughts in no particular order:&lt;/p&gt;
&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2018/11/img_1724.jpg"&gt;&lt;img src="https://frosty.blog/images/2018/11/img_1724-1600.jpg" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;The screen feels much bigger (and it is!). iOS and its apps have more room to breathe. Although it would’ve been nice if it were a tiny bit wider to keep closer to the original 4:3 aspect ratio.&lt;/li&gt;
&lt;li&gt;This thing is a fingerprint magnet! Seems to show up way more fingerprints than my original Pro.&lt;/li&gt;
&lt;li&gt;I’ve not had a device with ProMotion before, and wow – animations feel super slick. Scrolls like butter.&lt;/li&gt;
&lt;li&gt;I’m still getting used to how to hold the iPad now that it has thinner bezels. In one hand, you end up with your thumb resting on the edge between the front and side of the device, as the bezel isn’t wide enough to place your thumb there without touching the screen.&lt;/li&gt;
&lt;li&gt;The majority of the third party apps I’ve tried so far haven’t been updated for the new screen size, which means black bars at the top and bottom of the screen. In landscape, this makes the new aspect ratio (no longer 4:3 on the 11&amp;quot;) even more obvious, and I’m still getting used to it.&lt;/li&gt;
&lt;li&gt;Face ID works very well, but can be a little awkward in practice due to the camera being situated along just one edge of a device that can be (and is) used in any orientation. Now that the home button is gone, it’s not always immediately obvious where the front camera is when you pick up the iPad – particularly if you’re using it in a dimly lit room. For example, if I’m reading in bed I’ll often hold the iPad in portrait orientation and rest the bottom of it on the bed covers. But half the time it turns out that the iPad is ‘upside down’, so the Face ID cameras get blocked by the bedding. The iPhones X don’t have this issue because the notch helps you know which way is up.&lt;/li&gt;
&lt;li&gt;This is an incredible, futuristic, &lt;strong&gt;fast&lt;/strong&gt; device. It feels fantastic to hold, looks amazing, and is a joy to use. I’d love to use it for all my computing needs. Xcode for iPad, please!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And a few thoughts on the new &lt;a href="https://www.apple.com/uk/smart-keyboard/"&gt;Smart Keyboard Folio&lt;/a&gt;:&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <a href="/images/2018/11/img_1726.jpg"><img src="/images/2018/11/img_1726-1600.jpg" alt="" loading="lazy"></a>
</figure>
<p>I picked up a new 11&quot; iPad Pro this week, to replace my original 9.7&quot; Pro. I’ve been using it for a couple of days now, so here are some of my initial thoughts in no particular order:</p>
<figure>
  <a href="/images/2018/11/img_1724.jpg"><img src="/images/2018/11/img_1724-1600.jpg" alt="" loading="lazy"></a>
</figure>
<ul>
<li>The screen feels much bigger (and it is!). iOS and its apps have more room to breathe. Although it would’ve been nice if it were a tiny bit wider to keep closer to the original 4:3 aspect ratio.</li>
<li>This thing is a fingerprint magnet! Seems to show up way more fingerprints than my original Pro.</li>
<li>I’ve not had a device with ProMotion before, and wow – animations feel super slick. Scrolls like butter.</li>
<li>I’m still getting used to how to hold the iPad now that it has thinner bezels. In one hand, you end up with your thumb resting on the edge between the front and side of the device, as the bezel isn’t wide enough to place your thumb there without touching the screen.</li>
<li>The majority of the third party apps I’ve tried so far haven’t been updated for the new screen size, which means black bars at the top and bottom of the screen. In landscape, this makes the new aspect ratio (no longer 4:3 on the 11&quot;) even more obvious, and I’m still getting used to it.</li>
<li>Face ID works very well, but can be a little awkward in practice due to the camera being situated along just one edge of a device that can be (and is) used in any orientation. Now that the home button is gone, it’s not always immediately obvious where the front camera is when you pick up the iPad – particularly if you’re using it in a dimly lit room. For example, if I’m reading in bed I’ll often hold the iPad in portrait orientation and rest the bottom of it on the bed covers. But half the time it turns out that the iPad is ‘upside down’, so the Face ID cameras get blocked by the bedding. The iPhones X don’t have this issue because the notch helps you know which way is up.</li>
<li>This is an incredible, futuristic, <strong>fast</strong> device. It feels fantastic to hold, looks amazing, and is a joy to use. I’d love to use it for all my computing needs. Xcode for iPad, please!</li>
</ul>
<p>And a few thoughts on the new <a href="https://www.apple.com/uk/smart-keyboard/">Smart Keyboard Folio</a>:</p>
<ul>
<li>The new Smart Keyboard Folio is much sturdier than the old Smart Keyboard Cover, and is certainly much more stable when typing on your lap. The iPad can also now be positioned in at a shallower viewing angle, which is much nicer than the very steep angle of the old cover.</li>
<li>I was worried that it’d be difficult to put the iPad into / take the iPad out of the folio, but it’s actually very simple thanks to the magical array of magnets present in the new Pro.</li>
<li>The magnets are so strong, it’s now more difficult to collapse the iPad when it’s propped up in the folio. I haven’t yet worked out the right places to grab it without either touching on the screen or mashing on the keyboard.</li>
<li>Because the new folio wraps around the front <em>and</em> back of the iPad it does increase the bulk, and it’s even heavier than the Smart Keyboard, which already added quite a lot of weight to the device. Laid flat, the new Pro in the folio is about the same thickness as the thickest part of the old keyboard cover:</li>
</ul>
<figure>
  <a href="/images/2018/11/img_1723.jpg"><img src="/images/2018/11/img_1723-1600.jpg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2018/11/img_1722.jpg"><img src="/images/2018/11/img_1722-1600.jpg" alt="" loading="lazy"></a>
</figure>
]]></content:encoded></item><item><title>Inspecting iOS State Restoration Data</title><link>https://frosty.blog/2017/05/10/inspecting-ios-state-restoration-data/</link><pubDate>Wed, 10 May 2017 20:49:34 +0000</pubDate><guid>https://frosty.blog/2017/05/10/inspecting-ios-state-restoration-data/</guid><description>&lt;p&gt;State preservation and restoration allows iOS apps to save state when they&amp;rsquo;re sent into the background, and restore that state if the app is killed and then relaunched. If you&amp;rsquo;ve ever implemented state restoration yourself, you may have run into a case where it&amp;rsquo;d be helpful to see exactly what state iOS was storing.&lt;/p&gt;
&lt;p&gt;It turns out that Apple actually provides a tool to help you do just this, but it&amp;rsquo;s kind of hidden away and documentation is relatively sparse. Fortunately, it&amp;rsquo;s pretty easy to use. When you run it, it&amp;rsquo;ll output a structured plist showing all of your encoded objects, their restoration identifiers, and restoration class information. Here&amp;rsquo;s a step by step guide.&lt;/p&gt;</description><content:encoded><![CDATA[<p>State preservation and restoration allows iOS apps to save state when they&rsquo;re sent into the background, and restore that state if the app is killed and then relaunched. If you&rsquo;ve ever implemented state restoration yourself, you may have run into a case where it&rsquo;d be helpful to see exactly what state iOS was storing.</p>
<p>It turns out that Apple actually provides a tool to help you do just this, but it&rsquo;s kind of hidden away and documentation is relatively sparse. Fortunately, it&rsquo;s pretty easy to use. When you run it, it&rsquo;ll output a structured plist showing all of your encoded objects, their restoration identifiers, and restoration class information. Here&rsquo;s a step by step guide.</p>
<h3 id="1-download-the-tool">1. Download the tool</h3>
<p>Head over to the Apple &ldquo;<a href="https://developer.apple.com/download/more/">Downloads for Apple Developers</a>&rdquo; site and expand the <strong>restorationArchiveTool for iOS</strong> download. You&rsquo;ll want the <code>restorationArchiveTool.dmg</code> file right at the bottom of the list on the right.</p>
<p>Open the dmg, and drag the <code>restorationArchiveTool</code> binary out to somewhere you can easily access it. I placed mine in my <code>~/bin</code> directory.</p>
<h3 id="2-find-your-apps-library-directory">2. Find your app&rsquo;s Library directory</h3>
<p>Next, you need to know the location of your app&rsquo;s <code>Library</code> directory in the simulator. This is where the restoration data gets saved, which you&rsquo;ll inspect with the archive tool. The easiest way to find this is to add a line to your app delegate&rsquo;s <code>application:didFinishLaunchingWithOptions:</code> (or via a breakpoint). Something like this should do the trick:</p>
<p><strong>Objective-C:</strong></p>





<pre tabindex="0"><code>NSLog(@&#34;Library: %@&#34;, [[[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] firstObject] path]);</code></pre><p><strong>Swift:</strong></p>





<pre tabindex="0"><code>print(&#34;Library: \(FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!.path)&#34;)</code></pre><p>The path should get logged out to the console when your app launches. It&rsquo;ll be something like this:</p>





<pre tabindex="0"><code>/Users/bob/Library/Developer/CoreSimulator/Devices/1FF2D964-C615-499E-B1D0-8A7DF7343AE5/data/Containers/Data/Application/D6FE3A2C-9553-4270-8262-A94376EF4E5B/Library</code></pre><h3 id="3-get-some-data">3. Get some data</h3>
<p>This part&rsquo;s simple. Launch the app in the simulator, navigate to the part of the app you&rsquo;re interested in, send the app into the background, and stop the app in Xcode. If you open up the library folder you found in the last step, you&rsquo;ll see a folder named <strong>Saved Application State</strong>. Within that, you&rsquo;ll find a <code>data.data</code> file.</p>
<figure>
  <img src="/images/2017/05/Screen-Shot-2017-05-10-at-21.14.38.png" alt="Screen Shot 2017-05-10 at 21.14.38" loading="lazy">
</figure>
<h3 id="4-run-the-tool">4. Run the tool</h3>
<p>Now you need to run the archive tool and point it at the <code>data.data</code> file you just found. In Terminal, enter the following command, but switch out the location of your <code>restorationArchiveTool</code> binary and your app&rsquo;s <code>data.data</code> as required:</p>





<pre tabindex="0"><code>~/bin/restorationArchiveTool --plist --structured -o output.plist /path/to/your/data/file/data.data</code></pre><p>And you&rsquo;re done! You can then open up the generated plist in Xcode. Amongst other things, you&rsquo;ll see a list of top level objects, keyed by their restoration identifiers. You should notice that the restoration identifiers form a path based upon your view controller hierarchy. You can expand any object to see any extra data it&rsquo;s encoded.</p>
<figure>
  <a href="/images/2017/05/Screen-Shot-2017-05-10-at-20.44.26.png"><img src="/images/2017/05/Screen-Shot-2017-05-10-at-20.44.26-1600.png" alt="Screen Shot 2017-05-10 at 20.44.26" loading="lazy"></a>
</figure>
<p>At the bottom of the file, you&rsquo;ll find a list of restoration classes used by each of the encoded objects.</p>
<figure>
  <a href="/images/2017/05/Screen-Shot-2017-05-10-at-20.44.45.png"><img src="/images/2017/05/Screen-Shot-2017-05-10-at-20.44.45-1600.png" alt="Screen Shot 2017-05-10 at 20.44.45" loading="lazy"></a>
</figure>
<p>If you&rsquo;re having some problems with state restoration, then at the very least being able to see this information can give you some hints about whether your issue is with encoding or decoding. Good luck!</p>
]]></content:encoded></item><item><title>WWDC 2016 Developer Tidbits</title><link>https://frosty.blog/2016/06/14/wwdc-2016-developer-tidbits/</link><pubDate>Tue, 14 Jun 2016 14:06:55 +0000</pubDate><guid>https://frosty.blog/2016/06/14/wwdc-2016-developer-tidbits/</guid><description>&lt;p&gt;There were some nice announcements from Apple at WWDC yesterday, including a revamped lock screen and notifications for iOS, SiriKit, and a lot of iMessage integration. Whilst scouring the newly-released developer documentation I&amp;rsquo;ve come across a lot of interesting tidbits that aren&amp;rsquo;t headline features on their own, so I thought I&amp;rsquo;d collect them here in case they&amp;rsquo;re of use to anyone else. In no particular order:&lt;/p&gt;
&lt;h3 id="xcode"&gt;Xcode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Some nice improvements to Interface Builder. You can now edit your UI at any zoom level (FINALLY)! The UI for customizing layouts for different device traits has also been revamped, and looks really good.&lt;/li&gt;
&lt;li&gt;Image and colour literals are now supported in Swift code, including code completion for images that&amp;rsquo;re in your asset catalog. Simply start typing either &lt;code&gt;color&lt;/code&gt; or &lt;code&gt;UIImage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;There&amp;rsquo;s a new monospaced code font in Xcode: &lt;code&gt;SF Mono&lt;/code&gt; that seems to match up with the WWDC promo material this year.&lt;/li&gt;
&lt;li&gt;The simulator features a special version of the Messages app which allows you to see both halves of a conversation between two users. Very useful for testing all the iMessage newness.&lt;/li&gt;
&lt;li&gt;Xcode 8 supports both Swift 2.3 and Swift 3. If you choose Swift 2.3 for a project, there&amp;rsquo;s a new build setting that gets set to Yes: &amp;ldquo;Use Legacy Swift Language Version&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;The new memory debugger looks incredible. You can visualize the current object graph, and it can help identify memory leaks / retain cycles.&lt;/li&gt;
&lt;li&gt;Xcode now highlights the active line when editing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="foundation"&gt;Foundation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;There&amp;rsquo;s now &lt;a href="https://developer.apple.com/reference/foundation/nsdateinterval"&gt;&lt;code&gt;NSDateInterval&lt;/code&gt;&lt;/a&gt; for counting the duration of a time interval, checking whether a date exists in a range, and comparing intervals.&lt;/li&gt;
&lt;li&gt;FINALLY an &lt;a href="https://developer.apple.com/reference/foundation/nsiso8601dateformatter"&gt;ISO 8601 date formatter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NSPersonNameComponentsFormatter&lt;/code&gt; has a new &lt;a href="https://developer.apple.com/reference/foundation/nspersonnamecomponentsformatter/1642979-personnamecomponentsfromstring"&gt;&lt;code&gt;personNameComponentsFromString:&lt;/code&gt;&lt;/a&gt; method that can parse out the individual components of a person&amp;rsquo;s name.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="notifications"&gt;Notifications&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://developer.apple.com/reference/usernotificationsui"&gt;User Notifications UI&lt;/a&gt; framework lets you customize the appearance of local and remote notifications when they appear on the user’s device.&lt;/li&gt;
&lt;li&gt;You can also intercept push notifications (through &lt;a href="https://developer.apple.com/reference/usernotifications"&gt;&lt;code&gt;UserNotifications.framework&lt;/code&gt;&lt;/a&gt;) and handle them before they alert the user. For example, you could download a video and &lt;em&gt;then&lt;/em&gt; tell the user it&amp;rsquo;s ready.&lt;/li&gt;
&lt;li&gt;Rich notifications are currently only optimized for 3D Touch, and they&amp;rsquo;ll be providing access to functionality for users of other iPhone models / iPad at a later date.&lt;/li&gt;
&lt;li&gt;A lot of the existing remote and local notification methods on &lt;code&gt;UIApplication&lt;/code&gt; (as well as &lt;code&gt;UILocalNotification&lt;/code&gt; itself) are now deprecated in favour of the &lt;a href="https://developer.apple.com/reference/usernotifications"&gt;&lt;code&gt;UserNotifications&lt;/code&gt;&lt;/a&gt; framework.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="uikit"&gt;UIKit&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;There&amp;rsquo;s a load of &lt;a href="https://developer.apple.com/reference/uikit/uiviewanimating"&gt;new animation APIs&lt;/a&gt;: &amp;ldquo;New object-based, fully interactive and interruptible animation support that lets you retain control of your animations and link them with gesture-based interactions.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;The refresh control is now supported in all scroll views and scrollview subclasses thanks to &lt;a href="https://developer.apple.com/reference/uikit/uirefreshcontrolhosting"&gt;&lt;code&gt;UIRefreshControlHosting&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Collectionviews and tableviews support prefetching of cells to improve scrolling (&lt;a href="https://developer.apple.com/reference/uikit/uicollectionviewdatasourceprefetching"&gt;&lt;code&gt;UICollectionViewDataSourcePrefetching&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://developer.apple.com/reference/uikit/uitableview/1771763-prefetchdatasource"&gt;&lt;code&gt;UITableViewDataSourcePrefetching&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;It looks like you can now provide your own previewing UI for 3D Touch: &lt;a href="https://developer.apple.com/reference/uikit/uipreviewinteraction"&gt;&lt;code&gt;UIPreviewInteraction&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;There are new UIVisualEffectView &lt;a href="https://developer.apple.com/reference/uikit/uiblureffectstyle"&gt;blur types&lt;/a&gt;: prominent and regular.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="core-data"&gt;Core Data&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/reference/coredata/nspersistentcontainer"&gt;&lt;code&gt;NSPersistentContainer&lt;/code&gt;&lt;/a&gt; looks like it might replace the simple &lt;code&gt;CoreDataStack&lt;/code&gt; class I&amp;rsquo;d add to most new projects. It encapsulates the whole core data stack, and has convenience methods for creating new background contexts and performing background tasks.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/reference/coredata/nsmanagedobject"&gt;&lt;code&gt;NSManagedObject&lt;/code&gt;&lt;/a&gt; gets a few new methods – &lt;code&gt;init(context:)&lt;/code&gt;, &lt;code&gt;fetchRequest()&lt;/code&gt;, &lt;code&gt;entity()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Xcode should be able to automatically generate classes for Core Data entities, but I&amp;rsquo;ve been unable to get this to work so far.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NSManagedObjectContext&lt;/code&gt; now has an &lt;a href="https://developer.apple.com/reference/coredata/nsmanagedobjectcontext/1845237-automaticallymergeschangesfrompa"&gt;&lt;code&gt;automaticallyMergesChangesFromParent&lt;/code&gt;&lt;/a&gt; property to do the &lt;code&gt;NSManagedObjectContextDidSaveNotification&lt;/code&gt; observation and merging automatically.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="swift-playgrounds"&gt;Swift Playgrounds&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;On iPad, &lt;code&gt;XCPlayground&lt;/code&gt; is replaced by &lt;code&gt;PlaygroundSupport&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can record videos of coding sessions right inside the app (in the Share menu).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="watchos"&gt;watchOS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Glances have gone completely in watchOS 3. Your app should now display and update glanceable information when the user has it in their Dock.&lt;/li&gt;
&lt;li&gt;If the user has your complication on their watch face, your app will be kept in a ready-to-launch state.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/reference/watchkit/wkcrownsequencer"&gt;&lt;code&gt;WKCrownSequencer&lt;/code&gt;&lt;/a&gt; lets you directly access information about the crown&amp;rsquo;s state – whether it&amp;rsquo;s rotating, how fast, and when it&amp;rsquo;s stopped.&lt;/li&gt;
&lt;li&gt;SpriteKit and SceneKit on the watch is cray-cray. The State of the Union contains a cool demo where a notification on the watch contains an animated 3D SceneKit scene.&lt;/li&gt;
&lt;li&gt;You can now access information about the watch&amp;rsquo;s orientation, crown position, wrist location, etc in &lt;a href="https://developer.apple.com/reference/watchkit/wkinterfacedevice"&gt;&lt;code&gt;WKInterfaceDevice&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If you&amp;rsquo;re using a watch app, whenever you lower and raise your wrist, you&amp;rsquo;ll get taken right back into the app, for up to 8 minutes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sirikit"&gt;SiriKit&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;SiriKit is limited to only certain domains:&lt;/li&gt;
&lt;li&gt;Audio or video calling&lt;/li&gt;
&lt;li&gt;Messaging&lt;/li&gt;
&lt;li&gt;Sending or receiving payments&lt;/li&gt;
&lt;li&gt;Searching photos&lt;/li&gt;
&lt;li&gt;Booking a ride&lt;/li&gt;
&lt;li&gt;Managing workouts&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="misc"&gt;Misc&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If you&amp;rsquo;ve indexed content for your app with Core Spotlight, you can now search it programmatically in-app using &lt;a href="https://developer.apple.com/reference/corespotlight/cssearchquery"&gt;&lt;code&gt;CSSearchQuery&lt;/code&gt;&lt;/a&gt;. A user can also continue a Spotlight search &lt;a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewIniOS/Articles/iOS10.html#//apple_ref/doc/uid/TP40017084-DontLinkElementID_6"&gt;inside your app&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Speech recognition is now possible, through the &lt;a href="https://developer.apple.com/reference/speech"&gt;Speech framework&lt;/a&gt; and &lt;code&gt;SFSpeechRecognizer&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can set an &lt;a href="https://developer.apple.com/reference/uikit/uipasteboard"&gt;expiry or exclusions for pasteboard data&lt;/a&gt; for the new universal clipboard.&lt;/li&gt;
&lt;li&gt;iOS 10 drops support for the iPhone 4S, iPad Mini, iPads 2 and 3, and the 5th generation iPod touch.&lt;/li&gt;
&lt;/ul&gt;</description><content:encoded><![CDATA[<p>There were some nice announcements from Apple at WWDC yesterday, including a revamped lock screen and notifications for iOS, SiriKit, and a lot of iMessage integration. Whilst scouring the newly-released developer documentation I&rsquo;ve come across a lot of interesting tidbits that aren&rsquo;t headline features on their own, so I thought I&rsquo;d collect them here in case they&rsquo;re of use to anyone else. In no particular order:</p>
<h3 id="xcode">Xcode</h3>
<ul>
<li>Some nice improvements to Interface Builder. You can now edit your UI at any zoom level (FINALLY)! The UI for customizing layouts for different device traits has also been revamped, and looks really good.</li>
<li>Image and colour literals are now supported in Swift code, including code completion for images that&rsquo;re in your asset catalog. Simply start typing either <code>color</code> or <code>UIImage</code>.</li>
<li>There&rsquo;s a new monospaced code font in Xcode: <code>SF Mono</code> that seems to match up with the WWDC promo material this year.</li>
<li>The simulator features a special version of the Messages app which allows you to see both halves of a conversation between two users. Very useful for testing all the iMessage newness.</li>
<li>Xcode 8 supports both Swift 2.3 and Swift 3. If you choose Swift 2.3 for a project, there&rsquo;s a new build setting that gets set to Yes: &ldquo;Use Legacy Swift Language Version&rdquo;.</li>
<li>The new memory debugger looks incredible. You can visualize the current object graph, and it can help identify memory leaks / retain cycles.</li>
<li>Xcode now highlights the active line when editing.</li>
</ul>
<h3 id="foundation">Foundation</h3>
<ul>
<li>There&rsquo;s now <a href="https://developer.apple.com/reference/foundation/nsdateinterval"><code>NSDateInterval</code></a> for counting the duration of a time interval, checking whether a date exists in a range, and comparing intervals.</li>
<li>FINALLY an <a href="https://developer.apple.com/reference/foundation/nsiso8601dateformatter">ISO 8601 date formatter</a>.</li>
<li><code>NSPersonNameComponentsFormatter</code> has a new <a href="https://developer.apple.com/reference/foundation/nspersonnamecomponentsformatter/1642979-personnamecomponentsfromstring"><code>personNameComponentsFromString:</code></a> method that can parse out the individual components of a person&rsquo;s name.</li>
</ul>
<h3 id="notifications">Notifications</h3>
<ul>
<li>The <a href="https://developer.apple.com/reference/usernotificationsui">User Notifications UI</a> framework lets you customize the appearance of local and remote notifications when they appear on the user’s device.</li>
<li>You can also intercept push notifications (through <a href="https://developer.apple.com/reference/usernotifications"><code>UserNotifications.framework</code></a>) and handle them before they alert the user. For example, you could download a video and <em>then</em> tell the user it&rsquo;s ready.</li>
<li>Rich notifications are currently only optimized for 3D Touch, and they&rsquo;ll be providing access to functionality for users of other iPhone models / iPad at a later date.</li>
<li>A lot of the existing remote and local notification methods on <code>UIApplication</code> (as well as <code>UILocalNotification</code> itself) are now deprecated in favour of the <a href="https://developer.apple.com/reference/usernotifications"><code>UserNotifications</code></a> framework.</li>
</ul>
<h3 id="uikit">UIKit</h3>
<ul>
<li>There&rsquo;s a load of <a href="https://developer.apple.com/reference/uikit/uiviewanimating">new animation APIs</a>: &ldquo;New object-based, fully interactive and interruptible animation support that lets you retain control of your animations and link them with gesture-based interactions.&rdquo;</li>
<li>The refresh control is now supported in all scroll views and scrollview subclasses thanks to <a href="https://developer.apple.com/reference/uikit/uirefreshcontrolhosting"><code>UIRefreshControlHosting</code></a>.</li>
<li>Collectionviews and tableviews support prefetching of cells to improve scrolling (<a href="https://developer.apple.com/reference/uikit/uicollectionviewdatasourceprefetching"><code>UICollectionViewDataSourcePrefetching</code></a> and <a href="https://developer.apple.com/reference/uikit/uitableview/1771763-prefetchdatasource"><code>UITableViewDataSourcePrefetching</code></a>)</li>
<li>It looks like you can now provide your own previewing UI for 3D Touch: <a href="https://developer.apple.com/reference/uikit/uipreviewinteraction"><code>UIPreviewInteraction</code></a>.</li>
<li>There are new UIVisualEffectView <a href="https://developer.apple.com/reference/uikit/uiblureffectstyle">blur types</a>: prominent and regular.</li>
</ul>
<h3 id="core-data">Core Data</h3>
<ul>
<li><a href="https://developer.apple.com/reference/coredata/nspersistentcontainer"><code>NSPersistentContainer</code></a> looks like it might replace the simple <code>CoreDataStack</code> class I&rsquo;d add to most new projects. It encapsulates the whole core data stack, and has convenience methods for creating new background contexts and performing background tasks.</li>
<li><a href="https://developer.apple.com/reference/coredata/nsmanagedobject"><code>NSManagedObject</code></a> gets a few new methods – <code>init(context:)</code>, <code>fetchRequest()</code>, <code>entity()</code>.</li>
<li>Xcode should be able to automatically generate classes for Core Data entities, but I&rsquo;ve been unable to get this to work so far.</li>
<li><code>NSManagedObjectContext</code> now has an <a href="https://developer.apple.com/reference/coredata/nsmanagedobjectcontext/1845237-automaticallymergeschangesfrompa"><code>automaticallyMergesChangesFromParent</code></a> property to do the <code>NSManagedObjectContextDidSaveNotification</code> observation and merging automatically.</li>
</ul>
<h3 id="swift-playgrounds">Swift Playgrounds</h3>
<ul>
<li>On iPad, <code>XCPlayground</code> is replaced by <code>PlaygroundSupport</code>.</li>
<li>You can record videos of coding sessions right inside the app (in the Share menu).</li>
</ul>
<h3 id="watchos">watchOS</h3>
<ul>
<li>Glances have gone completely in watchOS 3. Your app should now display and update glanceable information when the user has it in their Dock.</li>
<li>If the user has your complication on their watch face, your app will be kept in a ready-to-launch state.</li>
<li><a href="https://developer.apple.com/reference/watchkit/wkcrownsequencer"><code>WKCrownSequencer</code></a> lets you directly access information about the crown&rsquo;s state – whether it&rsquo;s rotating, how fast, and when it&rsquo;s stopped.</li>
<li>SpriteKit and SceneKit on the watch is cray-cray. The State of the Union contains a cool demo where a notification on the watch contains an animated 3D SceneKit scene.</li>
<li>You can now access information about the watch&rsquo;s orientation, crown position, wrist location, etc in <a href="https://developer.apple.com/reference/watchkit/wkinterfacedevice"><code>WKInterfaceDevice</code></a></li>
<li>If you&rsquo;re using a watch app, whenever you lower and raise your wrist, you&rsquo;ll get taken right back into the app, for up to 8 minutes.</li>
</ul>
<h3 id="sirikit">SiriKit</h3>
<ul>
<li>SiriKit is limited to only certain domains:</li>
<li>Audio or video calling</li>
<li>Messaging</li>
<li>Sending or receiving payments</li>
<li>Searching photos</li>
<li>Booking a ride</li>
<li>Managing workouts</li>
</ul>
<h3 id="misc">Misc</h3>
<ul>
<li>If you&rsquo;ve indexed content for your app with Core Spotlight, you can now search it programmatically in-app using <a href="https://developer.apple.com/reference/corespotlight/cssearchquery"><code>CSSearchQuery</code></a>. A user can also continue a Spotlight search <a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewIniOS/Articles/iOS10.html#//apple_ref/doc/uid/TP40017084-DontLinkElementID_6">inside your app</a>.</li>
<li>Speech recognition is now possible, through the <a href="https://developer.apple.com/reference/speech">Speech framework</a> and <code>SFSpeechRecognizer</code>.</li>
<li>You can set an <a href="https://developer.apple.com/reference/uikit/uipasteboard">expiry or exclusions for pasteboard data</a> for the new universal clipboard.</li>
<li>iOS 10 drops support for the iPhone 4S, iPad Mini, iPads 2 and 3, and the 5th generation iPod touch.</li>
</ul>
]]></content:encoded></item><item><title>Calculating App Store Spend</title><link>https://frosty.blog/2014/09/28/calculating-app-store-spend/</link><pubDate>Sun, 28 Sep 2014 21:30:00 +0000</pubDate><guid>https://frosty.blog/2014/09/28/calculating-app-store-spend/</guid><description>&lt;p&gt;I like buying apps. Perhaps it comes from being an app developer myself, but I like to pay for apps that I enjoy and that I get value from. Designing and building an app takes a &lt;em&gt;huge&lt;/em&gt; amount of work, and I hope that paying for an app means that it&amp;rsquo;s more likely to receive updates in the future.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve recently had a couple of conversations with people who have &lt;em&gt;never&lt;/em&gt; paid for an app, which made me curious about just how much I&amp;rsquo;ve spent over the years. Unfortunately Apple provides no easy way to see this information. but they do send out regular receipt emails when you make a purchase. I&amp;rsquo;ve always archived these emails in my Gmail account, so I put together &lt;a href="https://gist.github.com/frosty/b6d1615dab5544fc22b0"&gt;a small script&lt;/a&gt; to parse them and produce some figures. I mentioned it on Twitter and a number of people showed interest in it, so I thought I&amp;rsquo;d reproduce it here.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I like buying apps. Perhaps it comes from being an app developer myself, but I like to pay for apps that I enjoy and that I get value from. Designing and building an app takes a <em>huge</em> amount of work, and I hope that paying for an app means that it&rsquo;s more likely to receive updates in the future.</p>
<p>I&rsquo;ve recently had a couple of conversations with people who have <em>never</em> paid for an app, which made me curious about just how much I&rsquo;ve spent over the years. Unfortunately Apple provides no easy way to see this information. but they do send out regular receipt emails when you make a purchase. I&rsquo;ve always archived these emails in my Gmail account, so I put together <a href="https://gist.github.com/frosty/b6d1615dab5544fc22b0">a small script</a> to parse them and produce some figures. I mentioned it on Twitter and a number of people showed interest in it, so I thought I&rsquo;d reproduce it here.</p>
<p>The steps below outline how <em>I</em> retrieved my own emails and ran the numbers; of course, everybody&rsquo;s setup is different but hopefully you&rsquo;ll be able to adapt them to your needs. I use Gmail as my email provider and OS X as my operating system, so all of the instructions are specific to that setup.</p>
<ol>
<li>First of all, you&rsquo;ll need to tag all of your iTunes receipts with a unique tag. I have a filter set up for the following search, which tags all matching emails with <strong>iTunesReceipts</strong>: <code>from:(itunes store) subject:(your receipt no.*)</code></li>
<li>Next, download all of your iTunes receipts as <code>.eml</code> files. I used <a href="http://gmvault.org">Gmvault</a> to download mine. Grab the tool and extract it. I used the following command to fetch the relevant emails: <code>gmvault sync --type custom --gmail-req &quot;in:iTunesReceipts&quot; your_email_address@gmail.com --no-compression</code> By default, Gmvault will download the emails into a directory named <code>gmvault-db/db</code> in your home directory.</li>
<li>Now<code>cd</code> into the Gmvault <code>db</code> directory. You can then either manually download my parser script from the [Github Gist][gist] and run it, or download and run automatically in a single command:</li>
</ol>
<p>[bash wraplines=&ldquo;true&rdquo;] ruby -e &ldquo;$(curl -fsSL <a href="https://gist.githubusercontent.com/frosty/b6d1615dab5544fc22b0/raw/e4e3b48b032079e188c8d3f246b2609b83995558/parser.rb)%22">https://gist.githubusercontent.com/frosty/b6d1615dab5544fc22b0/raw/e4e3b48b032079e188c8d3f246b2609b83995558/parser.rb)&quot;</a> [/bash]  The script will first ask for the currency symbol your emails will use; it defaults to &lsquo;£&rsquo; if you just press enter. It should then output a count and combined spend for iOS apps and in-app purchases. It&rsquo;ll also create a tab-separated file named <code>Apps.tsv</code>, which will contain a list of all of your purchases. You can open this in a text editor or a spreadsheet app like Numbers if you want to.  Notes  The script could probably be much neater, but I don&rsquo;t work with Ruby very often and I just threw it together in an evening! I make no guarantees that this script catches everything or that it doesn&rsquo;t pick up any false positives. The iTunes receipt format is quite awkward and inconsistent and has changed quite a lot throughout the years. Based on my own receipts, however, this seems to do a pretty good job. If you have a suggestion for ways to improve the script, feel free to fork it on Github!  So how much have I spent on apps? Turns out, it&rsquo;s rather a lot. But when I average my spend out over the life of the App Store, and consider the amount of value and enjoyment I get from the various apps and games I&rsquo;ve bought over the years&hellip; I think it&rsquo;s a pretty good deal.</p>
]]></content:encoded></item><item><title>Ascension: Chronicle of the Godslayer</title><link>https://frosty.blog/2012/01/24/ascension-chronicle-of-the-godslayer/</link><pubDate>Tue, 24 Jan 2012 00:00:00 +0000</pubDate><guid>https://frosty.blog/2012/01/24/ascension-chronicle-of-the-godslayer/</guid><description>&lt;p&gt;&lt;a href="http://www.ascensiongame.com/"&gt;&lt;em&gt;Ascension: Chronicle of the Godslayer&lt;/em&gt;&lt;/a&gt; is a card game that has some similarities to the popular &lt;a href="http://www.wizards.com/Magic/"&gt;&lt;em&gt;Magic: The Gathering&lt;/em&gt;&lt;/a&gt; collectable card game. My first introduction to &lt;em&gt;Ascension&lt;/em&gt; was through its well-received iOS version, which I liked so much that I went straight out and bought a copy of the physical game too&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. This is primarily a review of the iOS version, but both versions play exactly the same and are equally enjoyable.&lt;/p&gt;</description><content:encoded><![CDATA[<p><a href="http://www.ascensiongame.com/"><em>Ascension: Chronicle of the Godslayer</em></a> is a card game that has some similarities to the popular <a href="http://www.wizards.com/Magic/"><em>Magic: The Gathering</em></a> collectable card game. My first introduction to <em>Ascension</em> was through its well-received iOS version, which I liked so much that I went straight out and bought a copy of the physical game too<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. This is primarily a review of the iOS version, but both versions play exactly the same and are equally enjoyable.</p>
<figure>
  <img src="/images/2015/12/2011-01-18-ascension-01.jpg" alt="" loading="lazy">
</figure>
<p><em>Ascension</em> is a deckbuilding game designed by a former <em>Magic</em> Pro Tour champion. I&rsquo;ve played a small amount of <em>Magic</em> in the past but was put off by the amount of pre-game preparation that is necessary and the sheer number of cards that are available (although I realise that it’s exactly these elements that draw many people to the game)<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. I think <em>Ascension</em> struck a chord with me because it&rsquo;s reminiscent of <em>Magic</em> but (in my opinion) improves upon it in a number of ways.</p>
<h3 id="gameplay">Gameplay</h3>
<p>In <em>Ascension</em>, each player starts off with their own deck, containing the exact same 10 cards. Each round of the game sees you drawing a hand of 5 cards from your deck and using them to buy or ’defeat’ other cards from an ever changing selection in the middle of the play area. Defeating a monster gives you honour, buying a card means you get to add it to your deck, to use on a later turn. Each card in your hand gives you ’currency’ in one form or another, or allows you to perform an action such as drawing extra cards. As the game progresses you build up your deck from the same pool of cards as the other players, so nobody is at a disadvantage. Your only obstacles are luck and other players trying to prevent you getting the cards you need.</p>
<p>The game features three main forms of &lsquo;currency&rsquo;:</p>
<ul>
<li><strong>Honour</strong>: the overall goal of the game is to obtain more honour than your fellow players. You can get honour from buying cards and defeating monsters.</li>
<li><strong>Runes</strong>: the currency used to acquire other cards. You can spend runes in order buy cards from the center of the table.</li>
<li><strong>Power</strong>: used to defeat monsters. All monsters have a power value; if you play cards from your hand worth an equal amount of power, you can defeat that monster and earn honour.</li>
</ul>
<p>Those are the basics of the game: draw a hand from your deck, perform actions and spend runes or power to get more cards, earn honour and perhaps hinder other players. Keep going until all of the available honour has been expended, and then count up to see who got the most. There&rsquo;s lots of room for strategy: do you go power-heavy and work on attacking monsters to gain power? Do you just try and buy as many high value cards as you can? Do you go for actions that let you draw more cards and work through your deck faster? The game feels deep but is easy to pick up and play.</p>
<h3 id="the-ios-version">The iOS Version</h3>
<p>Ascension on iOS is universal, so it runs on both iPad and iPhone. I feel that it’s a much more enjoyable experience on the iPad, as the larger screen really gives you more room to play with (quite literally).</p>
<figure>
  <img src="/images/2015/12/2011-01-18-ascension-02.jpg" alt="" loading="lazy">
</figure>
<p>The app is really well made. It&rsquo;s extremely responsive, with smooth animations, fun sound effects, and all the card artwork from the original game. There&rsquo;s a great tutorial to get you up to speed and a complete rulebook if you want to check up on the rules.</p>
<p>Singleplayer works really well, with a couple of AI difficulty levels to choose from, but multiplayer is where Ascension really shines. You can play against up to 3 opponents, either randomly selected or chosen from your Game Center friends. The game very cleverly and seamlessly switches between asynchronous turn-based play (where you&rsquo;re notified when it&rsquo;s your go and you can take as long as you like), to real time updates if two players are both online. There&rsquo;s a small status indicator next to each player&rsquo;s name which tells you if they&rsquo;re offline, idle, or actively participating in your game. If they&rsquo;re online at the same time as you, you can see each card move around the screen as soon as they play it. If they&rsquo;re offline, the game will notify them when you&rsquo;re finished taking your turn. It&rsquo;s <em>very</em> well done. In fact, it&rsquo;s one of the best multiplayer experiences I&rsquo;ve seen on iOS.</p>
<p>All in all, Ascension is a really enjoyable card game. For £2.99, you get a universal app which contains all the cards from the main Ascension game. For an extra £1.99 in-app purchase you can also get the first expansion pack; Return of the Fallen. The iOS version is well worth the asking price, and if you have any interest in board games (or would just like a fun multiplayer game you can sink your teeth into) I&rsquo;d highly recommend you check it out.</p>
<ul>
<li><a href="http://www.ascensiongame.com/">Ascension website</a></li>
<li><a href="http://itunes.apple.com/gb/app/ascension-chronicle-godslayer/id441838733?mt=8">Ascension on iTunes</a></li>
</ul>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><em>Ascension</em> marks the 4th boardgame that I have bought based on the strength of an iOS game. Previously I&rsquo;ve purchased <em>Carcassonne</em>, <em>Forbidden Island</em>, and <em>Ticket to Ride</em>, all of which I&rsquo;ve greatly enjoyed playing.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>I feel that in <em>Magic</em>, an inexperienced player will always be at a big disadvantage when playing against someone who has spent a long time learning the game and crafting a good deck. At the time of writing, over 12,246 <strong>unique</strong> <em>Magic</em> cards have been produced (with 600 - 1000 extra produced each year); not only are players encouraged to spend a small fortune on the game but also to spend a lot of time following the game&rsquo;s updates. You can lose simply because someone else owns better cards than you, and it&rsquo;s a difficult game to break in to.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Codify</title><link>https://frosty.blog/2011/10/19/codify/</link><pubDate>Wed, 19 Oct 2011 23:00:00 +0000</pubDate><guid>https://frosty.blog/2011/10/19/codify/</guid><description>&lt;p&gt;I love the iPad. It&amp;rsquo;s casual, immediate, and more intimate than a laptop ever will be. There are wonderful apps available for most activities you could want to do on an iPad: reading, writing, drawing, listening, watching, playing; the list goes on. Much of the time when I want to perform some task (or just relax), I will now reach for my iPad instead of my laptop if possible. However, until now I have been unable to use the iPad for one of my favourite pasttimes: programming&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I love the iPad. It&rsquo;s casual, immediate, and more intimate than a laptop ever will be. There are wonderful apps available for most activities you could want to do on an iPad: reading, writing, drawing, listening, watching, playing; the list goes on. Much of the time when I want to perform some task (or just relax), I will now reach for my iPad instead of my laptop if possible. However, until now I have been unable to use the iPad for one of my favourite pasttimes: programming<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>Enter <strong>Codify</strong>. Codify is a new iPad app that lets you create simple games, prototypes and simulations directly on an iPad. You write code in the <a href="http://www.lua.org/">Lua</a> language using a fantastic code editor (more on that later), with an API that&rsquo;s very similar to <a href="http://www.processing.org">Processing</a>. You can then run that code straight away; play your game, experiment with your prototype, tweak your simulation. It&rsquo;s fast, easy, impressive, and <em>fun</em>.</p>
<figure>
  <a href="http://www.flickr.com/photos/jamesfrost/sets/72157627800191607/"><img src="/images/2015/12/2011-10-20-codify-01.jpg" alt="Codify project selection screen" loading="lazy"></a>
</figure>
<h3 id="running-and-debugging">Running and debugging</h3>
<p>When running your game, you can specify parameters (for example, a character&rsquo;s speed or size) which show up as sliders in a debugging pane on the left hand side of the screen. You can then tweak those parameters <em>as you play</em>, and observe in real time the effect they have on the game. It&rsquo;s very neat. You can also watch variables and print information out to a console. Games themselves run very smoothly (unless you write them badly, of course!) and look great. You can pause, resume, or reset your game state whenever you like. You can also flip back to your code with just one tap.</p>
<figure>
  <a href="http://www.flickr.com/photos/jamesfrost/sets/72157627800191607/"><img src="/images/2015/12/2011-10-20-codify-02.jpg" alt="Running a game in Codify" loading="lazy"></a>
</figure>
<h3 id="help-and-examples">Help and examples</h3>
<p>The app comes with a whole heap of examples, from the basics of using the provided graphics functions to clones of games like Doodle Jump, Snake, and Pong (the latter I wrote myself). The code editor also comes with a nicely presented documentation viewer which provides excellent help on graphics functions, the Lua language itself, parameters, multitouch, sounds, using the iPad&rsquo;s accelerometer, and more.</p>
<p>To see some of the Codify examples in action, check out the following YouTube videos:</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=umpCNWKmlFM">Bit Invader</a></li>
<li><a href="http://www.youtube.com/watch?v=WSWhYxjE-ZY">Lua Jump</a> (Doodle Jump clone)</li>
<li><a href="http://www.youtube.com/watch?v=UaiqkuX5fy8">Dungeon Roller</a></li>
<li><a href="http://www.youtube.com/watch?v=EHqDgEyBF68">Ping</a> (Pong clone)</li>
</ul>
<h3 id="the-code-editor">The code editor</h3>
<p>The code editor has clearly had a <strong>lot</strong> of thought and polish put into it. It has a lot of things you&rsquo;d expect from an editor: syntax highlighting, line numbers, multiple files (with tabs to switch between them), and a function browser. But it also has a slew of features designed to ease the task of programming on a touchscreen device:</p>
<ul>
<li>For methods that take a colour as a parameter (RGBA values, for example <code>(255, 150, 99, 255)</code>), you can simply tap on the parameter and a colour wheel appears in a popover allowing you to choose a colour with touch alone.</li>
<li>You can tap and hold on any number and slide your finger from left to right (or vice versa) to increment / decrement the number without typing.</li>
<li>A row of custom keys above the onscreen keyboard provides shortcuts for common tasks: tabbing, access to documentation, inserting symbols / punctuation, and more.</li>
<li>Codify includes support for displaying sprites (images) and comes bundled with a number of high quality sprite packs from <a href="http://www.lostgarden.com/search/label/free%20game%20graphics">Lost Garden</a>. Similarly to selecting colour parameters, you can tap a sprite parameter and select your sprite from a nice popover without the need for any typing.</li>
</ul>
<figure>
  <a href="http://www.flickr.com/photos/jamesfrost/sets/72157627800191607/"><img src="/images/2015/12/2011-10-20-codify-03.jpg" alt="Selecting a colour in the Codify code editor" loading="lazy"></a>
</figure>
<p>Check out my <a href="http://www.flickr.com/photos/jamesfrost/sets/72157627800191607/">Flickr photo set</a> for a couple more photos showing the Codify interface. I&rsquo;ve also put together a quick <a href="http://www.youtube.com/watch?v=hJ537lFVv1M">YouTube video</a> showing some of its functionality in action (embedded at the bottom of this post).</p>
<p>The <a href="http://www.lua.org/">Lua</a> language was deliberately chosen for Codify because it has a rather &lsquo;wordy&rsquo; syntax, which fits nicely with the iPad&rsquo;s onscreen keyboard. It means less switching to the &lsquo;symbols&rsquo; keyboard, and less frustration for the user. The Lua runtime is also extremely light, which helps keep things snappy.</p>
<h3 id="an-introduction-to-programming---a-brief-aside">An introduction to programming? - a brief aside</h3>
<p>I think that Codify could shine as a tool for teaching programming. I&rsquo;ve long lamented the apparent increase in difficulty for kids (and adults alike, I guess) to get started with programming these days. I began coding on a BBC B in BASIC. Back then, you turned your computer on and you were presented with a flashing prompt, into which you could just start typing your code. Commercial games weren&rsquo;t too advanced, so it was entirely possible you could get at least close to making the sorts of things you played yourself.</p>
<p>These days, where do you start? If you have a Mac or Linux machine, chances are you have something like Ruby or Python built in, so that&rsquo;s fairly easy to get going with. If you&rsquo;re on Windows, you&rsquo;re left to install something yourself. You&rsquo;ll also likely have to install some kind of text editor and work out how to use a command prompt (not a bad thing to do at all, of course, but it&rsquo;s another barrier to entry). And then you&rsquo;ll have to find some kind of games or graphics libraries and learn how those work. And <em>then</em> you might be able to have a go at learning a language and making a simple game. It&rsquo;s a lot to get through and a lot of opportunities for a newcomer to lose their enthusiasm.</p>
<p>We&rsquo;re now finally starting to see some potential solutions emerging on the web. For example, <a href="http://processing.js">Processing.js</a> (a JavaScript port of Processing) and <a href="http://sketchpad.cc">Sketchpad.cc</a> (which lets you just start coding with Processing.js in your browser). Codify is very much like these solutions, but built specifically for iPad and a touch interface. From now on, somebody who wants to get started with simple programming and games may just be able to search the App Store for &lsquo;programming&rsquo;, install Codify, and have a go; perhaps starting off modifying some of the examples and observing the effects their changes have in real time. It may not be as easy to a newcomer as I&rsquo;m imagining, but it sure seems a lot simpler to me than what we&rsquo;ve had in recent years.</p>
<h3 id="wrap-up">Wrap up</h3>
<p>Codify was created by <a href="http://www.twitter.com/twolivesleft">Simeon Nasilowski</a> of <a href="http://twolivesleft.com/">Two Lives Left</a> and will be launching on the App Store on Wednesday 26th October for £5.49 ($7.99), which I think is great value for everything it offers. It&rsquo;s a high quality package that finally lets you code on the iPad, and it does so with style. I highly recommend checking it out if you enjoy programming or think you&rsquo;d like to give it a go. I&rsquo;d be really interested in seeing what you create with it!</p>
<p>I&rsquo;ve also posted a video to YouTube showing some of Codify&rsquo;s features in action:</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/hJ537lFVv1M?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Okay, so there <em>are</em> one or two existing iPad coding apps. However, these a) don&rsquo;t seem to be as well designed, and b) mainly only seem to let you produce text-based console output. Codify is intended for fast graphical prototyping, and seems to be streets ahead of the competition.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Superbrothers: Sword &amp; Sworcery EP</title><link>https://frosty.blog/2011/06/25/superbrothers-sword-sworcery-ep/</link><pubDate>Sat, 25 Jun 2011 23:00:00 +0000</pubDate><guid>https://frosty.blog/2011/06/25/superbrothers-sword-sworcery-ep/</guid><description>&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2011-06-26-logojimwhite.png" alt="" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;Superbrothers: Sword &amp;amp; Sworcery EP is an &lt;em&gt;experience&lt;/em&gt;. It&amp;rsquo;s an audiovisual treat and, in my opinion, a wonderful example of games as art. I don&amp;rsquo;t think it would be too bold to describe S:S&amp;amp;S EP as iOS&amp;rsquo;s &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Shadow_of_the_Colossus"&gt;Shadow of the Colossus&lt;/a&gt;&lt;/em&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2011-06-26-touch.png" alt="" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;S&amp;amp;S EP references elements of geek culture and video games of the past to create a unique experience that still manages to feel comfortably familiar at the same time. You play a lone warrior, out to destroy the Megatome (a book of unimaginable power) along with the ancient evil that haunts the legendary mountain of Mingi Taw. &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Legend_of_Zelda"&gt;The Legend of Zelda&lt;/a&gt;&lt;/em&gt; series and &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Shadow_of_the_Colossus"&gt;Shadow of the Colossus&lt;/a&gt;&lt;/em&gt; stand out as two of the biggest influences, or at least two games against which it is easy to draw parallels. Like &lt;em&gt;Zelda&lt;/em&gt;, S&amp;amp;S: EP&amp;rsquo;s mute lead character&amp;rsquo;s ultimate goal involves collecting three sacred triangles that together form the &amp;lsquo;Trigon Trifecta&amp;rsquo;. Like &lt;em&gt;Colossus&lt;/em&gt;, there are references to mysterious in-game mythology, fights with ancient creatures (leaving the player feeling morally conflicted), and a main character who gets weaker as they continue their quest. The game features beautiful pixel art graphics, and an outstanding original score. It&amp;rsquo;s clear that a lot of love was poured into this game.&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <img src="/images/2015/12/2011-06-26-logojimwhite.png" alt="" loading="lazy">
</figure>
<p>Superbrothers: Sword &amp; Sworcery EP is an <em>experience</em>. It&rsquo;s an audiovisual treat and, in my opinion, a wonderful example of games as art. I don&rsquo;t think it would be too bold to describe S:S&amp;S EP as iOS&rsquo;s <em><a href="http://en.wikipedia.org/wiki/Shadow_of_the_Colossus">Shadow of the Colossus</a></em><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<figure>
  <img src="/images/2015/12/2011-06-26-touch.png" alt="" loading="lazy">
</figure>
<p>S&amp;S EP references elements of geek culture and video games of the past to create a unique experience that still manages to feel comfortably familiar at the same time. You play a lone warrior, out to destroy the Megatome (a book of unimaginable power) along with the ancient evil that haunts the legendary mountain of Mingi Taw. <em><a href="http://en.wikipedia.org/wiki/The_Legend_of_Zelda">The Legend of Zelda</a></em> series and <em><a href="http://en.wikipedia.org/wiki/Shadow_of_the_Colossus">Shadow of the Colossus</a></em> stand out as two of the biggest influences, or at least two games against which it is easy to draw parallels. Like <em>Zelda</em>, S&amp;S: EP&rsquo;s mute lead character&rsquo;s ultimate goal involves collecting three sacred triangles that together form the &lsquo;Trigon Trifecta&rsquo;. Like <em>Colossus</em>, there are references to mysterious in-game mythology, fights with ancient creatures (leaving the player feeling morally conflicted), and a main character who gets weaker as they continue their quest. The game features beautiful pixel art graphics, and an outstanding original score. It&rsquo;s clear that a lot of love was poured into this game.</p>
<p>Speaking of the score: the soundtrack is fantastic, and an integral part of the game. It&rsquo;s available to download from <a href="http://jimguthrie.bandcamp.com/">Bandcamp</a> or <a href="http://itunes.apple.com/gb/album/sword-sworcery-lp-the-ballad/id428028469">iTunes</a> and has even been released on vinyl. It&rsquo;s one of the best game soundtracks I&rsquo;ve ever heard; kind of a mix between folk and chiptunes and lots more besides. You can listen to most of it for free on Bandcamp, so give it a spin. However, I think it sounds all the better once you&rsquo;ve experienced it in-game. Some of the pieces are perfectly written and timed to coincide with sections of the game, and so I think you get something extra out of them once you&rsquo;ve experienced their corresponding visual accompaniments. The game&rsquo;s main antagonist, the Deathless Spectre, evokes an actual feeling of panic whenever it materializes onscreen which I think is in no small part due to the music that coincides its appearance. <em>Sword &amp; Sworcery EP</em> really deserves to be played wearing headphones.</p>
<figure>
  <img src="/images/2015/12/2011-06-26-hiking.png" alt="" loading="lazy">
</figure>
<p>In fact, the whole game deserves your full attention when you play, as you&rsquo;ll get far more out of it. The story unfolds in multiple chapters, like the acts of a play, even down to a triumphant musical cue and the literal closing of curtains when you finish an act. The story&rsquo;s narrator appears at the end of an act to sum up what you&rsquo;ve achieved and what is yet to come. The first act is rather short - something of an introduction to the rest of the game - and the narrator actually tells you to take a break once it&rsquo;s over. It&rsquo;s a nice way to spread the game out over multiple sittings and it frames the story really well. The presentation values are top notch, and whilst it may sound hyperbolic I do think S&amp;S EP really is more of an <em>experience</em> than a traditional game.</p>
<p>As a touchscreen-controlled game designed for iOS devices, S:S&amp;S EP succeeds brilliantly. It doesn&rsquo;t attempt to crowbar &rsquo;traditional&rsquo; controls into somewhere they don&rsquo;t fit (no onscreen d-pads) instead you simply either touch and hold or double-tap wherever you want your character to move. You can also pinch to zoom and pan around the screen. It works wonderfully and feels effortless. The majority of the game takes place in landscape orientation, but for sword fights you must rotate the device into portrait to take out your sword and shield. This reveals two thumb buttons at the bottom of the screen: one for your sword, and one for your shield. It couldn&rsquo;t get much simpler. It&rsquo;s nice to see a developer who understands the strengths and weaknesses of a touch-based control system.</p>
<figure>
  <img src="/images/2015/12/2011-06-26-mountain.png" alt="" loading="lazy">
</figure>
<p>Sword &amp; Sworcery is without a doubt one of the best games on iOS. But more than that, it is one of my favourite games of all time. Unlike a lot of iOS titles, it&rsquo;s not a throwaway arcade experience but an adventure that will stick with you long after you finish playing. It draws you in to its little world through beautiful pixel graphics, a stunning soundtrack, a believable world and characters, and slick presentation throughout. I highly recommend it. It&rsquo;s available now on the iOS App Store as either a <a href="http://itunes.apple.com/gb/app/superbrothers-sword-sworcery/id424912055?mt=8">universal version for iPad &amp; iPhone</a>, or as a slightly cheaper <a href="http://itunes.apple.com/gb/app/superbrothers-sword-sworcery/id431166885?mt=8">iPhone-only version</a>.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Widely regarded as a work of art, and incredible experience, a masterpiece, etc. See <a href="http://www.metacritic.com/game/playstation-2/shadow-of-the-colossus/critic-reviews">Metacritic</a> for reviews.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Helsing's Fire: Quick iPhone Game Review</title><link>https://frosty.blog/2010/09/05/helsings-fire-quick-iphone-game-review/</link><pubDate>Sun, 05 Sep 2010 23:00:00 +0000</pubDate><guid>https://frosty.blog/2010/09/05/helsings-fire-quick-iphone-game-review/</guid><description>&lt;p&gt;&lt;strong&gt;Helsing&amp;rsquo;s Fire&lt;/strong&gt; is a fun, brilliantly presented, innovative puzzle / arcade game for iOS.&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2010-09-06-helsings-fire.png" alt="Helsing's Fire screenshots" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;You play as Van Helsing, on a mission to destroy the foul Count Dracula. To do this, you progress through 90 levels across 3 worlds, all filled with a hordes of monsters. The monsters in each level stand stationary, and are coloured red, blue, or green. To defeat them, you must move your flaming torch, casting rays of light around and between objects scattered across the level. Once your light falls upon the monsters you want to vanquish, you tap one of a selection of coloured potions to match the colour of the monster. This gets tricker as you progress through the game, as you must avoid monsters of a different colour to the potion you&amp;rsquo;re using. Different types of monster also present other challenges: bats fly around the level once you&amp;rsquo;ve attacked them, werewolves turn into innocent maidens who you must avoid with your potions, and ghosts turn invisible in your torch&amp;rsquo;s glare, so you have to remember their locations. The mechanic of casting light and shadows works really well and looks great.&lt;/p&gt;</description><content:encoded><![CDATA[<p><strong>Helsing&rsquo;s Fire</strong> is a fun, brilliantly presented, innovative puzzle / arcade game for iOS.</p>
<figure>
  <img src="/images/2015/12/2010-09-06-helsings-fire.png" alt="Helsing's Fire screenshots" loading="lazy">
</figure>
<p>You play as Van Helsing, on a mission to destroy the foul Count Dracula. To do this, you progress through 90 levels across 3 worlds, all filled with a hordes of monsters. The monsters in each level stand stationary, and are coloured red, blue, or green. To defeat them, you must move your flaming torch, casting rays of light around and between objects scattered across the level. Once your light falls upon the monsters you want to vanquish, you tap one of a selection of coloured potions to match the colour of the monster. This gets tricker as you progress through the game, as you must avoid monsters of a different colour to the potion you&rsquo;re using. Different types of monster also present other challenges: bats fly around the level once you&rsquo;ve attacked them, werewolves turn into innocent maidens who you must avoid with your potions, and ghosts turn invisible in your torch&rsquo;s glare, so you have to remember their locations. The mechanic of casting light and shadows works really well and looks great.</p>
<p>The game is nicely presented, with a good little story, fun characters with humorous dialogue, and catchy gothic tunes to accompany your adventure (I really recommend you play this one with the sound on - or at least the introduction). I especially like the little touches such as the way Van Helsing and his assistant bump fists or high five one another when you finish a level.</p>
<p>The game starts off pretty easy, but there&rsquo;s a Mario-style difficulty curve where new gameplay elements are regularly introduced, spicing things up a bit.</p>
<p>There are 90 levels in the main campaign mode, including some more arcade-style bosses that fly around the screen and require you to keep your torch on the move to avoid their attacks. Each &lsquo;world&rsquo; also has an unlimited, randomly generated survival mode. A recent updated added a new campaign with 30 more levels, some new enemies, and another survival mode arena. I found it to be quite an addictive &lsquo;just one more go&rsquo; pick-up-and-play game.</p>
<p><em>Very</em> good value for 59p - they really should be charging more for this. Highly recommended.</p>
<p><a href="http://itunes.apple.com/gb/app/helsings-fire/id380290526?mt=8">App Store</a> <a href="http://www.ratloop.com/?games/helsings_fire">Developer&rsquo;s website</a></p>
]]></content:encoded></item><item><title>iPhone Games</title><link>https://frosty.blog/2010/06/29/iphone-games/</link><pubDate>Tue, 29 Jun 2010 23:00:00 +0000</pubDate><guid>https://frosty.blog/2010/06/29/iphone-games/</guid><description>&lt;p&gt;I play quite a lot of games on my iPhone. I thought I&amp;rsquo;d write a quick post to highlight some of the games that I&amp;rsquo;ve really enjoyed and I keep coming back to. There&amp;rsquo;s a lot of good stuff out there, but there&amp;rsquo;s also a lot of rubbish to wade through (either games that are just plain bad, or fun for five minutes and then you&amp;rsquo;ll never play it again); so here are the ones that have stood the test of time with me. In alphabetical order:&lt;/p&gt;</description><content:encoded><![CDATA[<p>I play quite a lot of games on my iPhone. I thought I&rsquo;d write a quick post to highlight some of the games that I&rsquo;ve really enjoyed and I keep coming back to. There&rsquo;s a lot of good stuff out there, but there&rsquo;s also a lot of rubbish to wade through (either games that are just plain bad, or fun for five minutes and then you&rsquo;ll never play it again); so here are the ones that have stood the test of time with me.  In alphabetical order:</p>
<h4 id="broken-sword">Broken Sword</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-01.png" alt="Broken Sword" loading="lazy">
</figure>
<p>A classic point-and-click adventure, updated for the iPhone and touch controls. The original came out in 1996, and it&rsquo;s <strong>still</strong> awesome. If you&rsquo;ve never played Broken Sword, I highly recommend it. Fantastic historical-thrillery-mystery storyline, great visuals, good humour, and memorable characters.<br />
<a href="http://itunes.apple.com/us/app/broken-sword-directors-cut/id350353259?mt=8">[iTunes]</a></p>
<h4 id="canabalt">Canabalt</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-02.png" alt="Canabalt" loading="lazy">
</figure>
<p>Canabalt&rsquo;s probably the simplest game on this list. It has one control: tap the screen to jump. Your character runs and jumps along rooftops in some dystopian future that&rsquo;s going all to hell. Nice pixel art, and an awesome soundtrack (headphones recommended). Seems like it&rsquo;ll be a one minute wonder, but it&rsquo;s very much &ldquo;hmm, just <em>one</em> more go&hellip;&rdquo;. There&rsquo;s a flash version on the Canabalt website, so you can try it out there.<br />
<a href="http://itunes.apple.com/app/canabalt/id333180061?mt=8">[iTunes]</a> <a href="http://www.canabalt.com/">[App website]</a></p>
<h4 id="carcassonne">Carcassonne</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-03.png" alt="Carcassonne" loading="lazy">
</figure>
<p>Carcassonne&rsquo;s my newest acquisition and it&rsquo;s so so <strong>SO</strong> well made. Carcassonne is an iOS version a of <a href="http://en.wikipedia.org/wiki/Carcassonne_(board_game)">a board game</a>, and it really feels like an authentic board game. You place tiles to build up countryside (consisting of towns, roads, and fields), and place your &lsquo;meeple&rsquo; on the structures you create to capture them and score points. The Carcassonne website has a nice introductory video explaining how the game works. Lovely graphics, music, and sound effects, and a great tutorial with voiceover introduces you to the game. Also, lots of nice casual multiplayer<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and replayability. I&rsquo;m jwfrosty, so if you grab the game, come play against me online!</p>
<p>Carcasonne is £2.99, but I can&rsquo;t recommend it highly enough. The price will be going up when the app gains iPad support, too (to $9.99 in US money), so if you&rsquo;re interested buy now!<br />
<a href="http://itunes.apple.com/app/carcassonne/id375295479?mt=8">[iTunes]</a> <a href="http://carcassonneapp.com/">[App website]</a></p>
<h4 id="flight-control">Flight Control</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-04.png" alt="Flight Control" loading="lazy">
</figure>
<p>The quintessential iPhone game. One of the first, and still one of the best examples of touch screen gaming. I think there&rsquo;s some sort of law that states that every iPhone owner must have a copy of Flight Control. Chances are you&rsquo;ve probably seen or played this already but if you haven&rsquo;t, you should.<br />
<a href="http://itunes.apple.com/app/flight-control/id306220440?mt=8">[iTunes]</a> <a href="http://firemint.com/?page_id=565">[App website]</a></p>
<h4 id="fruit-ninja">Fruit Ninja</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-05.png" alt="Fruit Ninja" loading="lazy">
</figure>
<p>A recent acquisition, but pretty addictive. Fruit get thrown in the air, you swipe them with your finger to cut them in half. Avoid the the bombs. Bombs are bad. That&rsquo;s all you need to know. Nice graphics, although not updated to high res versions for the retina display yet. Another &ldquo;just one more go&hellip;&rdquo; game.<br />
<a href="http://itunes.apple.com/gb/app/fruit-ninja/id362949845?mt=8">[iTunes]</a> <a href="http://www.fruitninja.com/">[App website]</a></p>
<h4 id="geodefense">geoDefense</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-06.png" alt="Geodefense" loading="lazy">
</figure>
<p>I&rsquo;m not the biggest fan of tower defence games, but geoDefense is well done, and adds some nice restrictions to the format which make it much easier to pick up and play. The enemies move &lsquo;on rails&rsquo;, so it&rsquo;s not such a free-for-all as other games; you know where they&rsquo;re going to be headed and can plan your defenses appropriately.<br />
<a href="http://itunes.apple.com/app/geodefense/id305608325?mt=8">[iTunes]</a> <a href="http://criticalthoughtgames.com/geodefense">[App website]</a></p>
<h4 id="orbital">Orbital</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-07.png" alt="Orbital" loading="lazy">
</figure>
<p>An iPhone remake/clone of a flash game, <a href="http://gimmefrictionbaby.com/">Gimme Friction Baby</a>, but better. Gorgeous visuals, easy to learn, good game mechanics, good for pick up and playability.<br />
<a href="http://www.orbital-game.com/">[iTunes]</a> <a href="http://itunes.apple.com/app/orbital/id324012853?mt=8">[App website]</a></p>
<h4 id="plants-vs-zombies">Plants vs Zombies</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-08.png" alt="Plants vs Zombies" loading="lazy">
</figure>
<p>Popcap, the kings of the casual game market. Plants vs Zombies is their take on tower defense games, and it&rsquo;s pretty addictive. Plant plants in a garden, all of which have different zombie-resistant abilities - some shoot seeds, some stop baddies dead in their tracks (dead! Zombies! See what I did there?), and others just explode. Good fun, and the difficultly level ramps up perfectly - each level introduces you to some new item, ability, or bad guy, so you&rsquo;re always making progress. There&rsquo;s a free online flash demo if you want to try it out there.<br />
<a href="http://itunes.apple.com/us/app/id350642635?mt=8">[iTunes]</a> <a href="http://www.popcap.com/games/iphone/pvz">[App website]</a></p>
<h4 id="strategery">Strategery</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-09.png" alt="Strategery" loading="lazy">
</figure>
<p>Apparently Strategery is quite like Risk, although I&rsquo;ve never played Risk so I can&rsquo;t really vouch for that. You take over enemy territories on a map. Some element of luck involved. The game scales pretty well from really easy on tiny maps all the way up to &lsquo;give me full control over everything&rsquo; with brutally hard CPU opponents on epically-sized maps. I prefer the smaller easier ones, because I can win at those. There&rsquo;s a free, lite version of this (which is slightly dated now - hasn&rsquo;t been updated for a while - but it&rsquo;s still good), so give it a whirl.<br />
<a href="http://itunes.apple.com/gb/app/strategery-lite/id303188552?mt=8">[Lite version - iTunes]</a> <a href="http://itunes.apple.com/app/strategery/id298908505?mt=8">[Paid version - iTunes]</a> <a href="http://strategerygame.com/">[App website]</a></p>
<h4 id="words-with-friends">Words with Friends</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-10.png" alt="Words with Friends" loading="lazy">
</figure>
<p>Words with Friends is a Scrabble-like game which allows you to play with friends over the internet. It&rsquo;s very well done, and the multiplayer works seamlessly. More people need to come and play this with me! I&rsquo;m jwfrosty. There&rsquo;s a free ad-supported version, so there&rsquo;s no reason for you not have a go!<br />
<a href="http://itunes.apple.com/gb/app/words-with-friends-free/id321916506?mt=8">[Free version - iTunes]</a> <a href="http://itunes.apple.com/gb/app/words-with-friends/id322852954?mt=8">[Paid version - iTunes]</a></p>
<p>If there&rsquo;s anything I&rsquo;ve missed out that you&rsquo;d like to recommend, please let me know about it in the comments! And please come and play against me at Words with Friends and Carcassonne!</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>You don&rsquo;t have to play all in one sitting, just take turns as and when - the game will let you know when it&rsquo;s your turn.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>iPad Initial Impressions</title><link>https://frosty.blog/2010/05/28/ipad-initial-impressions/</link><pubDate>Fri, 28 May 2010 23:00:00 +0000</pubDate><guid>https://frosty.blog/2010/05/28/ipad-initial-impressions/</guid><description>&lt;p&gt;So, last night I got to play with an iPad for a couple of hours (thanks &lt;a href="http://www.twitter.com/davea"&gt;@davea&lt;/a&gt;!) and thought I&amp;rsquo;d post some of my initial impressions. Obviously these are my thoughts, your mileage may vary.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s smaller than you probably think it is&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s exactly as big as you thought it was if you were sad enough to make an actual-size cardboard model of it months ago&lt;/li&gt;
&lt;li&gt;The screen is &lt;strong&gt;gorgeous&lt;/strong&gt;. Really bright, the colours just jump out at you, and the viewing angles are unreal. Photos look brilliant on it, but you see a slight lack of resolution in text when you&amp;rsquo;re zoomed some way out of a web page.&lt;/li&gt;
&lt;li&gt;That said, because the screen is a piece of glass, it seemed as though glare could definitely be an issue depending on where you&amp;rsquo;re sat. I was trying to read Winnie-the-Pooh, and I could just see my face reflected in the screen because I was in the wrong position.&lt;/li&gt;
&lt;li&gt;It feels really nice in your hand. It&amp;rsquo;s a good weight (although lighter would be nicer) and it feels reassuringly solid.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s &lt;strong&gt;fast&lt;/strong&gt;. I&amp;rsquo;d read all the reviews saying how quick it was, but I didn&amp;rsquo;t expect it to be quite that quick. Everything just feels so slick and fluid, and I think this is a very big part of why I found it so nice to use.&lt;/li&gt;
&lt;li&gt;Web browsing and Google maps are just brilliant. Again, there was a lot of hyperbole about how browsing the web on this thing is a totally new experience and you have to try it to understand it - and whilst that&amp;rsquo;s a &lt;em&gt;little&lt;/em&gt; OTT, I kind of get where they&amp;rsquo;re coming from. It feels very different (in a good way) from anything I&amp;rsquo;ve used before. For casual web surfing, lay back on the sofa or in a comfy chair, and for actually reading web pages, I think it&amp;rsquo;ll be brilliant.&lt;/li&gt;
&lt;li&gt;The Instapaper app was probably the nicest reading experience I came across while trying out the iPad. With the default font settings, it&amp;rsquo;s totally gorgeous. I could spend hours and hours working my way through my Instapaper reading list on this thing.&lt;/li&gt;
&lt;li&gt;Reading PDFs is also a pretty great experience. It&amp;rsquo;s so nice to be able to flick through a PDF, and hold it like a book. A vastly better experience than reading them on a laptop or on my Sony Reader (which is far too slow for PDFs, and they don&amp;rsquo;t work well with that screen size).&lt;/li&gt;
&lt;li&gt;Photos look great, and the slideshows work really well. The iPad would make a brilliant digital photo frame whilst not in use.&lt;/li&gt;
&lt;li&gt;The keyboard surprised me by being much more usable than I was expecting. Portrait mode&amp;rsquo;s a little cramped, but landscape seems nearly full size. Straight away, I was typing very quickly with very few mistakes. I could see myself inputting a lot of text without the need for an external keyboard. &lt;a href="http://www.nanowrimo.org"&gt;NaNoWriMo&lt;/a&gt; 2010, perhaps?&lt;/li&gt;
&lt;li&gt;It seems a very social device. Sure, we were all interested in trying it out and so it got passed around a lot - but it&amp;rsquo;s just so easy to spin it round or hold it up to show other people something cool. Or to load up an app and hand it over to someone to play with. It&amp;rsquo;s very unlike a laptop in that respect.&lt;/li&gt;
&lt;li&gt;The &amp;lsquo;just a big iPod Touch&amp;rsquo; comment that people have made is total crap. iPhone OS on a device this size is a very different experience. The extra screen space adds a lot. Web browsing in particular feels completely different to browsing on an iPhone.&lt;/li&gt;
&lt;li&gt;My iPhone now seems very small, cramped, and slow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I liked it, and can&amp;rsquo;t wait to get one. I think my primary use would be reading - Instapaper, websites, feeds, and PDFs. And I think I would use it a &lt;em&gt;lot&lt;/em&gt; for all of those things. In fact, other than coding and managing my photos, I could see it replacing my laptop for a lot of things I do with my computer - namely, using the web, email, etc. And for me, that&amp;rsquo;d be a good thing - I hate being stuck behind a laptop when all I want to do is read. It&amp;rsquo;d be a nice distinction, because laptop would be for getting something done (coding, etc), and iPad would be for leisure. The iPad would also come in very hand &lt;em&gt;whilst&lt;/em&gt; coding, for reference books, etc.&lt;/p&gt;</description><content:encoded><![CDATA[<p>So, last night I got to play with an iPad for a couple of hours (thanks <a href="http://www.twitter.com/davea">@davea</a>!) and thought I&rsquo;d post some of my initial impressions. Obviously these are my thoughts, your mileage may vary.</p>
<ul>
<li>It&rsquo;s smaller than you probably think it is</li>
<li>It&rsquo;s exactly as big as you thought it was if you were sad enough to make an actual-size cardboard model of it months ago</li>
<li>The screen is <strong>gorgeous</strong>. Really bright, the colours just jump out at you, and the viewing angles are unreal. Photos look brilliant on it, but you see a slight lack of resolution in text when you&rsquo;re zoomed some way out of a web page.</li>
<li>That said, because the screen is a piece of glass, it seemed as though glare could definitely be an issue depending on where you&rsquo;re sat. I was trying to read Winnie-the-Pooh, and I could just see my face reflected in the screen because I was in the wrong position.</li>
<li>It feels really nice in your hand. It&rsquo;s a good weight (although lighter would be nicer) and it feels reassuringly solid.</li>
<li>It&rsquo;s <strong>fast</strong>. I&rsquo;d read all the reviews saying how quick it was, but I didn&rsquo;t expect it to be quite that quick. Everything just feels so slick and fluid, and I think this is a very big part of why I found it so nice to use.</li>
<li>Web browsing and Google maps are just brilliant. Again, there was a lot of hyperbole about how browsing the web on this thing is a totally new experience and you have to try it to understand it - and whilst that&rsquo;s a <em>little</em> OTT, I kind of get where they&rsquo;re coming from. It feels very different (in a good way) from anything I&rsquo;ve used before. For casual web surfing, lay back on the sofa or in a comfy chair, and for actually reading web pages, I think it&rsquo;ll be brilliant.</li>
<li>The Instapaper app was probably the nicest reading experience I came across while trying out the iPad. With the default font settings, it&rsquo;s totally gorgeous. I could spend hours and hours working my way through my Instapaper reading list on this thing.</li>
<li>Reading PDFs is also a pretty great experience. It&rsquo;s so nice to be able to flick through a PDF, and hold it like a book. A vastly better experience than reading them on a laptop or on my Sony Reader (which is far too slow for PDFs, and they don&rsquo;t work well with that screen size).</li>
<li>Photos look great, and the slideshows work really well. The iPad would make a brilliant digital photo frame whilst not in use.</li>
<li>The keyboard surprised me by being much more usable than I was expecting. Portrait mode&rsquo;s a little cramped, but landscape seems nearly full size. Straight away, I was typing very quickly with very few mistakes. I could see myself inputting a lot of text without the need for an external keyboard. <a href="http://www.nanowrimo.org">NaNoWriMo</a> 2010, perhaps?</li>
<li>It seems a very social device. Sure, we were all interested in trying it out and so it got passed around a lot - but it&rsquo;s just so easy to spin it round or hold it up to show other people something cool. Or to load up an app and hand it over to someone to play with. It&rsquo;s very unlike a laptop in that respect.</li>
<li>The &lsquo;just a big iPod Touch&rsquo; comment that people have made is total crap. iPhone OS on a device this size is a very different experience. The extra screen space adds a lot. Web browsing in particular feels completely different to browsing on an iPhone.</li>
<li>My iPhone now seems very small, cramped, and slow.</li>
</ul>
<p>I liked it, and can&rsquo;t wait to get one. I think my primary use would be reading - Instapaper, websites, feeds, and PDFs. And I think I would use it a <em>lot</em> for all of those things. In fact, other than coding and managing my photos, I could see it replacing my laptop for a lot of things I do with my computer - namely, using the web, email, etc. And for me, that&rsquo;d be a good thing - I hate being stuck behind a laptop when all I want to do is read. It&rsquo;d be a nice distinction, because laptop would be for getting something done (coding, etc), and iPad would be for leisure. The iPad would also come in very hand <em>whilst</em> coding, for reference books, etc.</p>
]]></content:encoded></item><item><title>Momento</title><link>https://frosty.blog/2010/01/06/momento/</link><pubDate>Wed, 06 Jan 2010 00:00:00 +0000</pubDate><guid>https://frosty.blog/2010/01/06/momento/</guid><description>&lt;figure&gt;
 &lt;a href="http://momentoapp.com"&gt;&lt;img src="https://frosty.blog/images/2015/12/2010-01-06-momento.png" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;I just wanted to share an iPhone app I came across the other day which I&amp;rsquo;ve totally fallen in love with. It&amp;rsquo;s called &lt;a href="http://momentoapp.com"&gt;Momento&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Momento is a diary/journaling app, which I guess is fairly self explanatory - you can add text to days in the form of &amp;lsquo;moments&amp;rsquo;. You can also attach photos to days, as well as tags for people, events, and geolocation information if you wish. Momento also has the ability to passcode your journal, to hide it from prying eyes (the main reason I want an electronic journal rather than a paper one). It&amp;rsquo;s super-simple to use, which is part of its charm; it gets out of your way and makes journaling easy (low barrier to entry: check!).&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <a href="http://momentoapp.com"><img src="/images/2015/12/2010-01-06-momento.png" alt="" loading="lazy"></a>
</figure>
<p>I just wanted to share an iPhone app I came across the other day which I&rsquo;ve totally fallen in love with. It&rsquo;s called <a href="http://momentoapp.com">Momento</a>.</p>
<p>Momento is a diary/journaling app, which I guess is fairly self explanatory - you can add text to days in the form of &lsquo;moments&rsquo;. You can also attach photos to days, as well as tags for people, events, and geolocation information if you wish. Momento also has the ability to passcode your journal, to hide it from prying eyes (the main reason I want an electronic journal rather than a paper one). It&rsquo;s super-simple to use, which is part of its charm; it gets out of your way and makes journaling easy (low barrier to entry: check!).</p>
<p>You can browse through your entries in a sweet calendar view or flick through individual days. Take a look at the screenshots on the <a href="http://momentoapp.com">Momento website</a> - this thing is <em>gorgeous</em>. It&rsquo;s a joy to use, both for writing and reading, and feels pretty damn close to using a paper journal. It brings to mind Tweetie 2 in terms of its visual polish - in fact, it even has that cute little arrow that slides along the tab bar at the bottom of the screen when you change modes, just like Tweetie.</p>
<p>In addition to its kickass-as-it-is journaling functionality, Momento can pull in &lsquo;social moments&rsquo; from Twitter, Facebook, Last.fm, and Flickr. Fill in your account details for any of these services, and it&rsquo;ll show your Flickr uploads, Twitter updates, etc, alongside your handwritten journal entries. In fact, it even grabs this data from the past, so you instantly have a very rough historical journal without having to write anything yourself.</p>
<p>My only real criticism of the app as it is is that there&rsquo;s no easy / automatic way to export / import data. As it stands, you can email yourself an XML file of your journal entries from within the app, but there&rsquo;s no way to re-import that data and the export is a manual process. Some kind of sync might be nice. It&rsquo;s mainly for security purposes, just so I don&rsquo;t lose my entries - I&rsquo;m not interested in sharing them with anybody (I have a blog for that!). That said, paper journals don&rsquo;t have a backup system!</p>
<p>I&rsquo;ve been using Momento every day for the past week, and it&rsquo;s brilliant. I&rsquo;ve been wanting to keep a journal for a long time now, but I&rsquo;ve never really given it a proper go. I&rsquo;m intending to carry on with this now I&rsquo;ve found a great way to do it - I&rsquo;m going to try and write every day for a month, and then hopefully just keep on writing.</p>
]]></content:encoded></item></channel></rss>