<?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>Forem: Ted Presley</title>
    <description>The latest articles on Forem by Ted Presley (@tapresle).</description>
    <link>https://forem.com/tapresle</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%2F17250%2F9102407f-cc4e-4df8-a4f1-413359a1b8aa.jpeg</url>
      <title>Forem: Ted Presley</title>
      <link>https://forem.com/tapresle</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tapresle"/>
    <language>en</language>
    <item>
      <title>Finally shipping ContactCarrd</title>
      <dc:creator>Ted Presley</dc:creator>
      <pubDate>Fri, 22 Apr 2022 20:07:27 +0000</pubDate>
      <link>https://forem.com/tapresle/finally-shipping-contactcarrd-3oph</link>
      <guid>https://forem.com/tapresle/finally-shipping-contactcarrd-3oph</guid>
      <description>&lt;p&gt;&lt;a href="https://contactcarrd.com"&gt;https://contactcarrd.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm happy to announce that the project I've been working on for the past few months is (hopefully) ready for prime time!&lt;/p&gt;

&lt;p&gt;With the pandemic and everything else going on the past couple years, I've found it hard to hand over my phone to let someone else enter in their contact info so I decided to develop a small PWA to create and share contract cards in .vcf or QR code formats.&lt;/p&gt;

&lt;p&gt;Please give it a shot and let me know what you think. I'm really happy with it for my own personal uses so I hope others can get some use out of it as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://contactcarrd.com"&gt;https://contactcarrd.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>shipping</category>
    </item>
    <item>
      <title>What drives you at work?</title>
      <dc:creator>Ted Presley</dc:creator>
      <pubDate>Fri, 01 Feb 2019 00:05:49 +0000</pubDate>
      <link>https://forem.com/tapresle/what-drives-you-at-work-2cpj</link>
      <guid>https://forem.com/tapresle/what-drives-you-at-work-2cpj</guid>
      <description>&lt;h3&gt;
  
  
  I want to be invested in my work
&lt;/h3&gt;

&lt;p&gt;By invested here, I really mean that I want to know who my users are and what does my work enable them to do? How does it really help them? For my entire professional career, I've always worked on applications that I'd never use because my work targets a user base that is in an entirely different career path than me. That doesn't mean I can't be invested in my work for them. Knowing that the applications my team and I build directly makes our user's jobs possible or more efficient is that investment I desire and having direct user feedback is a huge payoff for that investment. Take that feedback loop away and I'm less driven to actually get things done.&lt;/p&gt;

&lt;h3&gt;
  
  
  I prefer an interesting problem
&lt;/h3&gt;

&lt;p&gt;This doesn't mean that I can't find enjoyment out of implementing the simple things. Sometimes it's the simplest looking designs and functions that turn out to have a hidden quirk that needs more thought or design put into it than originally thought. I have a drive to make things better whether that's the code, the process, or the people and that's where I find the most interesting work. When a team starts to fall into their comfort zone and refuse to push the boundaries is when I know it's time to move on.&lt;/p&gt;

&lt;h3&gt;
  
  
  I need transparency
&lt;/h3&gt;

&lt;p&gt;This one is actually twofold. One aspect of this is having transparency within the team and our goals to know where we're going and how the team feels things are progressing. Having worked in teams that feel they can open up and teams that guard their every move, there's a world of difference between the two and even on teams where people sometimes don't get along or disagree with each other, the more transparent team has always been lower stress and higher producing. The second aspect of this is transparency from the management structure. Where are we heading as a company? When this aspect isn't transparent, it reduces morale because there's a level of uncertainty in what the team's role is and how our work moves us closer to the company's goals.&lt;/p&gt;

