<?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: Logan</title>
    <description>The latest articles on DEV Community by Logan (@meltonlogan615).</description>
    <link>https://dev.to/meltonlogan615</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%2F315918%2F8689ce4e-79f3-4363-8e2d-87089718e109.jpeg</url>
      <title>DEV Community: Logan</title>
      <link>https://dev.to/meltonlogan615</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/meltonlogan615"/>
    <language>en</language>
    <item>
      <title>100 Days of Code: Day 4</title>
      <dc:creator>Logan</dc:creator>
      <pubDate>Tue, 08 Dec 2020 22:48:50 +0000</pubDate>
      <link>https://dev.to/meltonlogan615/100-days-of-code-day-4-2djn</link>
      <guid>https://dev.to/meltonlogan615/100-days-of-code-day-4-2djn</guid>
      <description>&lt;p&gt;This is one of those times when I thought I was going to learn one thing, but ended up with a completely different lesson. I didn't post last night because I fought with it, said screw it, went to bed and played there for two hours thinking about it. I just couldn't let go of it.&lt;/p&gt;

&lt;p&gt;I started off by building a simple app called StinkLock. 4 labels, 3 sliders and a button. The idea was once the sum of the sliders equaled something or some sequence of values, the button would become active to tap and show a modal screen. Related aside, practically every little thing I do to reinforce an idea always becomes some way of telling my kid they stink.&lt;/p&gt;

&lt;p&gt;I put everything in the &lt;code&gt;main.storyboard&lt;/code&gt;. I put the &lt;code&gt;UILabels&lt;/code&gt; that showed the value rounded to whole numbers above the &lt;code&gt;UISlider&lt;/code&gt;. I put the &lt;code&gt;UILabels&lt;/code&gt; and &lt;code&gt;UISliders&lt;/code&gt; in their own &lt;code&gt;StackView&lt;/code&gt;. I put those three in a stack together, constrained to center horizontal and vertical. I added my &lt;code&gt;@IBActions&lt;/code&gt; and &lt;code&gt;@IBOutlets&lt;/code&gt;. All I really needed to do was decide on the functions to change the button state from &lt;code&gt;disabled&lt;/code&gt; to &lt;code&gt;active&lt;/code&gt;, add the segue and call it done. &lt;/p&gt;

&lt;p&gt;I ran my app in the simulator. Slider buttons didn't move. Ran it on my phone. Same thing. I added the &lt;code&gt;slider.minumumValue&lt;/code&gt; and &lt;code&gt;slider.maximumValue&lt;/code&gt; properties in the &lt;code&gt;viewDidLoad()&lt;/code&gt;. Didn't budge. I tinkered with the content mode properties. Nothing. That's when I went to bed to brood over it. 3 hours of sleep.&lt;/p&gt;

&lt;p&gt;After a bit of hard googling and slamming back an energy drink, I found it. Every time I embedded the elements into the &lt;code&gt;StackView&lt;/code&gt;, my leading and trailing were clipped, by the time I had it three stacks deep, the slider had no room to wiggle. I removed all of my constraints, rebuilt the layout. It works fine. Exactly what I wanted it to do. I'm sure I muttered some vulgarities to myself.&lt;/p&gt;

&lt;p&gt;I did watch a tutorial on optionals, read a few articles on them. But nothing is going to stick with me like the sleep depriving struggle I had with a simple &lt;code&gt;UISlider&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>swift</category>
      <category>ios</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>100 Days of Code: Day 3</title>
      <dc:creator>Logan</dc:creator>
      <pubDate>Mon, 07 Dec 2020 04:19:24 +0000</pubDate>
      <link>https://dev.to/meltonlogan615/100-days-of-code-day-3-2965</link>
      <guid>https://dev.to/meltonlogan615/100-days-of-code-day-3-2965</guid>
      <description>&lt;p&gt;I step away from learning on the weekends to spend quality time with my kiddo. So rather than talk about what I have learned, I'm going to focus on what I will learn.&lt;/p&gt;

&lt;p&gt;Optionals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Binding, Chaining, Nil Coalescing.&lt;/li&gt;
&lt;li&gt;I've read over them a few times, but I always get tripped up on when or if to use &lt;code&gt;!&lt;/code&gt; or &lt;code&gt;?&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm also going to work on learning the methods available to update properties of &lt;code&gt;UILabel&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;@IBOutlet weak var thorWeightLabel: UILabel!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;override func viewDidLoad() {&lt;/code&gt;&lt;br&gt;
&lt;code&gt;super.viewDidLoad()&lt;/code&gt;&lt;br&gt;
&lt;code&gt;thorWeightLabel.text = String(thor.weight)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;thorWeightLabel.textColor = .red&lt;/code&gt;&lt;br&gt;
&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I'm excited about getting started on all of this.&lt;/p&gt;

