<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Cocoa Manifest</title>
 <link href="http://cocoamanifest.net/feeds/index.xml" rel="self"/>
 
 <link href="http://cocoamanifest.net"/>
 
 <updated>2013-05-15T22:23:02-04:00</updated>
 <id>http://cocoamanifest.net/</id>
 <author>
   <name>Jonathan Penn</name>
   <email>jonathan@cocoamanifest.net</email>
 </author>

 
  <entry>
  <title>Building Bridges To JavaScript</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://www.steamclock.com/blog/2013/05/apple-objective-c-javascript-bridge/"/>
  
  <updated>2013-05-15T17:05:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/05/building-bridges-to-javascript</id>
  <content type="html">
    &lt;p&gt;Here’s some &lt;a href=&quot;http://www.steamclock.com/blog/2013/05/apple-objective-c-javascript-bridge/&quot;&gt;compelling investigative work by Nigel Brooke&lt;/a&gt; that Apple is
going to go public with an Objective-C/JavaScript bridge. It’s &lt;a href=&quot;http://cocoamanifest.net/linked/2011/04/native-javascript-on-ios.html&quot;&gt;been&lt;/a&gt;
&lt;a href=&quot;http://cocoamanifest.net/linked/2011/12/gajavascript-objective-c-bridge-to-javascript-running-in-a-web-view.html&quot;&gt;possible&lt;/a&gt; to communicate back and forth with a JavaScript runtime using
hidden &lt;code&gt;UIWebViews&lt;/code&gt; for a while, but Nigel points out some commits to WebKit
that hint to something much more official in the works.&lt;/p&gt;

&lt;p&gt;Hey, Apple could even &lt;a href=&quot;http://cocoamanifest.net/linked/2011/04/javascript-has-jumped-the-shark.html&quot;&gt;convert Objective-C code&lt;/a&gt; to JavaScript at this
point. :)&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/05/building-bridges-to-javascript.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>How to Build Scar Tissue (Or, a fascinating approach to solving iCloud/Core Data)</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://lhunath.github.io/UbiquityStoreManager/"/>
  
  <updated>2013-05-14T10:26:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/05/how-to-build-scar-tissue-or-a-fascinating-approach-to-solving-icloud-core-data</id>
  <content type="html">
    &lt;p&gt;Maarten Billemont is attempting to build out a well documented system &lt;a href=&quot;http://lhunath.github.io/UbiquityStoreManager/&quot;&gt;to work
around iCloud’s Core Data syncing issues&lt;/a&gt;&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. It’s an impressive SDK
with a clear API for what could go wrong and what you’d need to handle.&lt;/p&gt;

&lt;p&gt;His library will watch for iCloud store corruption and tear down and rebuild
the store automatically, notifying all other devices to use the new store in
the process. It’s a great example of wrapping “scar tissue” around an
unreliable external dependency. He’s encoded all the things that could go wrong
as well named messages that are sent to you as the delegate, and spells out the
default recovery behavior or how you can inject your own.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot;&gt;
      &lt;p&gt;Maarten’s project itself is a fork of Aleksey Novicov’s &lt;a href=&quot;https://github.com/alekseyn/iCloudStoreManager&quot;&gt;iCloudStoreManager&lt;/a&gt;.&lt;a href=&quot;#fnref:1&quot; rel=&quot;reference&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;


    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/05/how-to-build-scar-tissue-or-a-fascinating-approach-to-solving-icloud-core-data.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>TICoreDataSync Hits 1.0.2</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="https://github.com/nothirst/TICoreDataSync"/>
  
  <updated>2013-05-14T09:36:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/05/ticoredatasync-hits-1-0-2</id>
  <content type="html">
    &lt;p&gt;The &lt;a href=&quot;https://github.com/nothirst/TICoreDataSync&quot;&gt;TICoreDataSync&lt;/a&gt; library hit 1.0.2 yesterday with stability and
performance improvements, data compression, and a big documentation update.&lt;/p&gt;