&lt;p&gt;What about you? What drives you at work every day?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>motivation</category>
    </item>
    <item>
      <title>The journey to my first iOS app</title>
      <dc:creator>Ted Presley</dc:creator>
      <pubDate>Sun, 13 Jan 2019 14:13:03 +0000</pubDate>
      <link>https://forem.com/tapresle/the-journey-to-my-first-ios-app-3o4n</link>
      <guid>https://forem.com/tapresle/the-journey-to-my-first-ios-app-3o4n</guid>
      <description>&lt;p&gt;I've always had an interest in developing mobile apps and previously published an Android app back in 2014 or so and struggled hard with it. It's been a few years since then so I figured I'd try my had at Swift development since I've been in a professional webdev role for about five years and learned a lot about understanding and working with different languages and frameworks. This led me to picking up a project I started back in 2016 called Motiv8me. Motiv8me originally existed as a web app, which can still be found &lt;a href="https://tapresle.github.io/motiv8me/"&gt;here&lt;/a&gt; and I figured it would be a good starter project that's different than your traditional todo or journal app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to start?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/3aGZA6WLI9Jde/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3aGZA6WLI9Jde/giphy.gif" alt="Let's get ready to rumble!" width="280" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Swift &lt;a href="https://swift.org/documentation/#the-swift-programming-language"&gt;documentation&lt;/a&gt; of course! I didn't follow any guides or tutorials for this app, just started reading the docs as well as some creative googling to point me in the right direction, which was extremely helpful in figuring out how to create a new image to save on the device.&lt;/p&gt;

&lt;h2&gt;
  
  
  On to the low level details!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F8INHLw---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/rfattjI.png%3F1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F8INHLw---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/rfattjI.png%3F1" alt="Don't count the minutes of the day, make the minutes of the day count" width="281" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app's code isn't very complicated, I have a couple storyboards, one for the main loop and another for creation of custom images. For the main loop, it really comes down to layering a UIImageView and two UILabels. The UIImageView and quote UILabel are on a 10 second loop which will change the image, quote, and font. There's also a couple tap gestures, single tap which will loop to another random image, quote, and font and double tap to pause on the current set. I've also implemented a way to create your own images by swiping up on the main loop and this is where some of the more complicated work came into play.&lt;/p&gt;

&lt;p&gt;When writing the custom image functionality, I ran into a lot of issues with placement and making sure the live preview matched closely to the end image. I learned very quickly that there's no built-in way to tap on a UILabel and open the keyboard which led me to replacing the quote's UILabel with a UITextView for the edit capability. With that issue tackled, I moved on to creating the image and saving it to the user's device. Using the UIGraphics family of functionality from UIKit I rendered my layer into the image and... came out with the background image in the right spot but the quote and app labels were stuck in the top left. I came to find out that when using &lt;code&gt;UIView.layer.render(in: CGContext)&lt;/code&gt; the origin location of the CGRects on the layers is ignored so I was able to solve that by putting the quote and app labels as subviews to the main UIImageView before rendering. This allows for me to correctly place all of the pieces before rendering the whole image.&lt;/p&gt;

&lt;h2&gt;
  
  
  So development's done, how do I get this out to users?
&lt;/h2&gt;

&lt;p&gt;There's a great &lt;a href="https://medium.com/@the_manifest/how-to-publish-your-app-on-apples-app-store-in-2018-f76f22a5c33a"&gt;post&lt;/a&gt; on Medium by The Manifest that I used to help me through this process. It's mostly as simple as getting a developer account ($99 a year), setting up your app on App Store Connect (previously iTunes Connect), and then setting up your app for review and sale. You'll need some screenshots on the devices your app is targeting, an app icon, and some metadata (ex. description) for potential users to read to get interested in your app. Once you have all of the requisite information you can submit your app for review and it'll usually be up in the store in 24-48 hours after that assuming the review goes through successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what did I learn and where to go from here?
&lt;/h2&gt;

&lt;p&gt;Honestly, I'm not sure why I didn't start sooner. Throughout the process I learned a lot about how to develop and debug Swift applications and I learned a lot about the iOS ecosystem. So far I've only had a few dozen downloads without any kind of marketing but I've also been able to release an update and have about 90% of the installed user base update within a day or two. At the end of the day, I'm hoping that I can have an impact, even if it's small, to someone's day and help those that may need a little motivation or inspiration to get through the day.&lt;/p&gt;

&lt;p&gt;If you'd like to check out the app, you can do so &lt;a href="https://itunes.apple.com/us/app/motiv8me/id1447784871?mt=8"&gt;here&lt;/a&gt;, it's available for both iPhone and iPad. I've also open sourced the code on &lt;a href="https://github.com/tapresle/Motiv8meiOS"&gt;Github&lt;/a&gt; if that's more your speed.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>mobile</category>
      <category>newbie</category>
    </item>
  </channel>
</rss>
