<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tyron Barlow-Kearsley</title>
    <description>The latest articles on DEV Community by Tyron Barlow-Kearsley (@tyronasaurus_dev).</description>
    <link>https://dev.to/tyronasaurus_dev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F216491%2Fbb69d0ad-909f-4c74-b4cb-cd889a89fdd7.jpg</url>
      <title>DEV Community: Tyron Barlow-Kearsley</title>
      <link>https://dev.to/tyronasaurus_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tyronasaurus_dev"/>
    <language>en</language>
    <item>
      <title>Is Prototyping necessary?(UX/UI)</title>
      <dc:creator>Tyron Barlow-Kearsley</dc:creator>
      <pubDate>Fri, 30 Aug 2019 11:54:42 +0000</pubDate>
      <link>https://dev.to/tyronasaurus_dev/why-is-prototyping-necessary-ux-ui-16po</link>
      <guid>https://dev.to/tyronasaurus_dev/why-is-prototyping-necessary-ux-ui-16po</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Beginning development on a project without a prototype is like trying to drink water using only your tongue, you can do it but it will take longer.&lt;/p&gt;

&lt;p&gt;Think of prototyping as the conversation you have with your ideas. It solidifies exactly what is expected of you &amp;amp; will save a lot of time in the long run. Even if it may seem like taking a scenic route to your destination at first.&lt;/p&gt;

&lt;p&gt;For some it may be obvious to build the plans before beginning construction, but for others (like myself) who let their excitement get the better of them &amp;amp; just want to start coding, the word prototype sounds like some fogey word for overcomplicating things.&lt;/p&gt;

&lt;p&gt;Let's see some pros &amp;amp; cons of prototyping &amp;amp; why &lt;strong&gt;you&lt;/strong&gt; (or your designer) should build them before delving into the matrix.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/l41lRvFQYdlfvDTLG/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/l41lRvFQYdlfvDTLG/giphy.gif" alt="matrix-gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Pros
&lt;/h1&gt;

&lt;p&gt;Prototypes make for a really good first deliverable on a project. It outlines requirements for the developer, let's the client/user have an early look at the product, and is a fast way to exchange helpful &amp;amp; relevant feedback. &lt;/p&gt;

&lt;p&gt;It gives the user or the client a feeling of involvement early on in the development life cycle, they will have a working model to click through and test the look and feel which is often their main focus.&lt;/p&gt;

&lt;p&gt;If any changes need to be made, they can be clarified and resolved before any amount of time has been spent on developing the feature. This reduces development costs, time, and any confusion or uncertainty that the developer may have approaching a specific problem. &lt;/p&gt;

&lt;h1&gt;
  
  
  Cons
&lt;/h1&gt;

&lt;p&gt;The biggest problem when it comes to prototyping is explaining to the user that the prototype &lt;strong&gt;IS NOT&lt;/strong&gt; the final product. &lt;/p&gt;

&lt;p&gt;In some cases the developer/designer could spend excessive time trying to perfect a prototype, when the intention of a prototype is to be built efficiently.&lt;/p&gt;

&lt;p&gt;I'm clutching at straws trying to think of more cons. I guess thats why its called a &lt;strong&gt;PRO&lt;/strong&gt;totype.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/Ve9pOjJRxkW2c/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/Ve9pOjJRxkW2c/giphy.gif" alt="clutching-straws"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Closing
&lt;/h1&gt;

&lt;p&gt;If you're still reading this after that joke,&lt;/p&gt;

&lt;p&gt;Here's a list of some cool tools i've checked out:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.adobe.com/products/xd.html"&gt;Adobe XD&lt;/a&gt;&lt;br&gt;
&lt;a href="https://marvelapp.com/"&gt;Marvel App&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.axure.com/"&gt;Axure RP&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.invisionapp.com/"&gt;InVision&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My knowledge is limited to my experience, I'd like to hear your thoughts&lt;/p&gt;

</description>
      <category>ux</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>NOT NOT (!!)</title>
      <dc:creator>Tyron Barlow-Kearsley</dc:creator>
      <pubDate>Tue, 27 Aug 2019 09:47:29 +0000</pubDate>
      <link>https://dev.to/tyronasaurus_dev/not-not-gbm</link>
      <guid>https://dev.to/tyronasaurus_dev/not-not-gbm</guid>
      <description>&lt;h3&gt;
  
  
  Picture this
&lt;/h3&gt;

&lt;p&gt;You need to check if an element exists on a page, let's take a look at this example:&lt;/p&gt;

&lt;p&gt;You have a list of cool bugs on your website, but you want to check if the ladybug element is present on a specific instance (maybe the user initially chooses a bunch of insects from a list)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;doesLadybugExist&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lady-bug&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="c1"&gt;// This will either return the element, or null&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This looks alright... but, this will either return the element, or it will return null, which is not &lt;em&gt;wrong&lt;/em&gt;, but in this example its not desired, we want to see if the ladybug &lt;strong&gt;exists&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Lady bugs are !! cool
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;doesLadybugExist&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!!&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lady-bug&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="c1"&gt;// This will either true if it exists, or false&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Take a closer look and see the &lt;strong&gt;!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is great because it returns a boolean value for us to if the user likes ladybugs or not. &lt;strong&gt;Success!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But not so fast. How does this work?&lt;/p&gt;

&lt;p&gt;A quick google search will tell you that !! does not exist in a java context. It is simply the ! operator used twice.&lt;/p&gt;

&lt;p&gt;What this does is it converts a non-boolean to an inverted boolean, meaning any &lt;em&gt;truthy&lt;/em&gt; values get evaluated to true, and any &lt;em&gt;falsy&lt;/em&gt; values get evaluated to false (in a boolean context)&lt;/p&gt;

&lt;p&gt;All values are truthy unless they are defined as falsy&lt;/p&gt;

&lt;p&gt;Below are the values that are falsy in Javascript according to &lt;a href="https://developer.mozilla.org/en-US/docs/Glossary/Falsy"&gt;MDN&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;No.&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1.&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2.&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3.&lt;/td&gt;
&lt;td&gt;undefined&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4.&lt;/td&gt;
&lt;td&gt;0 (note: the string '0' evaluates to true)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5.&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6.&lt;/td&gt;
&lt;td&gt;''&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7.&lt;/td&gt;
&lt;td&gt;document.all&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Using &lt;strong&gt;!!&lt;/strong&gt; is a clean, and easy way of comparing the state of an element on your DOM against a boolean value without having to worry about type-casting and other conversion methods.&lt;/p&gt;

&lt;p&gt;And, lastly, do not not leave a like and a unicorn ;)  &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>html</category>
    </item>
  </channel>
</rss>
