<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Third Culture Letters]]></title><description><![CDATA[Stay on top of the latest insider developments at Third Culture Apps!]]></description><link>https://thirdculture.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png</url><title>Third Culture Letters</title><link>https://thirdculture.substack.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 04 Sep 2026 23:13:22 GMT</lastBuildDate><atom:link href="/__u/thirdculture.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Bardi Golriz]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thirdculture@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thirdculture@substack.com]]></itunes:email><itunes:name><![CDATA[Bardi Golriz]]></itunes:name></itunes:owner><itunes:author><![CDATA[Bardi Golriz]]></itunes:author><googleplay:owner><![CDATA[thirdculture@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thirdculture@substack.com]]></googleplay:email><googleplay:author><![CDATA[Bardi Golriz]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[S06E02 — WOOF!]]></title><description><![CDATA[Although I announced my return last month, I knew there was still unfinished business &#8212; and until I resolved it, I couldn&#8217;t begin thinking about the future.]]></description><link>https://thirdculture.substack.com/p/s06e02-woof</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s06e02-woof</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Tue, 11 Aug 2026 07:19:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="/__u/thirdculture.substack.com/p/s06e01-guess-whos-back?r=1r8ry&amp;utm_campaign=post&amp;utm_medium=web">Although I announced my return last month</a>, I knew there was still unfinished business &#8212; and until I resolved it, I couldn&#8217;t begin thinking about the future. I&#8217;m delighted to say that I finally have: ruff has been rewritten, and <a href="https://play.google.com/store/apps/details?id=ruff.ruff">version 2.0 is now available on Google Play</a>.</p><p>Much like <a href="https://play.google.com/store/apps/details?id=appyweather">Appy Weather</a> before it, this was a sensitive project. I wanted to completely rebuild the app&#8217;s foundations <em>and</em> improve its UI/UX, but without upsetting existing users who are, understandably, set in their ways. Why am I so confident? Because I&#8217;ve heard from only a handful of users who weren&#8217;t completely sold on every change. The vast majority updated without a peep &#8212; a seamless transition. That&#8217;s a win in my book.</p><p><a href="https://ruff-apps.userjot.com/updates/p/ruff-2-0">To learn more about the update, read all about it here</a>.</p><p>With this work now done, the weight of legacy code has officially been lifted, freeing me to focus on new projects. Among the first will be bringing ruff &#8212; and Appy Weather &#8212; to iOS. Neither would have been possible without these rewrites and &#8212; more specifically &#8212; the move to <a href="https://kotlinlang.org/multiplatform/">Kotlin Multiplatform</a>. There are also a couple of other new projects I&#8217;m excited to share with you even sooner. Exciting times ahead!</p><p>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S06E01 – Guess Who’s Back]]></title><description><![CDATA[This Time for Good]]></description><link>https://thirdculture.substack.com/p/s06e01-guess-whos-back</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s06e01-guess-whos-back</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Thu, 02 Jul 2026 09:07:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>2026 was &#8212; and still is &#8212; a make-or-break year. A hard reset. A return to my indie development roots. Hello again!</p><p>I have a number of things to share with you in upcoming episodes, but we begin with the app that has shaped so much of my journey: <strong>Appy Weather</strong>, of course.</p><p>Its long anticipated rewrite &#8212; redesign too &#8212; <em>finally</em> went live in January. Its <a href="https://www.thirdculture.app/appyweather/">brand new website</a> tells the story behind it. Whatever people loved about the original, I doubled-down with v2. It&#8217;s bigger, better, and, perhaps most importantly, far more reliable and performant, rebuilt on a modern Android stack: Kotlin code and Jetpack Compose UI.</p><p>If you&#8217;re still on Android, and stopped using Appy Weather at some point in the last few years, I totally understand why. But please consider giving it another chance: <strong><a href="https://play.google.com/store/apps/details?id=appyweather.appyweather">download Appy Weather 2 from Google Play</a></strong>. If you know someone who might enjoy it &#8212; a friend, family member, colleague, or follower &#8212; spreading the word would mean a lot too.</p><p><em>(There is a subscription, but for the first time &#8212; and limited to the first 1,000 people &#8212; there is a lifetime unlock for anyone who wants the best value and support its ongoing development.)</em></p><p>If you&#8217;re reluctant because you think it&#8217;s only a matter of time before the next development hiatus, I get it. But, please note, since its relaunch, there have been <a href="https://appyweather.userjot.com/updates">a lot of updates</a> with a <a href="https://appyweather.userjot.com/">more inclusive and transparent feedback loop</a> too. Regular development service has resumed, and this time, I have no intention of slowing down or taking any breaks. </p><p>I appreciate Appy Weather more today than ever: what it provides me, and what it means to its users. So if you come back, I&#8217;ll do everything I can to make sure you won&#8217;t regret it. </p><p><em>(For those of you on iOS, there is good news too: I&#8217;ve started work on its client and hope to have more to share later this year.)</em></p><p>Speak more really soon.</p><p>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S05E01 – I Need Your Help]]></title><description><![CDATA[Hey All &#128075;]]></description><link>https://thirdculture.substack.com/p/s05e01-i-need-your-help</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s05e01-i-need-your-help</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Thu, 25 May 2023 13:23:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey All &#128075;<br><br>By complete chance, it&#8217;s been <a href="/__u/open.substack.com/pub/thirdculture/p/s04e01-default-alive?r=1r8ry&amp;utm_campaign=post&amp;utm_medium=web">a year </a><em><a href="/__u/open.substack.com/pub/thirdculture/p/s04e01-default-alive?r=1r8ry&amp;utm_campaign=post&amp;utm_medium=web">and</a></em><a href="/__u/open.substack.com/pub/thirdculture/p/s04e01-default-alive?r=1r8ry&amp;utm_campaign=post&amp;utm_medium=web"> a day since I last sent you an email</a>. In case you forgot, I built Appy Weather in what now feels like years ago because it was actually years ago. There were Internet murmurs that it had been abandoned. To silence this talk, I spent a good part of Q1 this year working on an update to ensure the Dark Sky &lt;&gt; Apple Weather migration goes smoothly. It sort of did, except I didn&#8217;t forecast how unreliable Apple Weather will be. I&#8217;ve made optimisations to work around their issues, but it looks like I&#8217;ll reluctantly be spending my June adding another weather provider to compensate for their frequent downtimes. In the meantime, subscribers don&#8217;t know any better and unfortunately a reasonable number are the ones abandoning the app :( That&#8217;s irony.</p><p>This headache aside, <strong>I would really appreciate support for the thing I&#8217;ve been mainly working on lately</strong>: timing.is &#8212; your calendar reimagined. It will be revealed on Product Hunt next week. It would mean a <em>great</em> deal if you can:</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thirdculture.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Third Culture Letters! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ol><li><p>Go to <a href="https://www.producthunt.com/products/timing-is">https://www.producthunt.com/products/timing-is</a></p></li><li><p>Hit [Notify me]</p></li><li><p>Sign up if you&#8217;ve not got an account already.</p></li></ol><p>And next week when it&#8217;s revealed, you&#8217;ll need to upvote from the notification link you receive.</p><p>That&#8217;s it! The whole process shouldn&#8217;t take up more than a minute of your life, but can &#8212; if there&#8217;s enough support &#8212; make a <em>big</em> difference to my life. </p><p>Competition is fierce every day. Whether the launch is successful is disproportionately skewed to how many votes it has in the first few hours. Getting as many early upvotes will go a long, long way, so please get yours in first thing. Our ability to generate signal will also be meaningfully improved if you can share within your own networks too.</p><p>Thank you so much for your continued support and interest.<br><br>I&#8217;ll try not to be a stranger.<br><br>Have a great end to your week.</p><p>Best,<br>Bardi</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thirdculture.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Third Culture Letters! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[S04E01 – Default Alive]]></title><description><![CDATA[Hello &#128075;]]></description><link>https://thirdculture.substack.com/p/s04e01-default-alive</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s04e01-default-alive</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Tue, 24 May 2022 20:00:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello &#128075;</p><p>Remember me? It&#8217;s Bardi, of course &#8211; <a href="https://play.google.com/store/apps/details?id=appyweather.appyweather">developer</a> (and occasional <a href="https://mtrostyle.gumroad.com/l/keepgoing">author</a>).<em><br><br>Where have I been?</em> Good question!</p><p>Last year, I managed to push out a weekly update to&nbsp;<a href="/__u/thirdculture.substack.com/">the newsletter</a>&nbsp;for&nbsp;<em>50</em>&nbsp;weeks in a row. It was a therapeutic finish to every week. But after 50 sessions, I had enough therapy. I needed to ship. So, I began this year intent on prioritising results over the process. Approaching six months later, there&#8217;s been a lot of progress on the goal, but &#8211; unfortunately &#8211; I still have nothing to show for it (:&nbsp;</p><p>Appy Weather continues to be rewritten, but for the past few months, my focus has shifted completely to&nbsp;<a href="https://timing.is/">t:m:ng</a>. Yep, that&#8217;s the secret project I&nbsp;<a href="/__u/thirdculture.substack.com/p/s03e01-the-new?s=w">teased</a>&nbsp;about ~18 months ago. It&#8217;s your calendar re-imagined, built for <em>you</em> and not the enterprise. This one is the closest to the finish, and I&#8217;m hopeful for a summer launch. If you&#8217;re on iOS, I recommend you sign up to the wait list. It&#8217;s the first time I&#8217;ve partnered with someone on an app. It&#8217;s been so much fun, and we expect it will show in the final product. We&#8217;re entering a hot space but we feel we have a point of view that will help set it apart from the competition. I have a 100% record so far and I&#8217;m confident I&#8217;ll keep the streak going with release #3.&nbsp;</p><p>To be clear, Android and Appy Weather in particular are still a major consideration. They&#8217;ve just stopped being the immediate highest priority. I had such big plans for its v2. But I&#8217;ve recently accepted&nbsp;that I must majorly scale down its ambition in order to facilitate a finish (otherwise I fear it will easily become a 2023 project). The minimum acceptable output is effectively the current app rewritten with no new major features. Both on iOS and Android. That said, getting these out in 2022 will still be a challenge. Time (and kids) will tell.</p><p>I hope to write to you again at least a few more times this year. <em>When</em> I have something meaningful to share. Thanks for your continued interest and support in what I do. It takes time &#8211; because I&#8217;m built this way &#8211; but it&#8217;s historically been worth the wait. To the next one! </p><p>If you have any questions on <a href="https://timing.is">t:m:ng</a>, Appy Weather 2 or anything else, hit reply.</p><p>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E50 – Gimme a Break]]></title><description><![CDATA[Good evening &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e50-gimme-a-break</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e50-gimme-a-break</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 12 Dec 2021 20:16:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good evening &#128075;</p><p>After <em>two</em> years, we&#8217;re visiting family. For the first time in probably that long, I haven&#8217;t even thought about writing a single line of code. Even more foreign is how I don&#8217;t feel remotely bad about it (I&#8217;m the character who feels guilty when I force myself to Netflix over Xcode on any given evening). I don&#8217;t know whether I&#8217;ll relapse at any point in the next three weeks. Regardless, I have a good feeling that when I&#8217;m back in the New Year, I&#8217;ll be at 100% &#8211; something I&#8217;ve clearly not been for some time &#8211; determined to deliver on 2021&#8217;s promise.<br><br>Have a great week! Hope you all have a relaxing end to the year, surrounded by the people who matter most.<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E49 – Upgrade Season]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e49-upgrade-season</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e49-upgrade-season</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 05 Dec 2021 09:00:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>It&#8217;s been an expensive end to my year. <a href="https://www.fully.com/standing-desks/jarvis-adjustable-height-desk-bamboo.html">New (standing) desk</a>, <a href="https://www.lg.com/uk/monitors/lg-27up850-w">new (4K) monitor</a>, <a href="https://www.apple.com/uk/macbook-pro-14-and-16/">new (14&#8221; Max) laptop</a>. That&#8217;s around &#163;4k in new gear. I&#8217;ve managed to make back &gt; 50%  selling what they replace. All in all, not bad business considering I expect the combination to meaningfully boost productivity. The M1 Max MacBook Pro in particular has been a revelation for a few reasons:</p><ol><li><p>I can actually work on the couch again in the evenings because the battery doesn&#8217;t leak and my thighs don&#8217;t fire up. It&#8217;s enjoyable too because of the smaller form factor (I&#8217;m technically downgrading from the previous 16&#8221; Intel Mac).<br></p></li><li><p>Performance is incredible, even on battery. Building a project is so fast that I have no reason to momentarily switch to Safari. Sounds like a silly thing to write, but the difference just several <em>seconds</em> make shouldn&#8217;t be underestimated.</p></li></ol><p>I still haven&#8217;t received the desk, and won&#8217;t set up the monitor until I have (I&#8217;m weird like that). I&#8217;ve found that there are consistent periods during the day when I&#8217;m struggling to get going, usually in the mornings these days. If the desk&#8217;s standing position manages to reduce this lull period by just 50% even, then it will make a big difference and would have been money well spent. Plus my back. I&#8217;m upgrading from a 2K 25&#8221; monitor to a 4K 27&#8221;. Hopefully that&#8217;s enough additional room to enable more focused sessions on the single screen (laptop in clamshell mode). As the desk is 20cm longer, this would mean I can use my mechanical keyboard again too. I expect the full setup to be in place at the start of the New Year. Can&#8217;t wait!</p><p>Have a great Sunday!<br><br>Best,<br>Bardi<br><br>P.S. on the topic of focus, I can&#8217;t believe the year is 2021 and neither MacOS or Windows allow you to have different Docks/Taskbars per virtual desktop. </p>]]></content:encoded></item><item><title><![CDATA[S03E48 – Keep it Obvious Stupid]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e48-keep-it-obvious-stupid</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e48-keep-it-obvious-stupid</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 28 Nov 2021 09:00:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>At least half of my iPad&#8217;s value is unlocked through the Apple Pencil. As far as I&#8217;m concerned the iPad is the companion accessory. For the last year, I&#8217;ve tried out numerous apps to ideate in freeform. Originally, I thought a blank white infinite canvas was what I was looking for. But the lack of boundaries made things become a mess quickly. And although prioritising my content over the app&#8217;s chrome puts it in focus and is arguably optimal in certain contexts (imagine you could <em>only</em> write in Word in its reader mode), it became apparent that I have an inherent bias towards less because of the designer in me. This would result in a clean, minimal outputs that look great in screenshots but their everyday utility was compromised because it was work to make the app work. No to a button &#8211; let&#8217;s dump everything into this menu. No to having a visible drawer that will reduce vertical content by 30 pixels &#8211; let&#8217;s hide it behind a swipe. Etc. </p><p>I came across <a href="https://www.goodnotes.com">GoodNotes</a> recently &#8211; an important find that will be a big influence on the next generation of Third Culture Apps. Instantly it was clear their developers were not motivated to build the prettiest, most modern piece of software. They wanted to create a note-taking app you would admire not for its aesthetic but its utility. I mean it has an actual toolbar that&#8217;s fixed in place. It looks old fashioned but damn it works. My first instinct (and most others&#8217; I suspect judging by other apps I tested) would be to have a single button within to switch between the thickness levels. But they have <em>three</em>! Same applies to colour. I continue to use it everyday because it prioritises my speed and not a designer&#8217;s ego.</p><p><a href="/__u/thirdculture.substack.com/p/s03e47-five-is-one-too-many">Last week</a> I had an idea. I built it, and it was pretty much what I had in mind. But the mind can play tricks on you. There were many elements in Appy Weather&#8217;s initial release that were unnecessarily clever. Most users didn&#8217;t appreciate it because most didn&#8217;t get it. Huh? I didn&#8217;t know I could&#8230; Who was I trying to impress? This idea I had fell in this bucket. So I scrapped it. And went with the simple obvious option: visible tabs on the Forecast screen to switch between Hourly, Daily, and Timeline. It just works. I can unashamedly confirm 2.0 will have a more dense UI than its predecessor. The challenge is to somehow keep things <em>feeling</em> clean. To make more feel as little as possible.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi<br><br>P.S. &#8220;<a href="https://mtrostyle.gumroad.com/l/keepgoing/black">Keep Going</a>&#8221; is available this Black Friday for 66% off! It&#8217;s made $150 during the promotion so far. I hope to use the funds generated to finally purchase a <a href="https://www.fully.com/standing-desks/jarvis/jarvis-adjustable-height-desk-bamboo.html">Fully Jarvis</a> (I&#8217;ve had an eye on it for some time and with it being 20% off this month, it&#8217;s a case of buy it now or next November). I&#8217;m still short by a few hundred dollars but hope to make up the gap as much as possible in the next few days. A better back = more productive days = faster releases in 2022.</p>]]></content:encoded></item><item><title><![CDATA[S03E47 – Five is One Too Many]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e47-five-is-one-too-many</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e47-five-is-one-too-many</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 21 Nov 2021 09:00:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>Appy Weather 2 started the week with <em>five</em> tabs:</p><ol><li><p>Timeline </p></li><li><p>Forecast (Hourly, Daily etc.)</p></li><li><p>Radar</p></li><li><p>&#129296;</p></li><li><p>&#129296;</p></li></ol><p>But it ends the week on four. Technically one more than the existing version, but when you consider the radar is currently accessible from a FAB (floating action button), then it&#8217;s a tie really. That&#8217;s impressive considering it will retain all screens from 1.0 but manage to add two entirely new ones. How&#8217;s it possible to fit in more within the same screen estate? Without it becoming a bloated mess. Well, craftsmanship doesn&#8217;t happen quickly. A lot of thought was put into it. And I mean <em>a lot</em>. The Timeline on its own will essentially integrate all existing screens besides the radar (for the time being, but there&#8217;s every possibility it may make the cut too if I can figure it out). Animations play a huge part in this deal. This is another concrete example of a scenario where SwiftUI has empowered me to build a UI that I wouldn&#8217;t have even remotely considered otherwise. That said, I&#8217;ve only sketched concepts so far. Although it&#8217;s theoretically promising, I can&#8217;t be certain the current vision has actually strong legs. I&#8217;ll find out next week. I&#8217;ll let you know.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E46 – Options]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e46-options</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e46-options</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 14 Nov 2021 09:00:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p><a href="/__u/thirdculture.substack.com/p/s03e45-strength-in-numbers">Last week</a> I touched on how work on the un-announced project has had an impact on Appy Weather&#8217;s development. Let me elaborate. A couple of weeks ago I finalised the system that allows an Appy Weather card go full screen. One card could be selected at a time. To open another involved first closing the selected card. A week later, the secret project had more requirements: 1) for the selected card to be one in a <em>set</em> and 2) to be able to open another card from the selected card, i.e. UI that can continue to be stacked. I then realised that Appy Weather would benefit from these changes too. For example, to be able to swipe between the hours in a day, days in a week etc. Or to open a specific hour from a day. A week later these changes have been copied across. Its extensibility is a win from a developer perspective, and it will benefit users too. The fit and finish is on point too thanks to the connected animations. So much so, I made a big call this week: cards when tapped on will automatically open in full screen.</p><p> That&#8217;s a change from the existing version whereby a tap expands the card with more details, but for it to go full screen required a long press. The previous intermediary state existed because my animation game was weak, and the unique data in the full screen designs wouldn&#8217;t justify the relative effort associated with a long press (<em>every second counts, and a long press may not be much more than a tap in absolute terms but it does feel like it!</em>). Neither will be the case anymore. The connected nature should make going full screen not feel any slower than a tap to moderately expand, and you&#8217;ll just want to go full screen because the data and its presentation is considered thoughtfully (<em>for example, the Now card in fullscreen will show differently to Next Hour&#8217;s because the time should change requirements</em>). Long presses are not necessarily expected and more likely to be missed. And so, a tap should prioritise what I think will be more useful to the user. </p><p>That&#8217;s not to say there won&#8217;t be a long press associated with cards but if there will be, it&#8217;s more likely linked to modification of state than presentation of data. Predictability is always a usability win. In the current version, some cards expand on a tap, others go full screen actually, and some don&#8217;t do anything. Although each has a visual cue (or none) to suggest behaviour, I would much prefer if there were none needed because they all behaved the same (<em>this means every element within the existing Timeline will have a full-screen version, which has been a lot of fun to design</em>). The only thing I haven&#8217;t nailed and may be a catch is making it feel just as quick to move on to the next point of interest. Previously (currently) you could just scroll, but at the moment you&#8217;ll need to close the full screen card first. This needs to be &#128076; too. To be confirmed.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E45 – Strength in Numbers]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e45-strength-in-numbers</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e45-strength-in-numbers</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 07 Nov 2021 09:00:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>Working on multiple projects at a time can be tough because progress on each is theoretically reduced by at least half. But what&#8217;s arguably even worse is regularly switching projects after a lengthy break. The time it takes to re-adjust is an unnecessary waste. I&#8217;m a strong advocate that the start of any point in time, whether it&#8217;s a week or year, is the best time to make a change. At least that&#8217;s what my brain optimally responds to. That said, I consider the preceding period ideal to prepare optimisations for so that when the day comes, your training is complete. That is, I don&#8217;t want to press a hard reset button on January 1, but to soft launch during the next couple of months to make sure 2022 is my most prolific. I know for there to be multiple releases, I&#8217;ll need to dedicate similar attention to both, and nail my <em>timing</em>. </p><p>I finished the week on the second unannounced project, after taking a break from it for a month. It was a painful initial restart, but once I got over it, it was a net positive. A lot of UI building blocks originally built for Appy Weather were generalised to be app-agnostic. These are foundation pieces that will significantly reduce boilerplate code for future projects. More relevant were architectural differences between the two that made me question the approach I had taken with Appy Weather. It was a more simple take. And unless there&#8217;s a strong argument for rejecting simplicity, it&#8217;s usually the best option. So that&#8217;s a change I intend to make next week. </p><p>When you work on something, you&#8217;ll make mistakes. And those mistakes are the learnings for the next thing you work on. But when you work on more than <em>a</em> thing, it benefits from your learnings in real time. And, actually, even if the second project doesn&#8217;t offer any valuable insights that are directly applicable to the first, any time away from its grind mean you come back to it with fresh eyes. You questions things that you wouldn&#8217;t have seen if you were at it constantly. I know over the last year I&#8217;ve routinely weighed the pros and cons of spreading my focus. But approaching a new year, it&#8217;s become clear that I must make it work because it scales my possibilities. I&#8217;m reaching a level of technical competency whereby a generalist mindset could actually be my weapon of choice. That is, solve any problem in a way that <em>I</em> &#8211; not the app it&#8217;s originally for &#8211; benefit from it the most.  </p><p>Have a great Sunday!<br><br>Best,<br>Bardi<br></p>]]></content:encoded></item><item><title><![CDATA[S03E44 – The Final Update]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e44-the-final-update</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e44-the-final-update</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 31 Oct 2021 09:00:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>I put out what may be Appy Weather 1.0&#8217;s last update on Android this week. This doesn&#8217;t mean 2.0 is imminent, but just that I don&#8217;t have enough justification to put out any more updates for it. The primary reason being I consider the version in a sense complete &#8211; from a functionality as well as reliability perspective &#8211; and so any improvements can be deferred to 2.0. Therefore any time I spend on the current version unnecessarily delays the next. The other reason is from November 1 any updates to the Play Store require apps to be using a version of their billing library that I&#8217;m not on at the moment. When these requirements were first announced more than a year ago, I didn&#8217;t do anything in advance because I anticipated 2.0 to be out before then :( This might be a simple change, or it might end up being a pain. It touches such a critical area in the experience &#8211; and my livelihood &#8211; that I would much rather continue depending on the deprecated APIs that just work. So, I made sure the last update fixed any bugs that I considered worthwhile, enabling me to proceed guilt-free as I&#8217;ve not carelessly left any major inconvenience behind for any users. These plans would however change if there&#8217;s a serious issue that surfaces at some point, more likely due to external factors like an Android system update. Hopefully not!<br><br>Have a great Sunday!<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E43 – Shopping for Code]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e43-shopping-for-code</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e43-shopping-for-code</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 24 Oct 2021 08:00:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!I08t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>According to some, intelligence isn&#8217;t what you know but awareness of what you don&#8217;t. Based on this definition, I&#8217;m getting more intelligent. Following up <a href="/__u/thirdculture.substack.com/p/s03e42-the-flash">last week&#8217;s charting adventures</a>, I wanted to challenge myself further: a chart that dynamically and continuously animates visualising the precipitation forecast. This was the last feature my external chart library boasted that I wanted to build my own version of, therefore enabling me to drop the dependency altogether. For a change, I decided the fastest (smartest?) way for me to accomplish this &#8211; and learn in the process &#8211; is by paying someone else to do it. I hopped onto <a href="https://www.fiverr.com/">Fiverr</a> and posted a job request, setting a budget of $100 with expected delivery time of a single day (it was a big job for me, but for someone better than me, a day should be sufficient). It wasn&#8217;t long before I received a flurry of offers. Almost all clearly didn&#8217;t read the brief in their response and copy/pasted generic interest. Few were within budget but many above, some asking for as much as $800! Not impressed, I decided to directly reach out to an iOS developer on the service who was an established seller with ~50 positive reviews. They replied immediately and said they would give it a go. But despite their best efforts, they couldn&#8217;t meet the requirements &#8211; not even close &#8211; and we both agreed there&#8217;s no point for them to spend any more time on it. No money was exchanged.</p><p>I then reached out to an ex-colleague accomplished developer. I asked whether they 1) know how to accomplish what I&#8217;m after and 2) whether they&#8217;re available to do it themselves for whatever their hourly rate was. Although they had no direct experience, they were curious to learn, and see how much they can achieve in a short time. Free of charge!  Although they didn&#8217;t fully deliver on the requirements, they set me on my way. I took over and managed to get it to look like below:<br><br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!I08t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!I08t!, /__u/thirdculture.substack.com/w_424, /__u/thirdculture.substack.com/c_limit, /__u/thirdculture.substack.com/f_webp, /__u/thirdculture.substack.com/q_auto:good, /__u/thirdculture.substack.com/fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif 424w, /__u/substackcdn.com/image/fetch/$s_!I08t!, /__u/thirdculture.substack.com/w_848, /__u/thirdculture.substack.com/c_limit, /__u/thirdculture.substack.com/f_webp, /__u/thirdculture.substack.com/q_auto:good, /__u/thirdculture.substack.com/fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif 848w, /__u/substackcdn.com/image/fetch/$s_!I08t!, /__u/thirdculture.substack.com/w_1272, /__u/thirdculture.substack.com/c_limit, /__u/thirdculture.substack.com/f_webp, /__u/thirdculture.substack.com/q_auto:good, /__u/thirdculture.substack.com/fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!I08t!, /__u/thirdculture.substack.com/w_1456, /__u/thirdculture.substack.com/c_limit, /__u/thirdculture.substack.com/f_webp, /__u/thirdculture.substack.com/q_auto:good, /__u/thirdculture.substack.com/fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!I08t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif" width="149" height="322.91021671826627" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:323,&quot;resizeWidth&quot;:149,&quot;bytes&quot;:372726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!I08t!, /__u/thirdculture.substack.com/w_424, /__u/thirdculture.substack.com/c_limit, /__u/thirdculture.substack.com/f_auto, /__u/thirdculture.substack.com/q_auto:good, /__u/thirdculture.substack.com/fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif 424w, /__u/substackcdn.com/image/fetch/$s_!I08t!, /__u/thirdculture.substack.com/w_848, /__u/thirdculture.substack.com/c_limit, /__u/thirdculture.substack.com/f_auto, /__u/thirdculture.substack.com/q_auto:good, /__u/thirdculture.substack.com/fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif 848w, /__u/substackcdn.com/image/fetch/$s_!I08t!, /__u/thirdculture.substack.com/w_1272, /__u/thirdculture.substack.com/c_limit, /__u/thirdculture.substack.com/f_auto, /__u/thirdculture.substack.com/q_auto:good, /__u/thirdculture.substack.com/fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!I08t!, /__u/thirdculture.substack.com/w_1456, /__u/thirdculture.substack.com/c_limit, /__u/thirdculture.substack.com/f_auto, /__u/thirdculture.substack.com/q_auto:good, /__u/thirdculture.substack.com/fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fed34a630-c216-4009-84cb-e11e91be33ef_323x700.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Dummy animated precipitation forecast visual</figcaption></figure></div><p>It still requires a lot more refining but that&#8217;s a pretty solid turnaround for a few hours. And with this, I have 100% control/knowledge on the chart drawing code. This is going to make a big difference in getting them to feel how I want and present what I need.</p><p>The unproductive experience on Fiverr was important. With most of Appy Weather 2&#8217;s logic in place, I&#8217;m starting to think of the Android rewrite. I could do it myself but this would mean my 2022 will be mostly spent on this, as I&#8217;m learning a whole new language and UI framework &#8211; this is the appeal of cross-platform frameworks that I&#8217;m rejecting this time around. Or I could hire someone to do the job. Definitely not from Fiverr though. I did some research and came across <a href="https://proxify.io/en/android/developer?gclid=CjwKCAjw5c6LBhBdEiwAP9ejG8ciq8BvUhGCevQoZ2DtR1RDA_7Hx0vvLae5DFDZJ2sSdbY_SpgPthoCduMQAvD_BwE">Proxify</a>. They interview/vet coders so people like myself can feel assured that you&#8217;re hiring someone competent. But it comes at a premium: ~&#163;30/hr. My requirements can be broken down into two parts: 1) translate the logic from Swift to Kotlin and 2) build the UIs. It&#8217;s likely I&#8217;ll outsource 1) whereas 2) is a possibility too. But this could end up costing something like &#163;10k! Perhaps less, but possibly even more. The question is whether I feel the 2.0 <em>on Android</em> will result in increased revenues that would at least make my money back over 6-12 months. I feel it <em>could</em>, but I&#8217;m not 100% yet. In the meantime, I&#8217;ll probably start conversations with one or more agencies soon.<br><br>Have a great Sunday!<br><br>Best,<br>Bardi</p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[S03E42 – The Flash]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e42-the-flash</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e42-the-flash</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 17 Oct 2021 08:00:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>This week was spent mostly working on charts. The current version of Appy Weather has quite a few, but v2 makes them an integral part of the experience. Prior to this week, <a href="https://github.com/danielgindi/Charts">Daniel Gindi&#8217;s popular iOS charts library</a> was being used to create them. It provided a ton of functionality and customisation. That&#8217;s arguably because it&#8217;s built on a legacy UI framework (not SwiftUI). So there was something about its look and feel that didn&#8217;t feel modern, and therefore misaligned with the rest of the app&#8217;s UX. I had similar feelings when actually working on it. The codebase was massive and just identifying the relevant area of code was a challenge. Forget about the hacks involved to make the desired tweaks. So on Friday I decided to see whether I can build something myself. 30 minutes later I had. What! It was a range bar chart, similar to the one already being used on the Daily screen visualising the weather for the next seven days. I then challenged myself to go one better. Am I able to have another visual within it to indicate precipitation levels? Yes I was. To round it off, now that everything was in SwiftUI, could I get it to animate? Of course! A lot of the credit goes to SwiftUI (and its incredibly community). I have never felt so empowered when building interfaces. I would never have even considered attempting this in any other UI framework, forget about actually pulling it off. I need to take some credit too. </p><p>Earlier in the week instead of directly focusing on the chart&#8217;s visuals, I went on a side-quest to optimise the data it receives as inputs to make it seamless to display any data in chart form. See, most data points have different units and scales, e.g. the UV index ranges from 1 to 11, and that&#8217;s different to temperature. For charts to display either correctly, either I customise chart&#8217;s interpretation of the data on a per point basis (what I do currently in v1), or I somehow make the values it receives to follow a consistent scale. It took a bit of trial and error and some creativity but I cracked it. What this facilitates is super easy charts to build and maintain, and therefore expect to see a lot more of them in v2. It&#8217;s going to be a visual treat.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E41 – The Writer’s Bug]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e41-the-writers-bug</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e41-the-writers-bug</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 10 Oct 2021 08:00:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;<br><br>I started the year with two writing-oriented goals for the year: 1) <a href="/__u/thirdculture.substack.com/p/s02e25-november-rain">the book</a> and 2) a new developer-centric newsletter, to tie in with the book. The first shipped independently. I forgot about the second until this week. Sort of. As I begin to <em>see</em> progress daily &#8211; heck hourly (I&#8217;m building UIs super efficiently in SwiftUI) &#8211; it&#8217;s made me want to give back to the developer community by publishing technical posts demonstrating how I built specific UIs and what convenience functions I use to speed up my workflow. Based on what I&#8217;ve built in a short time (remember up until recently, most of the progress was on the non-user facing foundational elements), I&#8217;m pretty confident there will be an audience for it. I know because these are the sort of problems I wish someone else had written for me. Would have saved me a ton of bother and time. But I&#8217;m in retrospect lucky no one had as that motivated me to learn by doing. And I expect this to continue to be the case as the solutions I&#8217;m usually after are bespoke. I can&#8217;t help but be specific in my requirements, whereas most tutorials keep it understandably general/basic. That&#8217;s the other draw. Usually technical posts were intended first (and probably solely) for the writer&#8217;s readers and not any app they&#8217;re working on. It doesn&#8217;t make it any less helpful but the root of its purpose arguably makes it less interesting/unique. <br><br>By committing to this, I hope for a few things in return for my time/knowledge. More people to check out the book. Build up my audience in anticipation for the iOS releases next year. And most importantly to become a better coder. I know teaching is the most effective way to learn. There&#8217;s admittedly a part of me anxious about presenting my code for others to judge, but I&#8217;m at an age when what I do is more motivated by progress than defence. It will be clear I&#8217;m not the best technically but I hope what shows even more is that I gave it a lot of thought. I&#8217;ve signed up to <a href="https://ghost.org">Ghost</a> to get something up asap. It&#8217;s not cheap but I want to focus on writing exclusively. The DIY approach may lead to more fun results but less writing. App development is enough development.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E40 – The Theory of Relativity]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e40-the-theory-of-relativity</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e40-the-theory-of-relativity</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 03 Oct 2021 08:00:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>What is good weather? What is bad weather? These are difficult questions to answer, and arguably impossible to generalise. It varies per person with location a big factor. I remember getting a confused/unimpressed email from a user querying why I show a sad face when the weekend is expected to rain. He was clearly not a Londoner. But likely someone living somewhere where the occurrence of rain is considered special, or maybe someone who benefits from it somehow (I can confirm farmers use weather apps). So, on one hand, I&#8217;ve sort of given up on the idea that the app would make these generalisations. But I want to delegate this responsibility to the user. Let them inform the app what they consider to be ideal conditions and whether they&#8217;re bothered by the rain. </p><p>The other semi-related goal is to make it easy for users to understand what the weather will actually be like in x-hours by routinely contextualising it on their terms. Because a number is meaningless without context. Version 1 already indicates what the temperature difference between today v tomorrow will be on the Timeline for this reason. Did you think it was cold today? Well, it&#8217;s even colder tomorrow. The temperature as a standalone number matters less than what you feel. This clarity occurred late last night when I was sketching. And this didn't happen by accident. With the backbone of v2 pretty much there, I can ideate once again. This usually occurs at the very start of a project when it&#8217;s the formation of these ideas that motivate you to get started. Then it goes on hiatus until you&#8217;ve returned from dev slug &#8211; an unforgiving place that some never return from. I just about managed. I&#8217;m pumped for the next 12 weeks. The fun restarts.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E39 – Dear Kai]]></title><description><![CDATA[Dear Kai,]]></description><link>https://thirdculture.substack.com/p/s03e39-dear-kai</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e39-dear-kai</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 26 Sep 2021 19:55:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Dear Kai,<br><br>Today you turned <em>five</em>. Exactly this minute &#8211; 20:55. It&#8217;s weird though. Although the last five years (<em>especially last two</em>) feel like an actual lifetime &#8211; what was I before 2016? &#8211;  I don&#8217;t understand how you&#8217;ve reached this milestone either. It was only yesterday a long time ago when we brought you home for the very first time. There are a couple of things they (parents) don&#8217;t tell you when you&#8217;re still expecting. Firstly, although it&#8217;s been a privilege to watch you grow every day, and I&#8217;m so, so proud to be <em>your</em> Dad, it&#8217;s also painful. It hurts to know that you won&#8217;t ever be four again. That was it. The consolation prize is I don&#8217;t think I could have possibly been around any more than I had been. No regrets. I was there for your entire fourth season. And it was the best yet. But I bet the next season will be even better. And I&#8217;ll become a better person for the experience. Because that&#8217;s the second thing. I&#8217;m learning from you every day. About dinosaurs, amazing machines and life. You gave mine meaning and top it up every day. You know how they say I see myself in someone. Well, I feel myself in you. <em>I get you</em>. And I&#8217;ll do my best to get you to wherever you belong. Hopefully when you read this, you&#8217;re there. If not, <em>keep going</em>. </p><p>I love you, my love. <br><br>Best,<br>Daddy</p>]]></content:encoded></item><item><title><![CDATA[S03E38 – A to B]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e38-a-to-b</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e38-a-to-b</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 19 Sep 2021 08:00:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>I&#8217;m aiming to create tactile experiences with the next generation of Third Culture Apps. To achieve this goal, the apps need to animate naturally at any interaction point. This week&#8217;s R&amp;D was spent on whether I can get a card to expand to fullscreen. I had actually already achieved the intended effect several months ago, but with work progressing, it became apparent that it was more of a hack with undesired side-effects. I have two options at this point: either keep trying to figure a way &#8211; it&#8217;s surprisingly not a popular request and may actually not be possible due to the UI framework&#8217;s relative immaturity &#8211; or give up and just navigate to a second screen, i.e. the experience becomes less fluid and technically disconnected. As always, my requirements are quite specific which make Googling a solution a challenge (ones I&#8217;ve found require the card in its collapsed state to be of a fixed height, whereas I need their height to be variable). I&#8217;ve found in these circumstances I&#8217;m more productive when I&#8217;m actually not behind the keyboard trying to force an outcome. I&#8217;ve belatedly realised &#8211; and come to appreciate &#8211; that coding actually benefits greatly from creativity. Any problem does.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E37 – It’s Good to be Back]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e37-its-good-to-be-back</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e37-its-good-to-be-back</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 12 Sep 2021 08:00:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>Friday was my first full day of uninterrupted work. And boy, did it feel good. Everything is relative though, right? I remember having these same hours to work before and it never feeling adequate. But considering everything that happened in the last five months &#8211; second baby followed by the school summer holidays &#8211; six hours feels like a substantial time. There are a few reasons why I think I feel this now. When you feel like you&#8217;re playing catch up, slacking off is not an option. I&#8217;m a better software architect as well as more comfortable with Swift. A lot of the nitty gritty work is complete. In other words, I&#8217;m coming back into the game with better skills on solid foundations to build on top of and just grateful to have any meaningful time to focus, i.e. I can get a lot more done in six hours today than six months ago. And so when it&#8217;s school pick-up time, it&#8217;s a stop I&#8217;m pleased about. </p><p>Thanks to these developments, my evenings have more purpose and structure too. I finally watched my first WWDC 2021 video that had been queued for months &#8211; 40 minutes that will make a big difference next week in terms of UI optimisations. On the back of a week when I <em>finally</em> &#8211; pretty much &#8211; wrapped up the code generating summaries for a period of days. What&#8217;s left is doing similar for minutes that&#8217;s used when precipitation is forecast over the next 60 minutes and when I have access to minutely data. Also &#8211; and finally &#8211; generating summaries for days based on hourly data (attentive subs will recall I had completed hourly summaries for an undefined set of hours already, but those strings won&#8217;t be optimal for when the hours represent a full day). This is since I don&#8217;t want to depend on weather service providers&#8217; because they can be unhelpful &#8211; poor even,&nbsp;if not in English then other languages &#8211; and I want the summaries to feel consistent.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi</p><p></p>]]></content:encoded></item><item><title><![CDATA[S03E36 – Summer of 21]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e36-summer-of-21</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e36-summer-of-21</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 05 Sep 2021 08:00:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>My boy goes back to school tomorrow. The summer holidays are up. I didn&#8217;t work as much as I needed to over the past six weeks. But not any more than I <em>wanted</em> to. It took to my 30s to realise &#8211; probably after having a kid &#8211; that life <em>is</em> simple. It&#8217;s always a matter of priorities. What is the <em>more</em> important thing at any moment. If I wanted to get more done over the holidays, I could have walked to the nearest coffee shop and code in peace. I <em>love</em> what I do. It&#8217;s not work. It&#8217;s a passion. But there&#8217;s nothing I&#8217;m more passionate about than being with family. The path I&#8217;ve taken with independent development enables me to maximise this time. What is the point of an iOS release if it&#8217;s at the expense of my presence. Not enough. </p><p>Fortunately, I&#8217;m still profiting from the business strategy set when I launched Appy Weather on Android two years ago. Specifically going with subscriptions without a lifetime purchase option. This combined with last year&#8217;s relentless pursuit to appeal to Dark Sky users who were looking for a new weather home has meant I could afford to get away with a summer that has little to show for in terms of progress. August 2020 was my blockbuster month when Dark Sky became unavailable. Although I knew I won&#8217;t make as much this time around because subscription retention is a difficult business &#8211; despite now taking 85% of each sale &#8211; I made more than I was expecting. Somewhere around 70% of last year&#8217;s figure. Not bad for an app that&#8217;s been in effectively maintenance mode for the last 12 months. </p><p>And with school reopening and darkness beckoning, there are four months to go &#8211; and 16 more newsletter episodes &#8211; for me to re-prioritise to get through as much as possible before the year is up. <a href="/__u/thirdculture.substack.com/p/s03e01-the-new">A year that began with me outlining eight projects I aimed to ship within the next 12 months</a>. Even if I bring my A-game to the time remaining, it&#8217;s still unlikely I&#8217;ll end the year with anything other than the book to show for it. But the goal at this point is to start 2022 really strong. These next few months will be critical.</p><p>Have a great Sunday!<br><br>Best,<br>Bardi</p>]]></content:encoded></item><item><title><![CDATA[S03E35 – WB]]></title><description><![CDATA[Good morning &#128075;]]></description><link>https://thirdculture.substack.com/p/s03e35-wb</link><guid isPermaLink="false">https://thirdculture.substack.com/p/s03e35-wb</guid><dc:creator><![CDATA[Bardi Golriz]]></dc:creator><pubDate>Sun, 29 Aug 2021 08:00:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pSQx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F33d7b832-66d5-41fc-88b4-28394d6db318_688x688.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good morning &#128075;</p><p>I went <em>four</em> days without the laptop this week. Some record. Back now but not feeling any more motivated than I was before the break unfortunately. I did have an entire Friday all to myself afterwards though. The first time for a year. The last time I was home alone, I made the big call to go all-in on native iOS development. The outcome this time around was less profound. Good progress was made for what was effectively an 8-hour shift. It did make me wonder how much further along I would be on all projects if I consistently had this much time every day to focus on work. That said, I&#8217;m confident once the rewrites are complete, I wouldn&#8217;t need this much time anyway. In fact, the rewrites are primarily motivated by the idea that they&#8217;ll significantly accelerate development. Achieve much more in much less. For next week, possibly the biggest item is to test Appy Weather and ruff on Android 12. It&#8217;s probably being released in a couple of weeks, so need to make sure there are no issues with either. I&#8217;m slightly concerned 12&#8217;s visual design changes &#8211; particularly with widgets &#8211; may have some unintended side-effects that need to be attacked asap. I should have looked into this sooner, but there&#8217;s been absolutely no motivation for some time to work on existing projects (<em>for a v1, they&#8217;re feature complete and with no serious issues either I&#8217;ve been comfortable with putting their development on hiatus until their v2s ship</em>). Besides compatibility tests, I&#8217;ll possibly use it as an opportunity to fix a few niggles that have been reported with both over the last few months. And perhaps slip in the book release.</p><p>Have a great Sunday!</p><p>Best,<br>Bardi</p>]]></content:encoded></item></channel></rss>