&lt;p&gt;I first noticed &lt;a href=&quot;http://cocoamanifest.net/linked/2012/06/core-data-sync-through-dropbox-or-anything.html&quot;&gt;TICoreDataSync&lt;/a&gt; last year and have been keeping an eye on
it in a personal way. It’s a cloud syncing framework built by the team at &lt;a href=&quot;http://nothirst.com/&quot;&gt;No
Thirst Software&lt;/a&gt; and extracted from their flagship app, &lt;a href=&quot;http://nothirst.com/moneywell/&quot;&gt;Moneywell&lt;/a&gt;. At
the time I was looking for a native personal finance app that my family could
use to stay in sync so I decided to try it out. I’m quite impressed how it
syncs over Dropbox. I’ve experimented a bit trying to confuse the clients with
conflicting edits, but it catches up and keeps chugging along just fine.&lt;/p&gt;

&lt;p&gt;The fact that you have the source code in front of you and that it syncs
through different services (with iCloud support in the works) makes it a pretty
compelling resource if you need to replicate the contents of a Core Data
document across iOS/OS X devices.&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/05/ticoredatasync-hits-1-0-2.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>Now, *This* is A Bug Report</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="https://github.com/facebook/xctool/issues/16"/>
  
  <updated>2013-05-10T17:40:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/05/now-this-is-a-bug-report</id>
  <content type="html">
    &lt;p&gt;For those of you who haven’t figured out the source of that huge sigh of relief
among the Objective-C community, Facebook released &lt;a href=&quot;https://github.com/facebook/xctool&quot;&gt;&lt;code&gt;xctool&lt;/code&gt;&lt;/a&gt;, an
impressive wrapper around &lt;code&gt;xcodebuild&lt;/code&gt; that lets you build and run tests for
your iOS or OS X apps from the command line. Yes, you can run &lt;code&gt;xcodebuild&lt;/code&gt;
directly to build, but the output is messy and it is very difficult to run iOS
unit tests without resorting to &lt;a href=&quot;http://cocoamanifest.net/linked/2013/01/running-ios-unit-tests-from-the-command-line.html&quot;&gt;hacking shell scripts&lt;/a&gt; like Stewart
Gleadow recommended. Definitely check out &lt;code&gt;xctool&lt;/code&gt; if you are trying to do
continous integration or just want a better way to format the output of
&lt;code&gt;xcodebuild&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;But that’s not what I’m focusing on here. What impressed me the most was &lt;a href=&quot;https://github.com/facebook/xctool/issues/16&quot;&gt;this
bug report&lt;/a&gt; filed against &lt;code&gt;xctool&lt;/code&gt; about &lt;a href=&quot;http://cocoapods.org&quot;&gt;CocoaPods&lt;/a&gt; integration.
Victor Ilyukevich gave the expected outcome, steps to reproduce, full logs,
screen casts, sample project…the works. He demonstrated his knowledge of the
problem to address any questions up front and even shared a workaround that he
found. It is certainly a lot of work but it makes it so easy on the maintainers
and cuts through the usual did-you-try-this ping pong game.&lt;/p&gt;

&lt;p&gt;Alas, the bug may not be fixable because it depends on knowing how Xcode
figures out implicit dependencies. But that doesn’t matter. The bug report is
recorded here for all of us to see. This kind of material helps move the open
source community forward even if it doesn’t lead to an immediate payoff.&lt;/p&gt;

&lt;p&gt;Don’t you wish &lt;em&gt;your&lt;/em&gt; users treated you this way?&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/05/now-this-is-a-bug-report.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>RubyMotion: Now For OS X And With Weak References!</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://blog.rubymotion.com/post/49943751398/rubymotion-goes-2-0-and-gets-osx-support-templates-and"/>
  
  <updated>2013-05-09T10:33:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/05/rubymotion-now-for-os-x-and-with-weak-references</id>
  <content type="html">
    &lt;p&gt;To celebrate RubyMotion’s first birthday, the team worked hard to ship a &lt;a href=&quot;http://blog.rubymotion.com/post/49943751398/rubymotion-goes-2-0-and-gets-osx-support-templates-and&quot;&gt;new
version&lt;/a&gt; that &lt;em&gt;now supports OS X development&lt;/em&gt;! To top it off, it now
supports &lt;a href=&quot;https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmPractical.html%23//apple_ref/doc/uid/TP40004447-1000810&quot;&gt;weak references&lt;/a&gt;, more tweaks to speed up the build process,
and project templates.&lt;/p&gt;

