<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dogpatch Technology</title>
	<atom:link href="http://www.dogpatchtech.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dogpatchtech.com</link>
	<description></description>
	<lastBuildDate>Thu, 25 Apr 2013 23:39:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Appointment Buddy! Get it Now!</title>
		<link>http://www.dogpatchtech.com/uncategorized/appointment-buddy-get-it-now/</link>
		<comments>http://www.dogpatchtech.com/uncategorized/appointment-buddy-get-it-now/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 01:42:07 +0000</pubDate>
		<dc:creator>truelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dogpatchtech.com/?p=298</guid>
		<description><![CDATA[Phew! Appointment Buddy is out and receiving another update in just a few days. We think you&#8217;ll find it simple and incredibly useful for family caregivers and students. Give it as spin and don&#8217;t hesitate to write us with any questions at dev {at} dogpatchtech.com.]]></description>
				<content:encoded><![CDATA[<p>Phew! <a title="Appointment Buddy" href="http://www.appointmentbuddyapp.com" target="_blank">Appointment Buddy</a> is out and receiving another update in just a few days. We think you&#8217;ll find it simple and incredibly useful for family caregivers and students. Give it as spin and don&#8217;t hesitate to write us with any questions at dev {at} dogpatchtech.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dogpatchtech.com/uncategorized/appointment-buddy-get-it-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nested Push Animation Can Result in Corrupted Navigation Bar</title>
		<link>http://www.dogpatchtech.com/dev/nested-push-animation-can-result-in-corrupted-navigation-bar/</link>
		<comments>http://www.dogpatchtech.com/dev/nested-push-animation-can-result-in-corrupted-navigation-bar/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 01:25:42 +0000</pubDate>
		<dc:creator>truelson</dc:creator>
				<category><![CDATA[Dev]]></category>

		<guid isPermaLink="false">http://www.dogpatchtech.com/?p=294</guid>
		<description><![CDATA[Hey Folks, Realized that I solve a fair number of bugs (recently iOS bugs) and figured I&#8217;d start listing some of my findings in our blog, largely to help me remember them, help others, and maybe bring a little traffic. Got this cryptic error today on Appointment Buddy today, &#8220;Nested Push Animation Can Result in [...]]]></description>
				<content:encoded><![CDATA[<p>Hey Folks,</p>
<p>Realized that I solve a fair number of bugs (recently iOS bugs) and figured I&#8217;d start listing some of my findings in our blog, largely to help me remember them, help others, and maybe bring a little traffic.</p>
<p>Got this cryptic error today on Appointment Buddy today, &#8220;Nested Push Animation Can Result in Corrupted Navigation Bar&#8221; and the translated meaning is, don&#8217;t push or pop new views on the navigation controller until it&#8217;s finished with the last push or pop.</p>
<p>So if you have buttons that create a new view, make sure they are allowed only to push or pop the navigation controller once. If someone keeps tapping the create button, you have to block all those extra calls and only let it push once.</p>
<p>That&#8217;s all folks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dogpatchtech.com/dev/nested-push-animation-can-result-in-corrupted-navigation-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Appointment Buddy!</title>
		<link>http://www.dogpatchtech.com/app/appointment-buddy/</link>
		<comments>http://www.dogpatchtech.com/app/appointment-buddy/#comments</comments>
		<pubDate>Sun, 25 Nov 2012 22:00:34 +0000</pubDate>
		<dc:creator>truelson</dc:creator>
				<category><![CDATA[App]]></category>

		<guid isPermaLink="false">http://www.dogpatchtech.com/?p=285</guid>
		<description><![CDATA[We just submitted our latest app to Apple, Appointment Buddy. It&#8217;s the note taking app we want with us whether we&#8217;re in a doctor&#8217;s office or a meeting. Jean and I both have been called upon to act as family caregivers in recent years, and haven&#8217;t been happy with any option for a note taking [...]]]></description>
				<content:encoded><![CDATA[<p>We just submitted our latest app to Apple, <a title="Appointment Buddy" href="http://www.appointmentbuddyapp.com" target="_blank">Appointment Buddy</a>. It&#8217;s the note taking app we want with us whether we&#8217;re in a doctor&#8217;s office or a meeting. Jean and I both have been called upon to act as family caregivers in recent years, and haven&#8217;t been happy with any option for a note taking app, so we built one that met our needs. You can see a preview at <a title="Appointment Buddy App" href="http://www.appointmentbuddyapp.com" target="_blank">AppointmentBuddyApp.com</a>. We&#8217;ll keep you posted when it passes Apple&#8217;s review process.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dogpatchtech.com/app/appointment-buddy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seals in Health Care</title>
		<link>http://www.dogpatchtech.com/medical/seals-in-health-care/</link>
		<comments>http://www.dogpatchtech.com/medical/seals-in-health-care/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 10:01:30 +0000</pubDate>
		<dc:creator>truelson</dc:creator>
				<category><![CDATA[medical]]></category>

		<guid isPermaLink="false">http://www.dogpatchtech.com/?p=162</guid>
		<description><![CDATA[Dogpatch Technology recently completed work for a health care startup in the San Francisco area building mobile applications for patients with chronic illnesses. It was a wonderful chance to talk to some experts in behavior change and chronic diseases. We can&#8217;t wait to apply what we learned to our own applications. Back to work!]]></description>
				<content:encoded><![CDATA[<p>Dogpatch Technology recently completed work for a health care startup in the San Francisco area building mobile applications for patients with chronic illnesses. It was a wonderful chance to talk to some experts in behavior change and chronic diseases. We can&#8217;t wait to apply what we learned to our own applications.</p>
<p>Back to work!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dogpatchtech.com/medical/seals-in-health-care/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross-platform, Testable Mobile Goodness with Titanium and Jasmine</title>
		<link>http://www.dogpatchtech.com/dev/titanium-and-jasmine/</link>
		<comments>http://www.dogpatchtech.com/dev/titanium-and-jasmine/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 04:06:53 +0000</pubDate>
		<dc:creator>truelson</dc:creator>
				<category><![CDATA[Dev]]></category>

		<guid isPermaLink="false">http://www.dogpatchtech.com/?p=19</guid>
		<description><![CDATA[Phew!  Dogpatch Technology is now simultaneously developing for both iPhone and Android while using an RSpec styled testing framework. Here's how we do it.]]></description>
				<content:encoded><![CDATA[<p>Phew!  Dogpatch Technology is now simultaneously developing for both iPhone and Android while using an RSpec styled testing framework. Here&#8217;s how we do it.</p>
<p>We decided to go with <a title="Titanium Mobile" href="http://http://www.appcelerator.com/products/titanium-mobile-application-development/" target="_blank">Appcelerator&#8217;s Titanium Mobile</a> for our mobile development platform.  Titanium is still a little new, and occasionally throws some wonky behavior at you,<em> <strong>but the ability to develop native apps quickly in JavaScript for iPhone and Android simultaneously</strong></em> was just too good to pass up.</p>
<p>But doing so, we had to give up <a title="Cedar" href="http://https://github.com/pivotal/cedar" target="_blank">Cedar</a>, a pretty slick RSpec styled testing framework for ObjC written by Pivotal Labs&#8217; Adam Milligan, which was our first introduction to RSpec style BDD coding.  Once we tried BDD, we never wanted to go back.  So when switching to Titanium, we ended up choosing <a title="Jasmine" href="http://pivotal.github.com/jasmine/" target="_blank">Jasmine</a>, another RSpec styled testing framework for JavaScript, also written by the nice folks at Pivotal Labs.</p>
<p>We found a <a title="Levid Jasmine" href="http://blog.levid.com/?p=29" target="_blank">blog post</a> at Levid Media on how they setup Jasmine for use with Titanium, but it seemed a little out of date and lacking in some key details, so here&#8217;s how we set it up on our Snow Leopard dev machine.</p>
<p>Before you start, make sure you&#8217;ve installed Jasmine as a ruby gem.  Levid has a quick <a title="Jasmine Install" href="http://blog.levid.com/?p=23" target="_blank">tutorial</a> on it.  Also make sure you&#8217;ve installed the latest <a title="Appcelerator Developer" href="http://www.appcelerator.com/products/download/" target="_blank">Appcelerator Developer Package</a>, have downloaded the latest mobile SDK (1.5.1 as of this post), and have created a new Titanium mobile project for yourself.  Now you&#8217;re ready to set up Jasmine as your framework.</p>
<p>First, in the root of your project directory, run:<br />
<code><br />
</code></p>
<pre>jasmine init</pre>
<p><code><br />
</code><br />
Your root project directory should look something like:<br />
<code><br />
</code></p>
<pre>CHANGELOG.txt LICENSE.txt   Rakefile      build         public        tiapp.xml
LICENSE       README        Resources     manifest      spec</pre>
<p><code><br />
</code><br />
Go ahead and delete the public folder and everything in it as we&#8217;re going to be pointing Jasmine at the spec and Resources folder.  Also, delete spec/javascripts/helpers/SpecHelper.js as we aren&#8217;t going to need that either. Next we&#8217;re going to edit the spec/javascripts/support/jasmine.yml config file.  Here&#8217;s a breakdown of ours.<br />
<code><br />
</code></p>
<pre># src_files
#
# Return an array of filepaths relative to src_dir to include before jasmine specs.
# Default: []
#
# EXAMPLE:
#
# src_files:
#   - lib/source1.js
#   - lib/source2.js
#   - dist/**/*.js
#
# *HACK here we're including helper/mock scripts before other source files
src_files:
- spec/javascripts/helpers/timock.js
- Resources/extras.js
- Resources/ttestmodel.js
- Resources/ttestcontroller.js
- Resources/app.js</pre>
<p><code><br />
</code><br />
Notice that instead of using the helpers directory jasmine offers, I put my Titanium mock class file first before anything else.  <strong><em>The order you specify here is the order the files are loaded</em></strong>, so use this to your advantage, but it is a bit of a hack.   Specifying your helper files in the helper section unfortunately loads them after your class files causing lots of fun javascript errors.</p>
<p>Control of the loading of the javascript files makes writing them a little bit easier to modularize and test them.  Lack of a good way to mimic the Titanium API call &#8220;Ti.include&#8221; forced us to go this route, and fortunately Jasmine obliges, though I&#8217;m sure there may be a better way out there.<br />
<code><br />
</code></p>
<pre># helpers
#
# Return an array of filepaths relative to spec_dir to include before jasmine specs.
# Default: ["helpers/**/*.js"]
#
# EXAMPLE:
#
# helpers:
#   - helpers/**/*.js
#
helpers:</pre>
<p><code><br />
</code></p>
<p>Notice I left the helper files blank here.<br />
<code><br />
</code></p>
<pre># spec_files
#
#  Return an array of filepaths relative to spec_dir to include.
# Default: ["**/*[sS]pec.js"]
#
# EXAMPLE:
#
# spec_files:
#   - **/*[sS]pec.js
#
spec_files:
    - *[sS]pec.js</pre>
<p><code><br />
</code><br />
We didn&#8217;t use any fancy directory structure for our spec files.  Just what&#8217;s in the spec/javascripts directory.<br />
<code><br />
</code></p>
<pre># src_dir
#
# Source directory path. Your src_files must be returned relative to this path. Will use root if left blank.
# Default: project root
#
# EXAMPLE:
#
# src_dir: public
#
src_dir:</pre>
<p><code><br />
</code><br />
We didn&#8217;t set src_dir to Resources due to the helper file hack, so left this blank.<br />
<code><br />
</code></p>
<pre># spec_dir
#
# Spec directory path. Your spec_files must be returned relative to this path.
# Default: spec/javascripts
#
# EXAMPLE:
#
# spec_dir: spec/javascripts
spec_dir: spec/javascripts</pre>
<p><code><br />
</code><br />
And lastly we tell jasmine where to find it&#8217;s javascript specs.  Finally, all we need to do is run from the root project directory:<br />
<code><br />
</code></p>
<pre>rake jasmine</pre>
<p><code><br />
</code><br />
And point your browser to http://localhost:8888/ and any spec tests you have will be run.  It&#8217;s a heck of a lot easier, especially for Android development to write most of your code using your specs rather than recompiling and launching it from the emulator.</p>
<p>Also it&#8217;s relatively easy to set up a hudson continuous integration job that just checks your repository and runs:<br />
<code><br />
</code></p>
<pre>rake jasmine:ci</pre>
<p><code><br />
</code><br />
So yes, <strong><em>you CAN do mobile cross platform development with BDD and continuous integration</em></strong>.   Any excuses for not testing your code pointing to how mobile development lacks good cross-platform development tools are just plain wrong.  And I&#8217;m sure there are better ways to do it.  Feel free to drop us a line at dev (~at~) dogpatchtech.com with any questions or comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dogpatchtech.com/dev/titanium-and-jasmine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy New Year</title>
		<link>http://www.dogpatchtech.com/uncategorized/happy-new-year/</link>
		<comments>http://www.dogpatchtech.com/uncategorized/happy-new-year/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 18:05:05 +0000</pubDate>
		<dc:creator>truelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://10.0.1.102/?p=3</guid>
		<description><![CDATA[Yeah, yeah, yeah. Nothing really new to say about the seals other than we&#8217;re all now in 2011 and hard at work. Research is going well. We&#8217;ll be filing soon. And 9 out of 10 seals agree this site is ugly but low priority. The other seal, well he likes minimalism. He&#8217;s a zen seal. [...]]]></description>
				<content:encoded><![CDATA[<p>Yeah, yeah, yeah.  Nothing really new to say about the seals other than we&#8217;re all now in 2011 and hard at work.  Research is going well.  We&#8217;ll be filing soon.  And 9 out of 10 seals agree this site is ugly but low priority. The other seal, well he likes minimalism.  He&#8217;s a zen seal.  He&#8217;s weird. We put him in a corner.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dogpatchtech.com/uncategorized/happy-new-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Seals Are Warming Up&#8230;</title>
		<link>http://www.dogpatchtech.com/uncategorized/hello-world/</link>
		<comments>http://www.dogpatchtech.com/uncategorized/hello-world/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 08:48:55 +0000</pubDate>
		<dc:creator>truelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://10.0.1.102/?p=1</guid>
		<description><![CDATA[Welcome to Dogpatch Technology!   Check back here again when we have more to sing about.]]></description>
				<content:encoded><![CDATA[<p>Welcome to Dogpatch Technology!   Check back here again when we have more to sing about.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dogpatchtech.com/uncategorized/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
