<?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: Thiago Ricieri</title>
    <description>The latest articles on Forem by Thiago Ricieri (@thgvr).</description>
    <link>https://forem.com/thgvr</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%2F25291%2F33b33d27-b5ab-4fc4-b383-e2bb2fa3796b.jpg</url>
      <title>Forem: Thiago Ricieri</title>
      <link>https://forem.com/thgvr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/thgvr"/>
    <language>en</language>
    <item>
      <title>Show DEV: Apple rejected my app, so I decided to open-source it</title>
      <dc:creator>Thiago Ricieri</dc:creator>
      <pubDate>Mon, 16 Apr 2018 13:25:47 +0000</pubDate>
      <link>https://forem.com/thgvr/show-devto-apple-rejected-my-app-so-i-decided-to-open-sourcing-it-4ibe</link>
      <guid>https://forem.com/thgvr/show-devto-apple-rejected-my-app-so-i-decided-to-open-sourcing-it-4ibe</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthiago.ricieri.com%2Fassets%2Fposts%2F2018%2Fmojilist-screens.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthiago.ricieri.com%2Fassets%2Fposts%2F2018%2Fmojilist-screens.jpg" alt="Emojilist project sample screens" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally posted in &lt;a href="https://thiago.ricieri.com/open-sourcing-my-latest-ios-app" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;. Following the same idea of Show HN, this post is to spread the word to the DEV community.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Earlier this year, I had the project of creating one new app per month, try to monetize them or run them as a side-project business. I started with the idea to solve a problem that I had.&lt;/p&gt;

&lt;p&gt;I wanted a straightforward way to create shopping lists using only emojis. Just that, &lt;strong&gt;only emojis are allowed&lt;/strong&gt;. Instead of writing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Bananas
- Apples
- Cookies
- Meat
- Chicken
- Rice
- ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I wanted a list like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🍌🍎🍖🍪🍚🍗...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pretty silly, but still fun. &lt;a href="http://github.com/thiagoricieri/Mojilist" rel="noopener noreferrer"&gt;Check out the repository here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Investing time to make it happen 👨🏻‍💻
&lt;/h2&gt;

&lt;p&gt;I had a fun time creating it, exploring a new project architecture for iOS from scratch and trying out some nice libraries like Realm and Spring. I even calculated the amount of time I invested creating it so I could calculate how much I needed to get in revenue in return by selling it:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;Hours spent&lt;/th&gt;
&lt;th&gt;R$/h&lt;/th&gt;
&lt;th&gt;Total Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mojilist&lt;/td&gt;
&lt;td&gt;51&lt;/td&gt;
&lt;td&gt;R$100,00&lt;/td&gt;
&lt;td&gt;R$5,100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The rejection ☹️
&lt;/h2&gt;

&lt;p&gt;Everything was fine, and I was excited to release, I generated the screenshots needed, and I have sent the binary to Apple for review. My surprise was that the app got rejected because it used Emojis:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthiago.ricieri.com%2Fassets%2Fposts%2F2018%2Fapple-answer1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthiago.ricieri.com%2Fassets%2Fposts%2F2018%2Fapple-answer1.png" alt="Answer from Apple (1)" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
    &lt;small&gt;Answer from Apple (1)&lt;/small&gt;&lt;br&gt;
  
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthiago.ricieri.com%2Fassets%2Fposts%2F2018%2Fapple-answer2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthiago.ricieri.com%2Fassets%2Fposts%2F2018%2Fapple-answer2.png" alt="Answer from Apple (1)" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
    &lt;small&gt;Answer from Apple (2)&lt;/small&gt;&lt;br&gt;
  
  &lt;/p&gt;

&lt;p&gt;First of all, I was surprised they were enforcing such policy, to me it makes no sense: they already charge a big chunk of any sale in the store (30%), the minimum I expected was to be free to use at the emojis they have popularized throughout their platform. It's not like they wouldn't get paid for it 🤷‍♂️&lt;/p&gt;

&lt;h2&gt;
  
  
  Open-sourcing the project
&lt;/h2&gt;