&lt;p&gt;Boom. &lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/05/rubymotion-now-for-os-x-and-with-weak-references.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>No More Patents on Software In New Zealand</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://www.zdnet.com/new-zealand-drops-ability-to-patent-software-7000015109/"/>
  
  <updated>2013-05-09T09:22:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/05/no-more-patents-on-software-in-new-zealand</id>
  <content type="html">
    &lt;p&gt;Chris Duckett at &lt;a href=&quot;http://www.zdnet.com/new-zealand-drops-ability-to-patent-software-7000015109/&quot;&gt;ZDNet&lt;/a&gt; citing New Zealand’s Commerce Minister Craig
Foss on a ruling that limits the scope of patents on software:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Commissioner considers that the actual contribution of the claim lies
solely in it being a computer program. The mere execution of a method within
a computer does not allow the method to be patented. Accordingly, the process
is not an invention for the purposes of the Act.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An interesting development. He poses the idea that a novel washing machine
using software to do it’s work could be patentable depending on the novelty of
the process. However, a program that auto-fills legal documents could not. The
mere act of automation is considered obvious.&lt;/p&gt;

&lt;p&gt;I like where this is going, but it still leaves huge holes for misuse. I’d love
to see a perspective like this here in the USA, but we still have to deal with
the troll situation. Can I risk working on an idea if there’s the possibility
that a troll will lob an expensive lawsuit at me–even if I have a more
reasonable chance to win under a new system like this?&lt;/p&gt;

&lt;p&gt;Regardless, I’d love to see more politicians here in the US show this level of
understanding:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We believe it’s near impossible for software to be developed without
breaching some of the hundreds of thousands of software patents awarded
around the world, often for ‘obvious’ work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m pulling for you, USA. Don’t let me down.&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/05/no-more-patents-on-software-in-new-zealand.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>✦ Three More Chapters of Test iOS Apps With UI Automation Released!</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://cocoamanifest.net/articles/2013/05/three-more-chapters-of-test-ios-apps-with-ui-automation-released.html"/>
  
  <updated>2013-05-08T13:56:00-04:00</updated>
  <id>http://cocoamanifest.net/articles/2013/05/three-more-chapters-of-test-ios-apps-with-ui-automation-released</id>
  <content type="html">
    &lt;p&gt;Beta 2.0 of my book, &lt;a href=&quot;http://pragprog.com/book/jptios/&quot;&gt;Test iOS Apps with UI Automation&lt;/a&gt; is now out. I’ve
added not one, but &lt;em&gt;three&lt;/em&gt; new chapters for you to enjoy! Here’s the
highlights:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Chapter 7 focuses on how to use UI Automation in a performance testing
workflow, bouncing back and forth between your Objective-C code and
Instruments while trying recreate the steps that provoke a memory leak.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Chapter 8 introduces some nifty techniques to make sure your iOS application
starts in a ready state for your tests. You’ll learn how to control UI
Automation through environment variables, set up a Core Data stack for
different scenarios, and hide this test setup code from your release build.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Chapter 9 explores how you can stub out external services that your app
depends on so your tests execute the same way every time…internet or not.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks so much for your patience as my editor, &lt;a href=&quot;http://twitter.com/bphogan&quot;&gt;Brian&lt;/a&gt;, and I get these next
chapters out. There are only two more chapters to go before the book is
entirely in your hands. Then I’ll just need to see what I have to update after
WWDC 2013!&lt;/p&gt;



    
  </content>
</entry>


  <entry>
  <title>SQLite: The File Format Of The Future</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://shapeof.com/archives/2013/4/we_need_a_standard_layered_image_format.html"/>
  
  <updated>2013-05-02T15:27:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/05/sqlite-the-file-format-of-the-future</id>
  <content type="html">
    &lt;p&gt;After I got the latest version of &lt;a href=&quot;http://flyingmeat.com/acorn/&quot;&gt;Acorn&lt;/a&gt;, one of the awesome indie image