</description>
      <category>swift</category>
      <category>ios</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>100 Days of Code: Day 2</title>
      <dc:creator>Logan</dc:creator>
      <pubDate>Fri, 04 Dec 2020 04:28:48 +0000</pubDate>
      <link>https://dev.to/meltonlogan615/100-days-of-code-day-2-3jah</link>
      <guid>https://dev.to/meltonlogan615/100-days-of-code-day-2-3jah</guid>
      <description>&lt;p&gt;I'm almost done for today, but I wanted to make sure I got this down I shut down. &lt;/p&gt;

&lt;p&gt;Today I learned the prime differences between &lt;code&gt;class&lt;/code&gt; and &lt;code&gt;struct&lt;/code&gt;. In general, it's recommended to default to a &lt;code&gt;struct&lt;/code&gt; because they create new instances of an object rather than point to the same object in the way that classes do.&lt;/p&gt;

&lt;p&gt;Example: If I have &lt;code&gt;struct&lt;/code&gt; of my fat cat, Thor. He can be initialized and create a whole new Thor. Any changes to your Thor, like actually getting him to lose weight and not be such an asshole, would only apply to that particular instance of a Thor. My Thor would continue to yell at me any time I go into the kitchen because he hasn't gotten a treat for... I'm not sure why he thinks he deserves them.&lt;/p&gt;

&lt;p&gt;But with a &lt;code&gt;class&lt;/code&gt;, any instance of a Thor points back to the same foul tempered chunk. I don't hate Thor. Far from it, we're at that point in our relationship where we can we can look each other in the eye and call each other scum, but know we mean the opposite.&lt;/p&gt;

