<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Arnaud Joubay — Writes</title><description>Notes on SwiftUI, Xcode, Rails, and building indie apps.</description><link>https://sowenjub.me/</link><item><title>How to delete an app and all iCloud/CloudKit data</title><link>https://sowenjub.me/writes/how-to-delete-an-app-and-all-icloud-cloudkit-data/</link><guid isPermaLink="true">https://sowenjub.me/writes/how-to-delete-an-app-and-all-icloud-cloudkit-data/</guid><description>We hear a lot about the difficulties of backing up Core Data / SwiftData with CloudKit. But on the other hand, when it works, CloudKit does its job well: it&apos;s v</description><pubDate>Tue, 05 Mar 2024 10:18:58 GMT</pubDate></item><item><title>How to upload dSYMs files to Sentry with Xcode Cloud</title><link>https://sowenjub.me/writes/how-to-upload-dsyms-files-to-sentry-with-xcode-cloud/</link><guid isPermaLink="true">https://sowenjub.me/writes/how-to-upload-dsyms-files-to-sentry-with-xcode-cloud/</guid><description>I have 3 Xcode Cloud workflows: * any update on the `dev` branch creates a build for Internal Testing * any update on the `main` branch creates a build for Exte</description><pubDate>Thu, 25 Jan 2024 17:24:44 GMT</pubDate></item><item><title>Searchable vs. Textfield in a sheet deployed with  presentationDetents</title><link>https://sowenjub.me/writes/searchable-vs-textfield-in-a-sheet-deployed-with-presentationdetents/</link><guid isPermaLink="true">https://sowenjub.me/writes/searchable-vs-textfield-in-a-sheet-deployed-with-presentationdetents/</guid><description>Let&apos;s start with a little background. There are various reasons why people use No Meat Today. Generally speaking, they want to reduce the amount of meat they ea</description><pubDate>Fri, 16 Dec 2022 13:49:33 GMT</pubDate></item><item><title>How I made my app 73% lighter</title><link>https://sowenjub.me/writes/how-i-made-my-app-73-percent-ligther/</link><guid isPermaLink="true">https://sowenjub.me/writes/how-i-made-my-app-73-percent-ligther/</guid><description>Last summer I noticed that my app had gained weight, but I wasn&apos;t sure what caused it and how to investigate. After playing with Single Size icons, I became fam</description><pubDate>Thu, 17 Nov 2022 11:02:04 GMT</pubDate></item><item><title>Single Size Icons: Solving &quot;Core Data API misuse&quot; and &quot;Command CompileAssetCatalog failed with a nonzero exit code&quot;</title><link>https://sowenjub.me/writes/single-size-icons-solving-command-compileassetcatalog-failed-with-a-nonzero-exit-code/</link><guid isPermaLink="true">https://sowenjub.me/writes/single-size-icons-solving-command-compileassetcatalog-failed-with-a-nonzero-exit-code/</guid><description>⚡TLDR: make sure that: * your complications assets have the proper Scale (Individual Scales for Circular and Graphic Extra large, Single Scale for the others) *</description><pubDate>Wed, 09 Nov 2022 15:34:29 GMT</pubDate></item><item><title>I&apos;m done with Semantic Versioning</title><link>https://sowenjub.me/writes/im-done-with-semantic-versioning/</link><guid isPermaLink="true">https://sowenjub.me/writes/im-done-with-semantic-versioning/</guid><description>Until now, the marketing version of my apps was set using Semantic versioning as my Software versioning scheme. I did that out of habit and without seriously th</description><pubDate>Thu, 27 Oct 2022 13:55:23 GMT</pubDate></item><item><title>Localizing App Shortcuts with App Intents</title><link>https://sowenjub.me/writes/localizing-app-shortcuts-with-app-intents/</link><guid isPermaLink="true">https://sowenjub.me/writes/localizing-app-shortcuts-with-app-intents/</guid><description>When implementing App Shortcuts with App Intents, it can be a bit daunting to localize everything. Below is a small inventory of each String, and how to transla</description><pubDate>Tue, 06 Sep 2022 12:42:07 GMT</pubDate></item><item><title>SwiftUI Canvas, Path, Shape, and View</title><link>https://sowenjub.me/writes/swiftui-canvas-path-shape-and-view/</link><guid isPermaLink="true">https://sowenjub.me/writes/swiftui-canvas-path-shape-and-view/</guid><description>Here are some personal notes about the differences between some basic elements of SwiftUI: * a Canvas [https://developer.apple.com/documentation/swiftui/canvas]</description><pubDate>Tue, 17 May 2022 08:50:09 GMT</pubDate></item><item><title>How to add a Diagnostic Mode using Settings.bundle and SwiftUI</title><link>https://sowenjub.me/writes/how-to-add-a-diagnostic-mode-using-settings-bundle-and-swiftui/</link><guid isPermaLink="true">https://sowenjub.me/writes/how-to-add-a-diagnostic-mode-using-settings-bundle-and-swiftui/</guid><description>Technical stuff shouldn&apos;t surface in your app, but it can be useful at times: let&apos;s see how we can enable a &quot;Diagnostic Mode&quot; or a &quot;Developer&quot; menu in your app </description><pubDate>Wed, 27 Apr 2022 09:39:54 GMT</pubDate></item><item><title>How an enum with associated values can conform to the Identifiable protocol</title><link>https://sowenjub.me/writes/identifiable-enum-with-associated-values/</link><guid isPermaLink="true">https://sowenjub.me/writes/identifiable-enum-with-associated-values/</guid><description>Here I&apos;ll show you how you can easily make an enum conform to the Identifiable protocol and how you can use this in your SwiftUI views. In my app No Meat Today </description><pubDate>Fri, 11 Jun 2021 19:38:00 GMT</pubDate></item><item><title>Localizing your App Store marketing content with Localazy and Fastlane</title><link>https://sowenjub.me/writes/localizing-your-app-store-marketing-content-with-localazy/</link><guid isPermaLink="true">https://sowenjub.me/writes/localizing-your-app-store-marketing-content-with-localazy/</guid><description>I briefly talked about my setup in https://paraside.in/translating-your-ios-app-with-localazy/ [https://sowenjub.me/writes/translating-your-ios-app-with-localaz</description><pubDate>Sun, 30 May 2021 13:36:22 GMT</pubDate></item><item><title>Translating your iOS app with Localazy</title><link>https://sowenjub.me/writes/translating-your-ios-app-with-localazy/</link><guid isPermaLink="true">https://sowenjub.me/writes/translating-your-ios-app-with-localazy/</guid><description>A couple of people have asked me to translate No Meat Today [https://nomeat.today] in their language, but the last time I tried to tackle that, none of the solu</description><pubDate>Fri, 28 May 2021 22:00:27 GMT</pubDate></item><item><title>Capybara: 2 ways to click links in emails</title><link>https://sowenjub.me/writes/capybara-2-ways-to-click-links-in-emails/</link><guid isPermaLink="true">https://sowenjub.me/writes/capybara-2-ways-to-click-links-in-emails/</guid><description>If you want to write system tests you&apos;ll probably want to cover a use-case involving an email sent to a user (for instance, a sign up confirmation link). There </description><pubDate>Fri, 18 Dec 2020 23:00:00 GMT</pubDate></item><item><title>Replacing Selenium with Cuprite for Rails system tests</title><link>https://sowenjub.me/writes/replacing-selenium-with-cuprite-for-rails-system-tests/</link><guid isPermaLink="true">https://sowenjub.me/writes/replacing-selenium-with-cuprite-for-rails-system-tests/</guid><description>In the world of tests [https://guides.rubyonrails.org/testing.html], system tests are as close to real users as it gets: you control a browser and make it use y</description><pubDate>Thu, 17 Dec 2020 23:00:00 GMT</pubDate></item><item><title>Auto-linking URLs with Trix Editor and StimulusJS</title><link>https://sowenjub.me/writes/auto-linking-urls-with-trix-editor-and-stimulusjs/</link><guid isPermaLink="true">https://sowenjub.me/writes/auto-linking-urls-with-trix-editor-and-stimulusjs/</guid><description>The https://trix-editor.org [https://trix-editor.org/] is fantastic, but there&apos;s one simple thing I expected to be built-in that isn&apos;t: copy/pasting a URL shoul</description><pubDate>Mon, 19 Oct 2020 22:00:00 GMT</pubDate></item><item><title>Multiple YAML defaults in Rails fixtures</title><link>https://sowenjub.me/writes/multiple-yaml-defaults-in-rails-fixtures/</link><guid isPermaLink="true">https://sowenjub.me/writes/multiple-yaml-defaults-in-rails-fixtures/</guid><description>You know that you can use YAML defaults in your fixtures [https://api.rubyonrails.org/v3.1/classes/ActiveRecord/Fixtures.html] to extract common attributes valu</description><pubDate>Tue, 25 Aug 2020 14:05:00 GMT</pubDate></item><item><title>Emoji picker controller with StimulusJS and Emoji Button</title><link>https://sowenjub.me/writes/emoji-picker-controller-with-stimulus-js/</link><guid isPermaLink="true">https://sowenjub.me/writes/emoji-picker-controller-with-stimulus-js/</guid><description>I needed an emoji picker for my latest Rails app and found Emoji Button [https://github.com/joeattardi/emoji-button] by @joeattardi that he introduced here [htt</description><pubDate>Wed, 15 Jul 2020 20:01:00 GMT</pubDate></item><item><title>Rails+TailwindCSS: adding &quot;required&quot; to form labels (and how to find the solution by yourself)</title><link>https://sowenjub.me/writes/required-form-label-with-rails-tailwindcss/</link><guid isPermaLink="true">https://sowenjub.me/writes/required-form-label-with-rails-tailwindcss/</guid><description>This post addresses a simple need: adding a &quot;required&quot; text next to any form field label that is… required.</description><pubDate>Fri, 10 Jul 2020 20:01:00 GMT</pubDate></item></channel></rss>