editing suites for OS X, I was catching up with Gus Mueller’s blog and came
across an awesome post a few days ago about &lt;a href=&quot;http://shapeof.com/archives/2013/4/we_need_a_standard_layered_image_format.html&quot;&gt;his use of SQLite as the file
format for the app&lt;/a&gt;. You read that right…Acorn uses SQLite to store
images and metadata.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Acorn has been using SQLite as its native file format since version 2.0, and
it has been wonderful. When writing out and reading in an image I don’t have
to think about byte offsets, I mix bitmap and vector layers together in the
same file, and debugging a troubled file is as simple as opening it up in
Base or your preferred SQLite tool. This sure beats opening a PSD file in a
hex editor to figure out what’s going on.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a marvelous simple and real world example of how to leverage what
SQLite does well: atomic, transactional, and incremental data storage. Sound
familiar? This is why Core Data uses it, too…and why you shouldn’t think of
Core Data as an ORM for SQLite. It merely uses SQLite for data storage because
it kicks ass in general.&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/05/sqlite-the-file-format-of-the-future.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>GSAutomation - Simple Test Runner For UI Automation by the Hulu Tech Team</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://tech.hulu.com/blog/2013/04/24/gsautomation-an-open-source-ios-test-library/"/>
  
  <updated>2013-04-26T09:33:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/04/gsautomation-simple-test-runner-for-ui-automation-by-the-hulu-tech-team</id>
  <content type="html">
    &lt;p&gt;Bao Lei gave &lt;a href=&quot;http://tech.hulu.com/blog/2013/04/24/gsautomation-an-open-source-ios-test-library/&quot;&gt;a nice writeup&lt;/a&gt; of Hulu’s &lt;a href=&quot;https://github.com/hulu/GSAutomation&quot;&gt;GSAutomation&lt;/a&gt; test runner
for UI Automation. Rather than use the UI Automation JavaScript API itself to
write tests they developed a domain language, of sorts, that expresses test
steps as a series of arrays. The example looks something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;task = [
  [Tap, &quot;Button&quot;],
  [Check, &quot;Text I'm expecting&quot;, &quot;Text I'm expecting from another label&quot;],
]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Yes, this can lead to oversimplified test steps and you’re leaving behind a lot
of the raw power of looking up and interacting with &lt;code&gt;UIAElement&lt;/code&gt; objects
directly, but I think it’s an interesting technique and could cover a lot of
common test cases.&lt;/p&gt;

&lt;p&gt;And, hey, it kinda reminds me of &lt;a href=&quot;https://en.wikipedia.org/wiki/Lisp_(programming_language)&quot;&gt;Lisp&lt;/a&gt;. :)&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/04/gsautomation-simple-test-runner-for-ui-automation-by-the-hulu-tech-team.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>Expert Beginners</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner"/>
  
  <updated>2013-04-23T12:17:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/04/expert-beginners</id>
  <content type="html">
    &lt;p&gt;Erik Dietrich on the &lt;a href=&quot;http://www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner&quot;&gt;rise of the “Expert Beginner”&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Expert Beginner has nowhere to go because progression requires an
understanding that he has a lot of work to do, and that is not a readily
available conclusion…The Expert Beginner has perfected the craft of bowling
a 160 out of 300 possible points by doing exactly the same thing week in and
week out with no significant deviations from routine or desire to experiment.
This is because he believes that 160 is the best possible score by virtue of
the fact that he scored it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This describes so much of the “startup” culture today.&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/04/expert-beginners.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>Codea, Lua IDE for iPad, Now Exports as Xcode Projects</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://twolivesleft.com/Codea/"/>
  
  <updated>2013-04-22T07:03:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/04/codea-lua-ide-for-ipad-now-exports-as-xcode-projects</id>
  <content type="html">
    &lt;p&gt;&lt;a href=&quot;http://twolivesleft.com/Codea/&quot;&gt;Codea&lt;/a&gt; just keeps getting better and better. After you’ve built that
&lt;a href=&quot;http://cocoamanifest.net/linked/2012/04/game-built-entirely-on-ipad-with-codea.html&quot;&gt;awesome iPad game&lt;/a&gt; in Lua &lt;em&gt;on the iPad&lt;/em&gt;, you can now export your Codea
project as an Xcode project ready to go for submission to the App Store.&lt;/p&gt;