&lt;p&gt;Personal opinions aside, I would need to draw many icons to get the chance of resubmitting it, and I think my time would be better invested in other stuff (like learning Node.js, React.js or creating another app &lt;strong&gt;that does not use emojis 😡&lt;/strong&gt;). So I decided to open source this project to get community feedback and perhaps create something else from it. Maybe it could be a good starter for junior developers to try to understand how to build an app from scratch.&lt;/p&gt;

&lt;p&gt;Unfortunately, I had to remove the iconography I used, as it is copyrighted. But other than that, the rest is distributed under Apache 2.0 license. &lt;a href="http://github.com/thiagoricieri/Mojilist" rel="noopener noreferrer"&gt;Enjoy by checking out the repository at GitHub&lt;/a&gt; and &lt;a href="https://twitter.com/thiagoricieri" rel="noopener noreferrer"&gt;let me know what you think&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>community</category>
      <category>showdev</category>
      <category>opensource</category>
      <category>swift</category>
    </item>
    <item>
      <title>When I got a hand from Sherlock Holmes to help a peer with his problem</title>
      <dc:creator>Thiago Ricieri</dc:creator>
      <pubDate>Tue, 25 Jul 2017 16:51:37 +0000</pubDate>
      <link>https://forem.com/thgvr/when-i-got-a-hand-from-sherlock-holmes-to-help-a-peer-in-his-problem</link>
      <guid>https://forem.com/thgvr/when-i-got-a-hand-from-sherlock-holmes-to-help-a-peer-in-his-problem</guid>
      <description>&lt;p&gt;This week one of my peers was facing a problem with one of our APIs. He pinged the infrastructure team in Slack warning them about it, saying the API was broken.Â &lt;/p&gt;

&lt;p&gt;Another peer of mine, &lt;a href="https://twitter.com/juanmaia1212" rel="noopener noreferrer"&gt;Juan Maia&lt;/a&gt;, who's an awesome engineer pinged me in private, dazzled by the problem.&lt;/p&gt;

&lt;p&gt;_&lt;em&gt;Thiago, are you aware of any problem with the API? As far as I know, it is working accordingly in Roku (the platform I've been maintaining). It is not possible the API is broken if it's working in another platform.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When I checked the feature once again, it was indeed working. Juan was right, how was possible it to not work on web then?&lt;/p&gt;

&lt;p&gt;I remembered that I got aÂ cookie problem with the API before, months ago, while implementing it in BrightScript. But my other peer followed the discussion back then, he would probably know to check his cookie implementation. Nevertheless, he was still facing problems by using the API. I replied on the Slack thread and asked him about how he was dealing with these little bastards (!).&lt;/p&gt;

&lt;p&gt;_&lt;em&gt;It should work on web, right? That's not possible!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's when a citation from Sherlock Holmes, written by Arthur Conan Doyle, came to mind. A quote that I carry on with me while search for root causes for problems.Â &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I copied to my peer the same quote and asked him to check the obvious first, before discarding this option.&lt;/p&gt;

&lt;p&gt;The problem was,Â &lt;strong&gt;indeed, cookies.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Engineering is partly an Investigation Job
&lt;/h2&gt;

&lt;p&gt;How many times did we face a problem that seemed so weird it could not be possibly happening in normal conditions? No server down, no crash found, logic written at perfection . But yet, the problem happens and we feel confused.&lt;/p&gt;

&lt;p&gt;My primary maneuver is always toÂ check the obvious first. Sherlock taught me that. Once you remove the impossible, whatever remains must be the truth.&lt;/p&gt;

&lt;p&gt;If a cookie policy is impossible cause to a problem, why not to test it first? Often when we don't know the cause of a problem, it's better to start with what we do know, to test the perfect scenario to be sure it is still perfect, so only then we start to dig up more creative possible causes. This technique already saved me many hours of bug investigation.&lt;/p&gt;

</description>
      <category>team</category>
      <category>engineering</category>
      <category>bug</category>
      <category>investigation</category>
    </item>
  </channel>
</rss>
