<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>a geek trapped in a cool guy&#39;s body</title>
    <link>https://ageektrapped.com/</link>
    <atom:link href="/rss2.xml" rel="self" type="application/rss+xml"/>
    
    <description>Jason Kemp is an amazing developer-slash-genius. He is an iOS developer, with over 15 years experience. This is his website.</description>
    <pubDate>Thu, 06 Jul 2017 13:21:10 GMT</pubDate>
    <generator>http://hexo.io/</generator>
    
    <item>
      <title>I Wrote an iPhone App and Only My Mom Bought It</title>
      <link>https://ageektrapped.com/mom-bought-it/</link>
      <guid>https://ageektrapped.com/mom-bought-it/</guid>
      <pubDate>Wed, 05 Jul 2017 13:36:53 GMT</pubDate>
      <description>
      
        &lt;p&gt;&lt;a href=&quot;https://getmyafter.com&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Project Kapowski&lt;/a&gt; was an idea pinging around my head for a couple of m
      
      </description>
      
      <content:encoded><![CDATA[<p><a href="https://getmyafter.com" target="_blank" rel="external">Project Kapowski</a> was an idea pinging around my head for a couple of months last year. In the summer, I decided to put fingers to keyboard and write the thing.</p>
<p>I wrote about it while I wrote the first version of the app, right here on this blog. I wanted to write about writing an app; what better way than to write an app? Otherwise, articles are just hand-wavy. What people talk about when it comes to apps versus what I observe and experience when I’m writing one are so disjoint. Writing about how an app comes together was therapeutic.</p>
<p>I intended to put the app in the App Store but had no expectations when I started the project.</p>
<p>As I wrote the app, I used it as a user. It was then that I thought it might be successful. It was a thing that could work.</p>
<p>Doing this all on my own, I lost patience and just wanted to ship. I had the core of the app on my phone that was pinging around my head months earlier.</p>
<p>Perfect is the enemy of the good.</p>
<p>So I rushed out <a href="https://getmyafter.com" target="_blank" rel="external">a website</a>, took a week preparing the app store screenshots (they are finicky!), bashed out a quick pre-launch email sequence (with eight sign-ups).</p>
<p>And I shipped!</p>
<p>It went live in early December.</p>
<p>I also wanted the app out before New Year’s Day to catch all those who, resolute for, at most, a month to lose some weight, download any and all apps to give them an edge, including mine.</p>
<p>I started using it myself in earnest, found a bug with the iPhone 7 wide colour screen support causing a button click to be slow. Fixed it. Phew!</p>
<p>I’ll just let the downloads roll in and cash those cheques from Apple!</p>
<p>You already know how this story ends, though.</p>
<p>Even though my rational self had read so much about how hard it was to make money on the app store, I still had this exuberance. I was blind to the flaws of my app and ignored that nobody knows about it.</p>
<p>It was a personal success to get an app on the store. But that’s not enough to make it. On the internet, no one knows you’re a dog. And no one cares if your app doesn’t make it, either.</p>
<p>Except, maybe, your mom, er, my mom. One’s mom?</p>
<p>Only my mom bought it. (Thanks, Mom.)</p>
<p>I’ve had a few more purchases from strangers. I thank them too. (Thanks, strangers). I have a few other close family buy also. (Thanks, close family who aren’t my mom.)</p>
<p>I feel like this app is something worthwhile for others, based on twenty years experience working out, grinding out work out plans, dieting, weighing and measuring. There’s a market for this. The fitness biz is HUGE. I’ve used the app faithfully every week since shipping it. My body has changed, and the app is keeping me honest. I’d like to make this into a successful app that helps people change their bodies.</p>
<p>So what now?</p>
<p>I know the answer, and it doesn’t help that much. I need the following: marketing (so that people know about it); more product development (so there’s more value to whoever downloads it); and a solid business model (so I can continue to improve the app, and, maybe, live off making it).</p>
<p>See? Not helpful. Every $2 Medium writer could (and will) tell me that.</p>
<p>I have to specifically, methodically market and develop the app. I have to change the business model; paid upfront doesn’t work for the fitness category. Or maybe any category?</p>
<p>I’ve read <em>a lot</em> about marketing. I’d say I know too much theory. If you came to me with your marketing problems, I know I’d have something to say. But I’ve never actually put it into practice. The to-do list for marketing is a mile long, and it overwhelms me. But, I’m guessing (or rationalizing) that it’s one of those things that tends to get its momentum as long as you just start.</p>
<p>My marketing plans have been pinging around my brain for about six months now. It’s time to dump it out, make it tangible.</p>
<p>With product development, I’m intimately comfortable. I developed and have been using an app for eight months now. I know where it needs to go.</p>
<p>I have the least experience and comfort with the business model. The method of making money on an app is not where I can innovate. So, I’ll just copy what others do, I reckon.</p>
<p>So, with this post, I start the journey to Kapowski 2.0.</p>
<p>One of the most successful ways to make yourself lose weight is to make yourself accountable to someone else: a coach, trainer, loved one or a fellow fat loss participant. Similarly, I need some accountability to turn Kapowski into a viable business. Rather than pick someone specific, I’ll just choose you, Dear Reader.</p>
<p>And, of course, Mom.</p>
<p>Mom is always watching.</p>
]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>The Agony of Prerelease</title>
      <link>https://ageektrapped.com/agony-of-prerelease/</link>
      <guid>https://ageektrapped.com/agony-of-prerelease/</guid>
      <pubDate>Fri, 18 Nov 2016 13:30:29 GMT</pubDate>
      <description>
      
        &lt;p&gt;The app still has bugs. Even though your devs are concerned about them, in the bigger picture, you’ve just realized you’ve got more important problems: no one knows you’re app is coming.&lt;/p&gt;
&lt;p&gt;Welcome to prerelease. I don’t have much advice to give here: this is new territory for me. I know lots of theory, but I haven’t really applied it to any of my previous apps, or someone else did it. But, this time, I’m going to go through with it. This is learning in action!
      
      </description>
      
      <content:encoded><![CDATA[<p>The app still has bugs. Even though your devs are concerned about them, in the bigger picture, you’ve just realized you’ve got more important problems: no one knows you’re app is coming.</p>
<p>Welcome to prerelease. I don’t have much advice to give here: this is new territory for me. I know lots of theory, but I haven’t really applied it to any of my previous apps, or someone else did it. But, this time, I’m going to go through with it. This is learning in action!<a id="more"></a></p>
<p>There is a period where the app is ready but no one knows about it. I’ve been using it to record my progress; it’s really great. Now I have to start preparing for release.</p>
<p>Let’s go through everything we need to ship in the App Store:</p>
<ul>
<li>an app (duh);</li>
<li>the app store description;</li>
<li>screenshots for the app store description; and</li>
<li>a pre-release website.</li>
</ul>
<p>I’ve written about the app already, except for the code (it’s coming).</p>
<p>Next, the app store entry. This is a big form with a bunch of fields, most of which are pretty straightforward for Kapowski. The toughest one is the description itself. I know exactly why I wrote the app, but how do I get it down to something someone might read? (No one reads these.) Instead of agonizing, I just wrote something and put it up. My pitch will get better with practice. This is a version 1.0.</p>
<p>Here it is below:</p>
<blockquote>
<p>You can never number-crunch your way to a satisfying relationship with your own body.</p>
<p>“Not everything than can be counted counts, and not everything that counts can be counted.” — Albert Einstein</p>
<p>Calorie counting, Fitbits, scale weight: they all stop working. They are unsustainable. I know this because I’ve tried them all. I either got all stressed and no fun because I was obsessing over these numbers; or I’d barely keep it up for a few days because it was too hard, too unnatural. Then I was stuck.</p>
<p>That’s why I decided to write My After.</p>
<p>My After is different.</p>
<p>My After is focused on showing you the results of your transformation. My After lets you easily take photos of yourself from different perspectives every week. Compare each week with the first week.</p>
<p>Get motivated to keep going.</p>
<p>Stay motivated throughout knowing that you have to “weigh-in” every week.</p>
<p>My After makes it easy to form a weekly habit of checking in with yourself. See at a glance if you are staying true to your goals.</p>
<p>No need for a diet plan or workout routine to get started. Start taking pictures every week. The rest will follow!</p>
<p>Features:</p>
<ul>
<li>take photos every week, compare with your “Before”</li>
<li>optionally track scale weight and girth measurements</li>
<li>integrates with Apple Health for body weight</li>
<li>get reminders for your weekly “weigh-in”</li>
<li>no account sign up</li>
<li>securely stores your photos</li>
</ul>
</blockquote>
<p>Next is the app screenshots. These are more important than the description. Apple emphasizes these in the app store entry: this is the store front display. Care must be taken. Even though we, as app developers, don’t control this part ourselves, it’s just as critical as the FUX.</p>
<p>In a way, this is an even shorter pitch than the app description. <em>What’s your app do?</em> I have five screens to show you.</p>
<p>The production of these took about a week: Finding stock before/after photos, putting them in the app, taking screenshots. Get one thing wrong, start again. Gah! I didn’t quite know what I wanted so there was definitely some trial and error. But things came together and I’m quite happy with them. <a href="https://www.dancounsell.com/10-styles-of-app-store-screenshots/" title="10 styles of app store screenshots by Dan Counsell" target="_blank" rel="external">Dan Counsell has an article on screenshot styles that I found enlightening.</a> I decided on a mix of 2 and 3.</p>
<p>I’d love to show them to you, but I just realized while writing this post that creating app screenshots is a post in itself. So, you’ll just have to wait. \&lt;- Marketing!</p>
<p>Finally, the prerelease website: I did this too. Rather than go ground up and take just as long as the app took, I searched for a template, modified to my needs and shipped it. It was better than I could have done from scratch in the time I gave myself to do it. You’re going to see it soon.</p>
<p>The hardest part of prerelease is not rushing it. My patience is thin. I want this out there for people to use.</p>
<p>I’m pretty sure it was Wes Anderson, but who knows. He was on The Late Show with David Letterman in the late 90s, a quirky director of quirky movies. He said  it was miracle any movie got made because just showing up near the end was so hard. It’s a slog, in other words. I know that feeling.</p>
<p>We’re close now.</p>
]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>Kapowski’s App Icon</title>
      <link>https://ageektrapped.com/kapowski-icon/</link>
      <guid>https://ageektrapped.com/kapowski-icon/</guid>
      <pubDate>Tue, 01 Nov 2016 12:13:09 GMT</pubDate>
      <description>
      
        &lt;p&gt;There’s a term with which you should be familiar if you deal with software development in any capacity: bike-shedding. The term bike-shedding represents a metaphor to illustrate the &lt;a href=&quot;https://en.wikipedia.org/wiki/Law_of_triviality&quot; title=&quot;Members of an organisation give disproportionate weight to trivial issues.&quot;&gt;Law of Triviality&lt;/a&gt;. Essentially, imagine a board meeting discussing construction of a nuclear power plant; most of the time will be spent arguing the materials of the bike shed rather than the more important, but complex, construction of the plant itself.&lt;/p&gt;
&lt;p&gt;Software development is rife with bike shedding.&lt;/p&gt;
&lt;p&gt;Imagine developers in a room: they will agonize over spaces in a file or where the curly brace goes. Yet their app is drowning in over-engineered “frameworks” that no one understands.&lt;/p&gt;
&lt;p&gt;Wait, it gets worse: if there is anyone non-technical in the room, the only thing the group can all reason about is user facing stuff: images, icons, colours, animations. This stuff matters, yes, but quite a bit less than anyone thinks.&lt;/p&gt;
&lt;p&gt;So, who wants to do some bike-shedding on Kapowski’s App Icon?
      
      </description>
      
      <content:encoded><![CDATA[<p>There’s a term with which you should be familiar if you deal with software development in any capacity: bike-shedding. The term bike-shedding represents a metaphor to illustrate the <a href="https://en.wikipedia.org/wiki/Law_of_triviality" title="Members of an organisation give disproportionate weight to trivial issues." target="_blank" rel="external">Law of Triviality</a>. Essentially, imagine a board meeting discussing construction of a nuclear power plant; most of the time will be spent arguing the materials of the bike shed rather than the more important, but complex, construction of the plant itself.</p>
<p>Software development is rife with bike shedding.</p>
<p>Imagine developers in a room: they will agonize over spaces in a file or where the curly brace goes. Yet their app is drowning in over-engineered “frameworks” that no one understands.</p>
<p>Wait, it gets worse: if there is anyone non-technical in the room, the only thing the group can all reason about is user facing stuff: images, icons, colours, animations. This stuff matters, yes, but quite a bit less than anyone thinks.</p>
<p>So, who wants to do some bike-shedding on Kapowski’s App Icon?<a id="more"></a></p>
<p>For all my talk about bike-shedding and how trivial things take up time, I spent a lot of time agonizing over the app icon. Perhaps, it’s because there was no one to call me on the bike-shedding. Perhaps it’s because this is the first time I said to myself that I’m capable of doing the icon (all my other apps where done exclusively by me, <em>except the icon</em>). Whatever the reason, the icon got a lot of attention. I’m not sure what’s normal for designers to spend on an icon, but let’s say I spent a solid week on it, 40 hours.</p>
<p>I decided early on that I’d be the one to do the icon. I was expecting it to be some minimal thing to represent the before and after: Two rectangles adjacent, one filled in. I can do that and it’s de rigueur. Round the corners, add a colour. Boom. Done. I’m an icon maker!</p>
<p>But I can rarely leave anything alone. Who’s got two thumbs and takes things to extremes? This guy!</p>
<p>I started thinking through the problem Kapowski solves a little more thoroughly. It let’s anyone easily track progress while they’re changing their bodies. The thing about changing bodies is that, to make the transformation last, the process involves changing lives: you need to change your values, your habits, what you do, with whom you do it. And it’s not an overnight thing, it’s more of a gradual set of changes that compounds. Whoa, that’s serious. But, pull it off: seriously awesome. What else is awesome? Fuckin’ rainbows.</p>
<p>What if instead of a drab solid colour, the after was represented by a rainbow of colours?</p>
<p>I fired up Photoshop. I forgot that I hated Photoshop before I fired it up, but after struggling with the gradient tool and importing a sunburst from Illustrator and all kinds of <em>shit</em>, I fired up Sketch. I reproduced what I did in Photoshop in a half hour. Cool. I’mma stick with Sketch.</p>
<img src="/kapowski-icon/Icon-Original.png" alt="Icon-Original.png" title="">
<p>This was my first draft. It…was not what I pictured my mind. That’s a rainbow, sure, but it’s covered in mud. Who wants a muddy after rainbow? And that drab grey on the end doesn’t work the way I want</p>
<p>There were many more prototype rainbows. But I finally got to something I liked.</p>
<img src="/kapowski-icon/Rainbow.png" alt="Rainbow.png" title="">
<p>Gorgeous! But, it’s missing something, isn’t it?</p>
<p>I tried a few more things to make it bit more symbolic, or icon like or something. They all sucked.</p>
<img src="/kapowski-icon/examples.png" alt="examples.png" title="">
<p>What now?</p>
<p>While designing the icon, I was also searching for stock photos of silhouettes for buttons in Kapowski. I was looking for sterile poses of front, side and back, to represent the perspectives for which you would take photos. If you’ve been following Kapowski closely, you’ve seen the fruits of those searches. While searching for those images, a few interesting poses caught my eye; I couldn’t use them in the app, but would they work in the icon?</p>
<img src="/kapowski-icon/Icon-Lady.png" alt="Icon-Lady.png" title="">
<p>Hell yes, they will.</p>
<p>That’s a pretty sweet icon.</p>
<p>I suspect—without any specific evidence—that this app will be used by women more than men. I’m probably skewing it more by using a rainbow. But I’d be outright forcing the skew if I kept the icon like this. And I don’t want to limit the audience, despite this being the best representation of the idea in my opinion.</p>
<p>So, after more searching and some tweaking, we finally have Kapowski’s icon</p>
<img src="/kapowski-icon/kapowski.png" alt="kapowski.png" title="">]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>First User Experience in Kapowski</title>
      <link>https://ageektrapped.com/fux-in-kapowski/</link>
      <guid>https://ageektrapped.com/fux-in-kapowski/</guid>
      <pubDate>Mon, 24 Oct 2016 20:55:14 GMT</pubDate>
      <description>
      
        &lt;p&gt;What’s this app for again?&lt;/p&gt;
&lt;p&gt;Oh, right. Make it easy, and habit forming, to take photos and measurements to track progress during physique transformation.&lt;/p&gt;
&lt;p&gt;It’s not a complicated premise. I assume most people are aware of before and after photos.&lt;/p&gt;
&lt;p&gt;Ew. That last sentence made my programmer spider sense tingle. Let me be more precise: those interested in physique transformation (fat loss, muscle gain) have presumably browsed websites related to exercise and fat loss. One cannot go to those sites and not see a before and after photo comparison.&lt;/p&gt;
&lt;p&gt;My hope is that some of those who are so motivated search the app store for the best app in the store that does that: Kapowski!&lt;/p&gt;
&lt;p&gt;Let’s go through what they’ll be greeted with when the open the app for the first time.
      
      </description>
      
      <content:encoded><![CDATA[<p>What’s this app for again?</p>
<p>Oh, right. Make it easy, and habit forming, to take photos and measurements to track progress during physique transformation.</p>
<p>It’s not a complicated premise. I assume most people are aware of before and after photos.</p>
<p>Ew. That last sentence made my programmer spider sense tingle. Let me be more precise: those interested in physique transformation (fat loss, muscle gain) have presumably browsed websites related to exercise and fat loss. One cannot go to those sites and not see a before and after photo comparison.</p>
<p>My hope is that some of those who are so motivated search the app store for the best app in the store that does that: Kapowski!</p>
<p>Let’s go through what they’ll be greeted with when the open the app for the first time.<a id="more"></a></p>
<img src="/fux-in-kapowski/example.png" alt="The first four screens of Kapowski FUX" title="The first four screens of Kapowski FUX">
<p>The first screen, left most in the figure above, is a bog standard welcome screen. We describe what Kapowski does, motivates where it fits (this could be a tad more precise now that I write about it), and make the user take action right away with that big button at the bottom. (Could there be some foreshadowing in that text? Hmm.)</p>
<p>The second screen, the sex picker, is pretty straightforward: pick the sex with which you identify; the UI changes accordingly, only showing representations of that sex. This screen caused me no end of hand wringing.</p>
<p>Sex is a spectrum, or something? I honestly don’t understand it but I’m sensitive to the need for those that feel they are not either sex. The code is much simpler if I limit to just male and female. I don’t suspect Kapowski’s user base to be much more than tens of thousands; at that size, the potential user population that would require an ‘other’ option is too small for the engineering effort. Software needs to be inclusive to succeed, though. If Kapowski blows up, I’ll revisit this.</p>
<p>The next screen: mode selector, I call it. This is inspired from video games with an easy, normal and hard option: this has changed as I’ve aged to default, nightmare and nightmare plus darkness, or something similar. I originally had easy, normal, hard, but I prefer the terms I chose instead: Stress-free, default, obsessive.</p>
<p>There are those that punish themselves with fitness; they feel that it’s supposed to hurt to work well. I’m a recovering one of those. Sticking with easy, normal, hard was sending the wrong message, I thought. You want hard mode, keep it in the workouts. There is no virtue in taking tape measurements, or measuring scale weight as long as progress is apparent. Photos can show progress just as easily; not that photos themselves aren’t stressful. I’ve been take some of myself: yeesh!</p>
<p>Hence:</p>
<ul>
<li><em>Stress free</em> which sets up Kapowski to only track photos from front, left, and right in the measurement screen. It also sets up a local push notification to remind you it’s weigh in day.</li>
<li><em>Default</em> which sets up Kapowski to track photos (same as Stress-free)  and scale weight. It sets up a local push as well.</li>
<li><em>Obsessive</em> which adds waist and hips measurements to Default. “Obsessive” may be a bit on the nose, but it’s the only time we get a little preachy.</li>
</ul>
<p>The next screen met with much vacillation on my part as well: we need permission to use notifications and integrate with Apple Heath. <a href="https://ageektrapped.com/happy-path-or-brick-wall/" title="Happy Path or Brick Wall?">I have to ask sometime.</a> There is evidence that telling users we’re going to prompt them with the permission dialog, as opposed to just showing those screens, is much more successful. That’s all this screen does. It’s the only skippable screen. I vacillated on the inclusion of Apple Health, for…reasons. I decided to just go ahead and include it.</p>
<p>Finally, we have the first weigh-in screen, in three versions depending on the selected mode, depicted below. There are slight differences between it and the standard weigh in screen: a prompt to make your before pics right now and the units selector. The units selector is because I’m Canadian and <a href="https://ageektrapped.com/measurement-settings-screen-teardown/" title="Wherein I expand on how messed up Canadians are">sensitive to units as only Canadians can be</a>.</p>
<img src="/fux-in-kapowski/example-1.png" alt="The First Weigh-In Screen, depending on mode." title="The First Weigh-In Screen, depending on mode.">
<p>Tap Done on the weigh-in screen and you’re kicked into the app proper where we count down to the next weigh-in. You must complete the FUX or keep doing the FUX until you do. Restart the app and you start where you left off. And almost no code to do so. Thanks, Apple!</p>
<p>Writing this blog post forced me to reconsider whether I’m doing enough. Time will tell. Onboarding is one spot in an app where analytics makes sense. I’ll make a note right now to follow up in a few months. As I said about the FUX last time, there’s a tension involved between giving users what they need to know to get started and being exhaustive. I still think I’ve struck a nice balance here.</p>
<p>We’ll know shortly. The release is coming. Stay tuned.</p>
]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>What’s the Deal with Those Purple Blobs?</title>
      <link>https://ageektrapped.com/purple-blobs/</link>
      <guid>https://ageektrapped.com/purple-blobs/</guid>
      <pubDate>Thu, 29 Sep 2016 11:31:28 GMT</pubDate>
      <description>
      
        &lt;p&gt;Remember how I said normals can’t visualize user interfaces without a picture of the user interface in front of them? To be completely clear, I classify normals as anyone who is not an app/front end web developer. Without at least a poorly executed hand-drawn sketch of a screen in an app, everyone else is lost.&lt;/p&gt;
&lt;p&gt;I’ve also found that as that hand-drawn sketch gets better, goes digital and gets closer and closer to what everyone thinks will be the final look for the app, normals have a tough time distinguishing between that mockup and the final app. Ditto for “prototyping apps” like Invision.&lt;/p&gt;
&lt;p&gt;The screen &lt;em&gt;is&lt;/em&gt; the app to them. That screen is also the network and the server, or servers on the other end of those network calls.&lt;/p&gt;
&lt;p&gt;Making the actual app look like that mockup, whereever it came from, is the app developer’s job.
      
      </description>
      
      <content:encoded><![CDATA[<p>Remember how I said normals can’t visualize user interfaces without a picture of the user interface in front of them? To be completely clear, I classify normals as anyone who is not an app/front end web developer. Without at least a poorly executed hand-drawn sketch of a screen in an app, everyone else is lost.</p>
<p>I’ve also found that as that hand-drawn sketch gets better, goes digital and gets closer and closer to what everyone thinks will be the final look for the app, normals have a tough time distinguishing between that mockup and the final app. Ditto for “prototyping apps” like Invision.</p>
<p>The screen <em>is</em> the app to them. That screen is also the network and the server, or servers on the other end of those network calls.</p>
<p>Making the actual app look like that mockup, whereever it came from, is the app developer’s job.<a id="more"></a></p>
<p>I’ve found, however, that going right to the pretty version causes a lot of confusion.</p>
<p>“Oh wow, this looks great! It’ll be ready next week then?” the client asks.</p>
<p>“Um, no,” you say, exasperated. “We’re months away from shipping.”</p>
<p>Then everyone is resentful on both sides.</p>
<p>Creating a pixel perfect screen in code to look exactly like the mockup is pretty easy to do…if everything is fake. In other words, if we only concern ourselves with cosmetics, most seasoned iOS developers can have it working on iPhone and iPad within a half hour, no matter how crazy the screen is. But start adding or removing copy based on some logic, image loading based on logic, data fetching across a network: you know, the useful part of an app, takes a lot longer than anyone realizes, even the developers.</p>
<p>So, here’s the thing: don’t show them the pretty screen until the end. Make the UI reflect the state of things in all the code. Show tab bars without images on the very first demo. Have hard-coded pictures of Matthew McConaughey in there. As more features become functional, spruce up the UI.</p>
<p>It may seem disingenuous, but it’s really the only way to reflect the progress in an app to someone who is not technical.</p>
<p>I’ve always known this. Or rather, I can’t remember a time when I didn’t know this, but that must not be true. I haven’t always been a software developer.</p>
<p>Turns out—and this is true of most of the advice I’ve spewed in this series—Joel Spolsky said it first. And better. What I’ve just explained is the <a href="http://joelonsoftware.com/articles/fog0000000356.html" title="The Iceberg Secret, Revealed by Joel Spolsky" target="_blank" rel="external">Iceberg Secret</a>.</p>
<p>That’s why, if you troubled yourself to look at the Zeplin screens, you’d see purple blob people instead of actual people. This rule is so ingrained, even my mockups have to look the part of doing <a href="https://ageektrapped.com/just-enough">just enough</a>.</p>
]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>The Tension in a Good FUX</title>
      <link>https://ageektrapped.com/tension-good-fux/</link>
      <guid>https://ageektrapped.com/tension-good-fux/</guid>
      <pubDate>Wed, 21 Sep 2016 12:08:35 GMT</pubDate>
      <description>
      
        &lt;p&gt;You are on some company’s website, interested in their product. It’s packed with features you need. The screenshots look fabulous: So many gradients! You make the decision to download the trial. You click download on the menu, navigate to the download page. There’s a form with 10 text boxes to fill out. You close the browser tab.&lt;/p&gt;
&lt;p&gt;This is often the case for enterprise software: they want to vet you right away to see if you’re a good candidate to go after. It could mean martini lunches and golf trips for the sales guys, while the developers work extra hard back at the office getting that TPS report cover letter generator feature working. Sigh, you can probably tell which group I was in.
      
      </description>
      
      <content:encoded><![CDATA[<p>You are on some company’s website, interested in their product. It’s packed with features you need. The screenshots look fabulous: So many gradients! You make the decision to download the trial. You click download on the menu, navigate to the download page. There’s a form with 10 text boxes to fill out. You close the browser tab.</p>
<p>This is often the case for enterprise software: they want to vet you right away to see if you’re a good candidate to go after. It could mean martini lunches and golf trips for the sales guys, while the developers work extra hard back at the office getting that TPS report cover letter generator feature working. Sigh, you can probably tell which group I was in. <a id="more"></a></p>
<p>Conversely, I’m sure you’ve been asked to just enter just your email address. Then follow-up emails start showing up with subjects like, <em>Dear Neonballs, how is your software going</em> or <em>Hey studmuffin86, having trouble getting started?</em>. These are amusing in their clumsiness: you’re likely not going to use that software either.</p>
<p>These are analogous to the First User Experience (FUX) of an app.</p>
<p>If the onboarding is long and convoluted, people will just stop halfway through; conversely, slam a login/signup screen in their faces first thing, they won’t sign up.</p>
<p>I’ve noticed the latter in many health and fitness apps. I find it presumptuous on the app maker, but I don’t have their numbers. I usually just close the app right away. Good thing Kapowski has no accounts to speak of—well, for this version \<shit-eating grin="" emoji\="">.</shit-eating></p>
<p>So what makes a good FUX?</p>
<p>A good maxim for any good user experience is: <em>don’t waste the user’s time</em>. Those fancy loading screens? Spend the time perfecting caching on the server and client instead, so you don’t need a fancy loading screen. Also, just use a spinner. No one cares about your loading screen.</p>
<p>Netflix has a great user experience: Pick the profile. Tap once more, you’re watching a show. They realize no one gives a shit about Netflix, the brand; people want to watch their show. Netflix doesn’t waste my time.</p>
<p>Every website that’s all parallax and stock photos? Where it’s not obvious what’s a link? Pretty, but wasting time.</p>
<p>Within your app, don’t waste their time with anything that doesn’t serve the purpose of using the app. Keep animation short and subtle, don’t use too much colour in the chrome. Make it fast and obvious.</p>
<p><a href="https://ageektrapped.com/first-user-experience/">Remember my analogy last time about a big splash versus ripples in the water?</a></p>
<p>The first time is wildly different than every other time a user opens your app.</p>
<p>The first time, they don’t know what’s going on; it’s all new.</p>
<p>A good FUX is slower paced than the app, but not too slow; it’s prettier than the app, but not too pretty. A good FUX informs but doesn’t drone on. And, also, it doesn’t waste the user’s time. What’s truly important to know or configure in your app? That goes in the onboarding flow. For everything else, pick sensible defaults.</p>
<p><a href="https://ageektrapped.com/pithy-phrase/" title="What&#39;s the pithy phrase you use to describe your app/site/thing?">Apps require a pithy phrase to describe their value.</a> It’s always good to return to that when in doubt.</p>
<p>We’ll go through the Kapowski FUX next time.</p>
]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>First User Experience</title>
      <link>https://ageektrapped.com/first-user-experience/</link>
      <guid>https://ageektrapped.com/first-user-experience/</guid>
      <pubDate>Mon, 19 Sep 2016 12:22:33 GMT</pubDate>
      <description>
      
        &lt;p&gt;The water below is a sheet of glass. The sun is just peaking up over the trees, but it is already hot out; hot enough to consider jumping in the lake this early in the morning. From where you stand, there is a 3m drop to the water. It’s easier to get in by the dock, but the water is a deep enough here to safely jump in from this height. There’s a thrill jumping from this height, a little trepidation too, for the first jump of the day.&lt;/p&gt;
&lt;p&gt;You jump feet first. Within a second, you’re in the water; the serene surface broken by froth of your entry, ripples in the surface emanating from where you entered the water. You did it: the first jump of the day.&lt;/p&gt;
&lt;p&gt;Great. But why doesn’t anyone think about the poor water?&lt;/p&gt;
&lt;p&gt;Imagine you are a lake. It’s a pleasantly warm day so far, but even if it gets really hot, you’re a lake; it’s ok. There’s no breeze. All of a sudden you’re surface is wrecked with a big splash by some &lt;em&gt;doofus&lt;/em&gt; in board shorts and a bad haircut. Right in your good water! You love that water. Now it’s all over the place. &lt;em&gt;What a mess.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The very first time you open an app, you’re the water. What would make that less traumatic?
      
      </description>
      
      <content:encoded><![CDATA[<p>The water below is a sheet of glass. The sun is just peaking up over the trees, but it is already hot out; hot enough to consider jumping in the lake this early in the morning. From where you stand, there is a 3m drop to the water. It’s easier to get in by the dock, but the water is a deep enough here to safely jump in from this height. There’s a thrill jumping from this height, a little trepidation too, for the first jump of the day.</p>
<p>You jump feet first. Within a second, you’re in the water; the serene surface broken by froth of your entry, ripples in the surface emanating from where you entered the water. You did it: the first jump of the day.</p>
<p>Great. But why doesn’t anyone think about the poor water?</p>
<p>Imagine you are a lake. It’s a pleasantly warm day so far, but even if it gets really hot, you’re a lake; it’s ok. There’s no breeze. All of a sudden you’re surface is wrecked with a big splash by some <em>doofus</em> in board shorts and a bad haircut. Right in your good water! You love that water. Now it’s all over the place. <em>What a mess.</em></p>
<p>The very first time you open an app, you’re the water. What would make that less traumatic?<a id="more"></a></p>
<p>Any software project that you’ve been working on for months becomes a part of you. It becomes hard to imagine your life without that project. Near the project’s end, there’s nothing you don’t know about it. You are intimately familiar with every detail, every interaction, every concept underlying that project. Everything makes sense to you.</p>
<p>Then you ship it or show your friends a beta version. Chances are you are met with blank stares. OK, maybe if you’re building <em>Facebook, but for dogs</em> or <em>Uber, but for bakers</em>, they might be able to grasp it. Otherwise, there’s a disconnect from your familiar use—the ripples in the lake—to their very first use—the giant splash. If you just throw them right in, the experience might just turn them off your app completely.</p>
<p>Reducing that disconnect is the difference between high user churn and a successful app.</p>
<p>This is typically called onboarding, but I recently saw the acronym FUX (First User Experience) to describe the same concept. I like this name much better. Juvenile, perhaps, but will you ever forget the concept, or its importance, if it’s called FUX?</p>
<p>The underlying principle to the FUX is: <strong>get them most familiar with the app with minimum friction</strong>.</p>
<p>They’ve heard of the benefits of the app from somewhere: you’re marketing efforts, your app description, a friend; something somewhere has compelled them to install your app. This is a hot lead, folks. The FUX should keep them hot. We don’t want to dent their enthusiasm.</p>
<p>The FUX let’s them know: there’s a splash coming but everything’s fine.</p>
]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>Happy Path or Brick Wall</title>
      <link>https://ageektrapped.com/happy-path-or-brick-wall/</link>
      <guid>https://ageektrapped.com/happy-path-or-brick-wall/</guid>
      <pubDate>Wed, 14 Sep 2016 12:08:57 GMT</pubDate>
      <description>
      
        &lt;p&gt;I’ve started integrating Apple frameworks into Kapowski.&lt;/p&gt;
&lt;p&gt;Rather, I’ve started being a pathological user and realizing my integration is woefully inadequate. What’s a pathological user, you ask? A dickhead, basically.
      
      </description>
      
      <content:encoded><![CDATA[<p>I’ve started integrating Apple frameworks into Kapowski.</p>
<p>Rather, I’ve started being a pathological user and realizing my integration is woefully inadequate. What’s a pathological user, you ask? A dickhead, basically.<a id="more"></a></p>
<p>By being a dickhead, you uncover all sorts of problems in your app that should be fixed. Good QA people are, yes, dickheads. If you’re not totally annoyed with your QA almost always, they’re not good QA.</p>
<p>Almost everyone thinks about just the Happy Path within a feature. The happy path, if you haven’t heard the term, is when the user instantly grasps what they must do and use a feature exactly as the design intended. This almost never happens. If you only account for the happy path in your design, you discover all the other terrible, error-riddled paths when actual users use your app.</p>
<p>Integrating parts of iOS into your app have the potential to really hamstring the experience. Apple requires getting permission from the user for apps to use parts of the system. This is best for users. As a user, I want developers to jump through hoops to do something, to consider the ramifications of their decision to work with that particular part of the system.</p>
<p>For shits and giggles, go into Settings -> Privacy -> Camera and deselect Instagram or Facebook or something popular. I’ll use Instagram as an example since I just did this with Instagram, while writing this sentence. You just suddenly revoked Camera access to an app that’s all about Photos. Open the app. They handle it <em>okay</em>: my audio got all screwed up and I just see a black square when I launch the camera. But I didn’t crash and the other tabs worked just fine.</p>
<p>This may be intentional on Instagram’s part; I suspect it is: there’s no way they haven’t tested this part of their app.</p>
<p>Anyway, try it in less popular apps and with other services, you might not get very far in that app with that stuff turned off.</p>
<img src="/happy-path-or-brick-wall/cancelorallow.png" alt="You're coming to a sad realization. Cancel or allow?" title="You're coming to a sad realization. Cancel or allow?">
<p>You can get into all sorts of shenanigans by tapping “Don’t Allow”.</p>
<p>You can wish they didn’t tap “Don’t Allow”, but some will; <a href="https://ageektrapped.com/a-dark-pattern-for-the-force-of-good/">I even recommend you tap Don’t Allow with push notifications in almost all apps—except Kapowski, of course</a>.</p>
<p>You have to handle the Disallow case in your app. Not crashing is the bare minimum.</p>
<p>For some features, like Push Notifications, the app should function <em>exactly</em> the same with or without permission. Push notifications are a good way to get timely information <em>or</em> have a shortcut into a part of the app that’s relevant at the time. Disallowing push should have very little impact on the user.</p>
<p>But other services require hassling the user a little more. Kapowski is a mobile app because of taking photos with the built-in camera. This app needs permission to use the camera to do its job. The user can deny access. What then?</p>
<p>First, don’t assume they’re a dickhead. They may have tapped “Don’t Allow” by mistake, or perhaps they are wary users because they’ve been burned before; there’s a reason Apple introduced asking for permission for the camera. They need a way to recover from tapping “Don’t Allow”.</p>
<p>Apple doesn’t make this easy for app developers to do for a user; the user has to do it on their own. The most an app developer can do is prompt them with an alert to open Settings and give permission. This is what Kapowski does now for the Camera and the Health app. And, I just realized while writing this post, I need to do the same with Photos for the advanced setting of adding photos to the camera roll.</p>
<p>So it goes.</p>
<p>I’m coming to a sad realization that there’s more work to do. Cancel or allow?</p>
<div class="video-container"><iframe src="//www.youtube.com/embed/FxOIebkmrqs" frameborder="0" allowfullscreen></iframe></div>
]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>A Dark Pattern for the Force of Good?</title>
      <link>https://ageektrapped.com/a-dark-pattern-for-the-force-of-good/</link>
      <guid>https://ageektrapped.com/a-dark-pattern-for-the-force-of-good/</guid>
      <pubDate>Mon, 12 Sep 2016 12:34:20 GMT</pubDate>
      <description>
      
        &lt;p&gt;Do you get a lot of push notifications? You probably got, like, eight just reading this sentence.&lt;/p&gt;
&lt;p&gt;Every app seems to want to push something to you.
      
      </description>
      
      <content:encoded><![CDATA[<p>Do you get a lot of push notifications? You probably got, like, eight just reading this sentence.</p>
<p>Every app seems to want to push something to you. <a id="more"></a></p>
<p>The Apple App Review Guidelines state, section 4.5.4 (emphasis mine):</p>
<blockquote>
<p>Push Notifications must not be required for the app to function, and <strong>should not be used for advertising, promotions, or direct marketing purposes</strong> or to send sensitive personal or confidential information</p>
</blockquote>
<p>What is a push notification from the Facebook app but an advertisement telling you you’re not on Facebook right now? That is why you get them if you allow notifications from Facebook. You likely don’t care that Aunt Mildred likes the same cat-falls-off-the-roof video you do. But Facebook wants you to care, wants you to open the app from that notification, spend five minutes looking posts that include ads so Facebook makes money. The push notification is about them, not about you.</p>
<p>Your human brain is wired to notice notifications and act upon them. Companies know this.</p>
<p>My personal use of notifications has dropped dramatically since I made the conscious choice to disallow them unless I could obviously benefit from that particular app giving me notifications. I think I only have two or three apps with push turned on, out of 10-12 that I use regularly. Writing this post is making me consider turning it off for one of them. (As I was writing this, I did an audit of apps that could notify me: it was much higher than three. I turned a few off but kept most on. I had forgot most of them because I don’t get push notifications regularly from those apps. When I’m flying, Air Canada can push to me, for example.)</p>
<p>It is tremendously freeing to not get notified. I can’t quite pay attention like I was able to before I had a mobile device, but it’s way better without push notifications. I’m sure it would be even better without Twitter and Instagram, but people without vices are boring.</p>
<p>If you’d like to start to live distraction free, I suggest just turning the sound off notifications. <a href="http://timewellspent.io" target="_blank" rel="external">There are other tips on timewellspent.io</a>.</p>
<p>I don’t want this to be a polemic against push notifications; they <em>are</em> useful in various contexts. I want Messages notifications, for example. But they are an insidious time suck when not useful, benefiting the app, not the user. We only have so many hours in our life. I am wary of them; we should all be.</p>
<p>And now the rub: should I have them in Kapowski?</p>
<p>Kapowski would have two, maximum, local user notifications. One, to remind you of your upcoming weigh-in; the second, to tell you it’s weigh-in day. Both are optional, of course.</p>
<p>Let’s go through the whole premise of Kapowski again (always useful when in doubt about a feature). Kapowski makes it easy to track progress during a physique transformation by ingraining a habit of measuring yourself once a week and keeping the measurements all in one place. The pressure of a photo shoot in your underwear every week might just make you put the fork down early and exercise just a bit more. (That’s what I’m hoping it does for me.)</p>
<p>The point of Kapowski is to form the habit. The ideal use of Kapowksi is once a week. Take picture; compare from the before photo; close ’til the next week.</p>
<p>Notifications are a good way to nudge people to form a habit. If you’re not used to weekly weigh-ins, then a notification is a modest little reminder.</p>
<p>I have to check if the app can clear notifications on the user’s behalf (I’m pretty sure this is the case).</p>
<p>Then we will have everything I’d like in a notification as a user: an ethereal reminder mid-week: “If you’re not allergic you should eat more broccoli.” <em>Huh? What is this? Oh, yeah! I have a weigh-in on Saturday.</em></p>
<p>Then, on the day: “You should weigh in today. Why not now?”</p>
<p>I don’t think that’s too pushy.</p>
]]></content:encoded>
      
      
    </item>
    
    <item>
      <title>Progress Update on Kapowski &amp;#35;2</title>
      <link>https://ageektrapped.com/update-2/</link>
      <guid>https://ageektrapped.com/update-2/</guid>
      <pubDate>Fri, 09 Sep 2016 11:59:11 GMT</pubDate>
      <description>
      
        &lt;p&gt;It’s been almost a month since the last update. Even though I haven’t been writing as often as I’d like about the work, the work is happening.&lt;/p&gt;
&lt;p&gt;There is a point in a project when there are no more questions to ask. Everything major has been dealt with at least, but perhaps solved entirely. The rest of the work is following those decisions to their end, filling in the necessary details to embed those decisions in the code.&lt;/p&gt;
&lt;p&gt;We are at that point with Kapowski.
      
      </description>
      
      <content:encoded><![CDATA[<p>It’s been almost a month since the last update. Even though I haven’t been writing as often as I’d like about the work, the work is happening.</p>
<p>There is a point in a project when there are no more questions to ask. Everything major has been dealt with at least, but perhaps solved entirely. The rest of the work is following those decisions to their end, filling in the necessary details to embed those decisions in the code.</p>
<p>We are at that point with Kapowski.<a id="more"></a></p>
<p>It is overwhelming right before I realized I had reached that point: all the details that still need to be worked on are swimming in my head and I flit quickly among the different threads of user interface, code, icon design, pre-launch website, etc.</p>
<p>It’s at this point, where, for real, you need to write shit down. Not just on a piece of paper, like an old-school to-do list. I’m talking about an issue database, a bug tracker, Trello, Basecamp: software with which you can manipulate that list.</p>
<p>This is also the point where you can truly pick your ship date and rely on it. I’m not going to announce anything in this blog post. <a href="https://ageektrapped.com/ship-on-time/">I’ve already slipped once.</a></p>
<p>You can pick the date because the creative part is largely over. Copy still needs to be written, imagery created, but the spots in the app UI where those will go are known. The purpose (the what) of the app is now fully realized; the method in which it fulfills that purpose (the how) is known.</p>
<p>The process to get the how fully realized is straightforward; <em>straighforward</em>—mind you—not easy. There will still be hiccups, but from this point on, there should be no ground-shaking fundamental changes, where all assumptions are upended. Any epiphanies from this point must wait until Version 2.</p>
<p>And it is a <em>process</em> as well. I use process here as in a formal process because really <em>everything</em> is a process. I’m a product team of one and even I need a process. We’ll come back to process later.</p>
<p>On to the update:</p>
<p>Take a look at the <a href="https://scene.zeplin.io/project/5797ba038bf3b6f003013ea5" target="_blank" rel="external">Zeplin Scene</a> and you may notice, if you’ve been there before, that <a href="https://scene.zeplin.io/project/5797ba038bf3b6f003013ea5/screen/57ae0f35eee63bf60898903c" target="_blank" rel="external">Settings</a> got a big overhaul. I figured out what Reminders will be (we’ll come back to that); I added the obligatory Feedback and About rows as well; and we added an <a href="https://scene.zeplin.io/project/5797ba038bf3b6f003013ea5/screen/57d00833c0dc67ef718d1dbd" target="_blank" rel="external">Advanced section for settings</a>.</p>
<p>I had the notion of the obsessive measurer wanting to weigh in daily. I want to let them if it makes them feel good (some people might need it for a while). But I don’t want to distract what I think will be the majority of people with an extra button on the home screen if they don’t need it. So, that explains the first toggle, Weigh In Anytime. I’m not quite sold on that capitalization, but that’s easy to fix.</p>
<p>The second (so far) advanced setting is enabling saving the photos taken in Kapowski in the Camera Roll. Not sure if that will be on by default.</p>
<p>The Weigh In screen got a bit of a refresh. I was not happy with the layout of those measurement rows. I’m still not that keen on them, but hey, we gotta ship. And I’m not sure what else to do. You’ll notice three versions; they correspond to the three modes I introduce in the FUX, which is not in Sketch/Zeplin yet. Did I mention I love the term FUX? We’ll talk more about that soon.</p>
<p>Finally, <a href="https://scene.zeplin.io/project/5797ba038bf3b6f003013ea5/screen/5797bac95c4aecb07434c5ca" target="_blank" rel="external">the Home screen</a> got a slight make over as well. There was a problem with my initial just enough design: if I get users to take pictures from more than one perspective, how do I show them all on the home screen for them to easily compare. I had a few draft ideas that honestly—in retrospect—sucked. Then it hit me: little images in the corner. Duh! Obviously awesome. Click the little image to change the perspective in the big image. Cycle endlessly through them.</p>
<p>Another change that isn’t reflected in the visuals: see that All button? It’s gone. Again, the app requires a way to see all weigh ins. The just enough design did it poorly. Instead, the weigh-ins between before and after are “under” the before and you can scroll back in time to the first after photo. I want to do more to manage the weigh-ins—so much more.</p>
<p>But any further revelations must wait until Version 2.</p>
]]></content:encoded>
      
      
    </item>
    
  </channel>
</rss>