&lt;p&gt;Codea is quite a &lt;a href=&quot;http://cocoamanifest.net/linked/2013/03/prototype-glsl-shaders-on-the-ipad-with-codea.html&quot;&gt;powerful IDE&lt;/a&gt; with inline documentation, REPL, live
preview, a physics engine and more tweakability than you’ll know what to do
with. It’s a great way to build games and interactive visualization tools with
Lua and the Xcode project export removes even more friction to get the results
into the hands of your users.&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/04/codea-lua-ide-for-ipad-now-exports-as-xcode-projects.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>Run UI Automation Tests in the Cloud with cisimple</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://blog.cisimple.com/2013/04/09/we-just-made-testing-mobile-applications-simple/"/>
  
  <updated>2013-04-12T09:55:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/04/run-ui-automation-tests-in-the-cloud-with-cisimple</id>
  <content type="html">
    &lt;p&gt;&lt;a href=&quot;http://cisimple.com&quot;&gt;cisimple&lt;/a&gt;, a continuous integration service that builds your app whenever you
push up changes, just &lt;a href=&quot;http://blog.cisimple.com/2013/04/09/we-just-made-testing-mobile-applications-simple/&quot;&gt;announced their new features&lt;/a&gt; to support UI
Automation testing. Point it at your repo, tell it what test scripts to run,
and it will run them in Instruments against whatever simulator device families
you choose whenever you push changes. They’ll capture and notify you of any
failures and even record a video of the test run so you can try to figure out
what went wrong.&lt;/p&gt;

&lt;p&gt;I’ve had a chance to talk to the team and try out the service, and I’m quite
impressed. It’s easy to use but don’t let the simplicity fool you. They
are taking enterprise applications seriously, too, and you can talk to them
more about their security and privacy protocols if you need to. If you’ve been
trying to get your UI Automation tests into a CI process, this product is
definitely worth a look.&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/04/run-ui-automation-tests-in-the-cloud-with-cisimple.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>Self Compiling Objective-C Files</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://bou.io/HowToWriteASelfCompilingObjectiveCFile.html"/>
  
  <updated>2013-04-08T10:13:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/04/self-compiling-objective-c-files</id>
  <content type="html">
    &lt;p&gt;I did a lot of experimenting with Core Data as I prepared for my talk at the
RubyMotion &lt;a href=&quot;http://www.rubymotion.com/conference/&quot;&gt;#inspect conference&lt;/a&gt;. I needed to run Objective-C files over
and over again while I compared accessing the framework from RubyMotion. My
workflow increased when I found this tip by Nicolas Bouilleaud to &lt;a href=&quot;http://bou.io/HowToWriteASelfCompilingObjectiveCFile.html&quot;&gt;make
Objective-C source files executable&lt;/a&gt; in the same way that you make a
script file executable with a &lt;a href=&quot;http://en.wikipedia.org/wiki/Shebang_(Unix)&quot;&gt;hash-bang&lt;/a&gt; line at the top. By crafting a
custom command in a special comment at the top of the file, you can mark an
Objective-C script executable with &lt;code&gt;chmod +x&lt;/code&gt; and run it like a shell script. It
will automatically compile, link, and run the resulting binary from the current
directory.&lt;/p&gt;

&lt;p&gt;From the &lt;em&gt;fun to know&lt;/em&gt; department.&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/04/self-compiling-objective-c-files.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>A Secure Incremental Store For Core Data</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://www.stoeger-it.de/en/secureincrementalstore/"/>
  
  <updated>2013-04-02T09:57:00-04:00</updated>
  <id>http://cocoamanifest.net/linked/2013/04/a-secure-incremental-store-for-core-data</id>
  <content type="html">
    &lt;p&gt;I had the honor to speak at the first &lt;a href=&quot;http://rubymotion.com/conference&quot;&gt;RubyMotion #inspect conference&lt;/a&gt; on
Core Data—quite a challenge to put together for a room full of people who are
not too excited about Objective-C. The &lt;a href=&quot;http://cocoamanifest.net/features/2013-03-core-data-in-motion.pdf&quot;&gt;presentation&lt;/a&gt; was a success and the
video recording should be up on the web soon.&lt;/p&gt;

&lt;p&gt;I demonstrated a RubyMotion app with a custom persistent store written in
Objective-C to show off how flexible the Core Data stack can be and a lot of
people came up to me afterward asking about custom stores that do encryption.&lt;/p&gt;

