<?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>Suture.app</title>
	<atom:link href="https://www.suture.app/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.suture.app</link>
	<description>An easy-to-use, free, bedside app for laceration repairs</description>
	<lastBuildDate>Wed, 03 Aug 2022 12:53:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://www.suture.app/wp-content/uploads/2022/03/cropped-favicon-32x32.png</url>
	<title>Suture.app</title>
	<link>https://www.suture.app</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">202520741</site>	<item>
		<title>Building Suture.app</title>
		<link>https://www.suture.app/2022/07/30/building-suture-app/</link>
					<comments>https://www.suture.app/2022/07/30/building-suture-app/#respond</comments>
		
		<dc:creator><![CDATA[thame]]></dc:creator>
		<pubDate>Sat, 30 Jul 2022 17:44:12 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://www.suture.app/?p=970</guid>

					<description><![CDATA[While preparing this app for submission, I assigned SKU &#8220;08&#8221;. A couple didn&#8217;t make it to the App Store (either distributed privately or just unfinished) but I&#8217;ve learned a lot over the past few years of app development. A big part is ensuring a sound and extensible foundation. The content is most important and needs [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>While preparing this app for submission, I assigned <a href="https://en.wikipedia.org/wiki/Stock_keeping_unit">SKU</a> &#8220;08&#8221;. A couple didn&#8217;t make it to the App Store (either distributed privately or just unfinished) but I&#8217;ve learned a lot over the past few years of app development. A big part is ensuring a sound and extensible foundation. The content is most important and needs to be structured logically while remaining easily editable. A simple content change shouldn&#8217;t require an app update. Another key learning point is not reinventing the wheel. I&#8217;ve grown comfortable using a suite of tools and relying on components much smarter people have built to make things easier for me.</p>
<div id="attachment_985" style="width: 2338px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-985" class="size-full wp-image-985" src="https://www.suture.app/wp-content/uploads/2022/07/prototype.png" alt="" width="2328" height="1388" srcset="https://www.suture.app/wp-content/uploads/2022/07/prototype.png 2328w, https://www.suture.app/wp-content/uploads/2022/07/prototype-1280x763.png 1280w, https://www.suture.app/wp-content/uploads/2022/07/prototype-980x584.png 980w, https://www.suture.app/wp-content/uploads/2022/07/prototype-480x286.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2328px, 100vw" /><p id="caption-attachment-985" class="wp-caption-text">An early prototype. The final version ultimately maintained many of the key design elements including displaying results in a sheet sliding up from the bottom of the screen.</p></div>
<p>&nbsp;</p>
<h2>The Content</h2>
<div style="width: 410px" class="wp-caption alignright"><a href="https://lucid.app/publicSegments/view/97690d14-ad92-4801-b563-89cc6ea028d8/image.png"><img decoding="async" class="size-full" src="https://lucid.app/publicSegments/view/97690d14-ad92-4801-b563-89cc6ea028d8/image.png" alt="The content model for Suture.app" width="400" height="725" /></a><p class="wp-caption-text">The content model for Suture.app</p></div>
<p>Deciding on the key content elements was fairly simple: locations, repair materials, techniques, etc. The challenge was their relationships and dependencies. I needed a unified, intelligible structure to make processing results easy &#8211; which meant spending time creating a content model. Suture.app content has a few major buckets:</p>
<ol>
<li><strong>Lacerations</strong>: These are locations where lacerations can occur &#8211; organized hierarchically by parent and child locations (e.g. Head &gt; Scalp). Lacerations can have additional properties: depths, shapes and complications which describe the types of lacerations that can occur at the location. For example, this is where &#8220;Galea&#8221; is defined as a potential complication of a scalp laceration.</li>
<li><strong>Repairs:</strong> Every meaningful combination of laceration properties has a defined repair. &#8220;Meaningful&#8221; here means that the combination of laceration properties makes sense (i.e. Not Ear + Galea). Repairs contain specifics like the repair material (e.g. suture, staples, dermal adhesive), specific precautions and prophylaxes. Repairs importantly reference an item in the next content bucket: techniques.</li>
<li><strong>Techniques:</strong> Techniques are articles primarily sourced from <a href="https://lacerationrepair.com/">Closing the Gap</a> with media including videos and images.</li>
<li><strong>Prophylaxes:</strong> The final bucket applies to all lacerations and defines a medication regimen &#8211; subcategorized by wound contamination and immunization history.</li>
</ol>
<p>These content buckets and the relationships among them define all the content in Suture.app. The structure is implemented using <a href="https://wordpress.org/plugins/custom-post-type-ui/">custom post types</a>, taxonomies and <a href="https://wordpress.org/plugins/advanced-custom-fields/">fields</a> in <a href="https://wordpress.org/">WordPress</a>.</p>
<p>&nbsp;</p>
<h2>The App</h2>
<p>The app consumes the WordPress <a href="https://en.wikipedia.org/wiki/API">REST API</a>, drawing the taxonomies and content into separate structures, supporting the interactions necessary to interactively display user-requested content. Helpers are created to manage common interactions like filtering repairs by selected properties. Suture.app (like every other app I&#8217;ve built), uses <a href="https://mobx.js.org/">MobX</a> for state management &#8211; the only reason I&#8217;m able to make any of these things.</p>
<p>Sharing a design motif with <a href="https://nerveblock.app/">Nerve Block</a> just made sense and dramatically simplified branding &#8211; especially since this app is not the only one with a similar scope that is being developed.</p>
<p>The biggest improvement in my workflow building Suture.app was using <a href="https://expo.dev/">Expo</a>. With Expo, every painful step related to building with <a href="https://reactnative.dev/">React Native</a> is abstracted away. Creating and deploying the web version was a single command &#8211; and targeting specific platforms is as easy as adding a file extension. Building for iOS and Android &#8211; which previously required manual configuration in Xcode and Android Studio &#8211; is again converted into a single command and Expo even helps with store submission! I&#8217;ll be using Expo for everything from now on.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.suture.app/2022/07/30/building-suture-app/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">970</post-id>	</item>
	</channel>
</rss>