&lt;p&gt;Maybe this will help explain what I mean.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;struct Thor {&lt;br&gt;
   var weight: Int&lt;br&gt;
   var attitude: String&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You could initialize and clone that Thor all you wanted&lt;br&gt;
`var thor1 = Thor(weight: 100, attitude: "shit")&lt;br&gt;
 var thor2 = thor1&lt;br&gt;
And so on. Any changes to thor1, would be completely independent of any changes to thor2.&lt;/p&gt;

&lt;p&gt;You could &lt;code&gt;thor1.weight = 13&lt;/code&gt; and &lt;code&gt;thor2.weight&lt;/code&gt; would remain unchanged at 15. Still just as fat as ever.&lt;/p&gt;

&lt;p&gt;If you tried to do the same thing with a &lt;code&gt;class&lt;/code&gt;, it's a different story...&lt;/p&gt;

&lt;p&gt;&lt;code&gt;class Thor {&lt;br&gt;
   var weight: Int&lt;br&gt;
   var attitude: String&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;init(weight: Int, attitude: String) {&lt;br&gt;
      self.weight = weight&lt;br&gt;
      self.attitude = attitude&lt;br&gt;
   }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;First thing you'll notice is the memberwise initializer inside the class. Had there been a default value for &lt;code&gt;weight&lt;/code&gt; and &lt;code&gt;attitude&lt;/code&gt;, we could have skipped it like we did with structs. Those values will still have to be passed when the object instance in created, but it's not necessary. Without default values and only types, they are necessary. Xcode will remind you before you even get to that line.&lt;/p&gt;

&lt;p&gt;Now let's make some cats.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;var thor3 = Thor(weight: 15, attitude: "hungry")&lt;br&gt;
 var thor4 = thor3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you did a &lt;code&gt;thor3.weight = 13&lt;/code&gt;, then &lt;code&gt;thor4&lt;/code&gt; would also have the weight property value of 13. That's because unlike a &lt;code&gt;struct&lt;/code&gt; that constantly creates new instances of itself when there's changes and re-inits, a &lt;code&gt;class&lt;/code&gt; points back to the same initial instance. Like a cat thinking that every time I go to the kitchen, it's to feed them. &lt;/p&gt;

&lt;p&gt;There's more to difference that just this. You can &lt;code&gt;sub-class&lt;/code&gt; a &lt;code&gt;class&lt;/code&gt;, but you can &lt;code&gt;sub-struct&lt;/code&gt; a &lt;code&gt;struct&lt;/code&gt;. That's another conversation, but I really feel that this is the main thing for me to take away from today.&lt;/p&gt;

&lt;p&gt;That and I love this little guy:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--54AeRXRK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/09y5hl81nnoduz1zkis2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--54AeRXRK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/09y5hl81nnoduz1zkis2.jpg" alt="Thor"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>swift</category>
      <category>ios</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>100 Days of Code: Day 1</title>
      <dc:creator>Logan</dc:creator>
      <pubDate>Thu, 03 Dec 2020 05:04:01 +0000</pubDate>
      <link>https://dev.to/meltonlogan615/100-days-of-code-day-1-2gc</link>
      <guid>https://dev.to/meltonlogan615/100-days-of-code-day-1-2gc</guid>
      <description>&lt;p&gt;Today was focused on building a better understanding of &lt;strong&gt;classes&lt;/strong&gt;, how they are made, how to &lt;strong&gt;subclass&lt;/strong&gt;, why/how they are done.&lt;/p&gt;

&lt;p&gt;It may seem obvious, but I have to constantly remind myself to focus on the fundamentals. There's a place that I want to be, but I have to understand and accept that it takes time, hard work, and starting from the bottom up. The last two are easy for me, however I can be impatient with myself.&lt;/p&gt;

&lt;p&gt;On March 16th, 2020, I quit my job of 13yrs in Sales Management. At the time, I thought that I had enough FrontEnd WebDev skills to land a junior position. I had money saved up to help me get through for a while, I had interviews lined up, I had networked pretty solidly for several months. I was golden. Then COVID hit. Interviews were cancelled, the labor pool got A LOT more competitive. &lt;/p&gt;

&lt;p&gt;Eventually, thanks to networking and base understanding of &lt;a href="https://tailwindcss.com"&gt;TailwindCSS&lt;/a&gt;, I was able to pick up some freelance work for a local agency. First project was handed to me with mittens. I was only needed for a week and the project shipped. The second... was different. &lt;/p&gt;

&lt;p&gt;I was brought in with other developers in my area to help with a project that was way under estimated in its hours to MVP, plagued with feature creep, constant redesigns and additional components. It felt like at every stand up, there were new components be built and the repo was getting updated with new tickets all the while the designers acted like it had always been there. I remember the exact moment I realized that I did not have the skills I thought I had. I won't go into the details of it, but it was humbling.&lt;/p&gt;

&lt;p&gt;I really enjoyed WebDev when it was something I was doing for myself, not so much when it got down to the nut-cutting. What made it not fun was my lack of fundamental programming and JS skills. So I devoted my time after that project to build my knowledge, but it never clicked. I never had that "A-HA!" moment. I was able to build &lt;a href="https://meltonlogan615.github.io/Pong/"&gt;this&lt;/a&gt; in vanilla from scratch. And that's when I decided to move into Swift.&lt;/p&gt;

&lt;p&gt;I finally found a WFH job in sales. I'm trying to spend at least one hour every day doing iOS projects. I'm almost done reading the Swift manual. I will not be caught off guard like that again. I want that foundation where when I'm hit with a problem, I can resolve it. Not that I'll immediately know how to (logically, it wouldn't be a problem), but that I can leverage my core understanding to find better answers.&lt;/p&gt;

&lt;p&gt;The one thing that I want to express is that nothing just happens. There are no brute facts. Everything comes from a base, a frame, a seed. If you are on the same journey as myself, regardless of language or platform, be patient with yourself. Take one step at a time. If you need to take a step back to get your footing, do it. If you need to spend more time on one subject, do it. Don't beat yourself up. Have fun.&lt;/p&gt;

&lt;p&gt;And remember, there is no finish line. It's a constant learning process.&lt;/p&gt;

</description>
      <category>swift</category>
      <category>ios</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>100 Days of Code: Day 0</title>
      <dc:creator>Logan</dc:creator>
      <pubDate>Wed, 02 Dec 2020 03:22:48 +0000</pubDate>
      <link>https://dev.to/meltonlogan615/100-days-of-code-day-0-3dbd</link>
      <guid>https://dev.to/meltonlogan615/100-days-of-code-day-0-3dbd</guid>
      <description>&lt;p&gt;I've been learning for a while, but thought that I should take a leap into committing myself to the 100 Days challenge. &lt;/p&gt;

&lt;p&gt;My background is in Sales and Management. I have a decent knowledge of HTML, CSS &amp;amp; JS, although I have struggled with JS. I'm currently on Section 11 of Angela Yu's Complete iOS Bootcamp. And I do believe it is sticking and am not condemning myself to tutorial purgatory.&lt;/p&gt;

&lt;p&gt;My goal here is both to document my progress and also re-enforce the concepts that I have already learned and will learn by attempting to explain them in my own vernacular. If you find that I have incorrectly stated something or would like a further explanation, please comment and I'll do my best to make the corrections or provide additional clarity. &lt;/p&gt;

</description>
      <category>swift</category>
      <category>ios</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Adding Tailwind to existing React app?</title>
      <dc:creator>Logan</dc:creator>
      <pubDate>Fri, 20 Mar 2020 00:28:07 +0000</pubDate>
      <link>https://dev.to/meltonlogan615/adding-tailwind-to-existing-react-app-4noo</link>
      <guid>https://dev.to/meltonlogan615/adding-tailwind-to-existing-react-app-4noo</guid>
      <description>&lt;p&gt;I’m trying to find a way to install Tailwind on an existing React app. Everything I’m finding has them concurrently installed npx in the terminal. Any help would be appreciated. &lt;/p&gt;

</description>
      <category>react</category>
      <category>css</category>
      <category>tailwindcss</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