&lt;p&gt;Well, today I stumbled upon &lt;a href=&quot;http://www.stoeger-it.de/en/secureincrementalstore/&quot;&gt;stoeger it’s secure incremental store&lt;/a&gt; that
promises full encryption of data at rest in a SQLite database. It looks like
it’s not a fully complete incremental store, yet, but they’ve got a roadmap
that looks quite promising. This is the first commercial custom Core Data
persistent store that I’m aware of. I hope they succeed and that it paves the
way for other options.&lt;/p&gt;



    
    &lt;p&gt;&lt;a rel='permalink' href='/linked/2013/04/a-secure-incremental-store-for-core-data.html'&gt;✦ Permalink&lt;/a&gt;&lt;/p&gt;
    
  </content>
</entry>


  <entry>
  <title>✦ Announcing My Book: Test iOS Apps With UI Automation</title>
  <author><name>Jonathan Penn</name></author>
  
  <link href="http://cocoamanifest.net/articles/2013/03/announcing-my-book-test-ios-apps-with-ui-automation.html"/>
  
  <updated>2013-03-27T00:10:00-04:00</updated>
  <id>http://cocoamanifest.net/articles/2013/03/announcing-my-book-test-ios-apps-with-ui-automation</id>
  <content type="html">
    &lt;p&gt;I’m quite excited to announce my new book, &lt;a href=&quot;http://pragprog.com/book/jptios/test-ios-apps-with-ui-automation&quot;&gt;&lt;em&gt;Test iOS Apps With UI
Automation&lt;/em&gt;&lt;/a&gt;! You can get the first six chapters today as a beta ebook
through the Pragmatic Programmers. They’re working with me to add more polish
and we’ll release the final chapters in the coming weeks. If you spot a
problem, &lt;a href=&quot;http://forums.pragprog.com/forums/jptios&quot;&gt;let me know&lt;/a&gt;! Many thanks to them and specifically &lt;a href=&quot;http://twitter.com/bphogan&quot;&gt;Brian
Hogan&lt;/a&gt;, my editor, for helping me pull this off.&lt;/p&gt;

&lt;h2 id=&quot;whats-this-ui-automation&quot;&gt;What’s this UI Automation?&lt;/h2&gt;

&lt;p&gt;UI Automation is a tool that lets you control your application as it runs on
the simulator or a tethered device through a JavaScript API. It’s one of the
many pieces of the Instruments analysis tool that comes with Apple’s SDK. You
can use it to write acceptance tests to assert proper behavior for your app,
and even use it to drive the boring and repetitive behavior needed to squash
hard to replicate performance bugs.&lt;/p&gt;

&lt;h2 id=&quot;and-this-book-helps&quot;&gt;And This Book Helps?&lt;/h2&gt;

&lt;p&gt;The documentation on UI Automation is…sparse, shall we say. There’s lots of
detail there, but not a good description of patterns and paradigms to help you
think about writing effective test suites for iOS applications.&lt;/p&gt;

&lt;p&gt;That’s where this book comes in.&lt;/p&gt;

&lt;p&gt;I share my experience with you and walk you though testing an actual
application that uses Core Data, talks to external network services, and uses
geolocation. I show you how to start testing with UI Automation in small
chunks. By the end you’ll isolate the application from external dependencies,
bootstrap the starting state, and run the entire behavior test suite from the
command line.&lt;/p&gt;

&lt;p&gt;You don’t need to install anything extra to get started, since UI Automation
comes with Xcode and friends. Learn as you go and pull in third party resources
as you need them.&lt;/p&gt;

&lt;h2 id=&quot;ooooo-so-where-do-i-get-it&quot;&gt;Ooooo, So Where Do I Get It?&lt;/h2&gt;

&lt;p&gt;As mentioned above, the first six chapters are available today through the
Pragmatic Programmer’s &lt;a href=&quot;http://pragprog.com/book/jptios/test-ios-apps-with-ui-automation&quot;&gt;beta ebook program&lt;/a&gt;. Buy it and you’ll get free
updates as I finish polishing the book. And we’re making sure the beta period
extends past WWDC 2013 so I can keep it up to date after the new goodies are
announced.&lt;/p&gt;

&lt;p&gt;Thank you all for your support and encouragement. SQUASH ALL THE BUGS.&lt;/p&gt;



    
  </content>
</entry>




</feed>

