<?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:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Fernando Moya de Rivas on Medium]]></title>
        <description><![CDATA[Stories by Fernando Moya de Rivas on Medium]]></description>
        <link>https://medium.com/@fmdr.ct?source=rss-30da8e1508ce------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*gHkcZtnI9izq8LIq2J9LSw.jpeg</url>
            <title>Stories by Fernando Moya de Rivas on Medium</title>
            <link>https://medium.com/@fmdr.ct?source=rss-30da8e1508ce------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 14 Apr 2026 03:56:52 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@fmdr.ct/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[How to Upload Images, Store Them and Serve Them With Vapor 4]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/how-to-upload-images-store-them-and-serve-them-with-vapor-4-6d2f12cee62f?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/1022/1*DuHsgJrzw6zc96EZQVUlRw.png" width="1022"></a></p><p class="medium-feed-snippet">Expand a TODO app to link images to specific lists of TODOs</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/how-to-upload-images-store-them-and-serve-them-with-vapor-4-6d2f12cee62f?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/how-to-upload-images-store-them-and-serve-them-with-vapor-4-6d2f12cee62f?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/6d2f12cee62f</guid>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[ios]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Fri, 15 Apr 2022 15:18:30 GMT</pubDate>
            <atom:updated>2022-04-15T15:18:30.336Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Getting Started With Vapor 4 — Model Relationships]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/getting-started-with-vapor-4-model-relationships-e6e73d6c2412?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/1022/1*DuHsgJrzw6zc96EZQVUlRw.png" width="1022"></a></p><p class="medium-feed-snippet">Expanding a to-do app and learning more advanced features of this server-first tool written in Swift</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/getting-started-with-vapor-4-model-relationships-e6e73d6c2412?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/getting-started-with-vapor-4-model-relationships-e6e73d6c2412?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/e6e73d6c2412</guid>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[api]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Wed, 30 Mar 2022 16:23:39 GMT</pubDate>
            <atom:updated>2022-03-30T16:23:39.130Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Getting Started With Vapor 4 —Build a Basic Todo App in Swift]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/getting-started-with-vapor-4-part-1-3d731e64fb45?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/1022/1*DuHsgJrzw6zc96EZQVUlRw.png" width="1022"></a></p><p class="medium-feed-snippet">Learn the basics (and not so basics) of this server-first tool written in&#xA0;Swift</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/getting-started-with-vapor-4-part-1-3d731e64fb45?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/getting-started-with-vapor-4-part-1-3d731e64fb45?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/3d731e64fb45</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[api]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Thu, 24 Mar 2022 14:44:52 GMT</pubDate>
            <atom:updated>2022-04-11T10:31:40.361Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Enforce Your Team’s Code-style With Git Hooks]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/enforce-your-teams-code-style-with-git-hooks-a892e584482b?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/2600/0*5o7TXI3WSlwYJ3jX" width="8533"></a></p><p class="medium-feed-snippet">Understand how to setup Git hooks</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/enforce-your-teams-code-style-with-git-hooks-a892e584482b?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/enforce-your-teams-code-style-with-git-hooks-a892e584482b?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/a892e584482b</guid>
            <category><![CDATA[automation]]></category>
            <category><![CDATA[ci]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[git]]></category>
            <category><![CDATA[software-engineering]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Wed, 09 Mar 2022 16:52:48 GMT</pubDate>
            <atom:updated>2022-03-09T16:52:48.072Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Hacking CocoaPods With cocoapods-catalyst-support]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/hacking-cocoapods-with-cocoapods-catalyst-support-eb2d7097e08b?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/1200/1*I2ZN933ZpeItswZVngaw8w.jpeg" width="1200"></a></p><p class="medium-feed-snippet">Quickly configure your pods to run only on Mac Catalyst or iOS and still use one main target</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/hacking-cocoapods-with-cocoapods-catalyst-support-eb2d7097e08b?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/hacking-cocoapods-with-cocoapods-catalyst-support-eb2d7097e08b?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/eb2d7097e08b</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[ruby]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Wed, 17 Mar 2021 17:21:14 GMT</pubDate>
            <atom:updated>2021-03-17T17:21:14.771Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Build a General Purpose API Kit With Combine]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/build-a-general-purpose-api-kit-with-combine-9344cfcf5a1b?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/1474/1*yxqC8M0qWbERAqS5y8_O0A.png" width="1474"></a></p><p class="medium-feed-snippet">No matter the remote host, HTTP method, or response type, this approach will serve any purpose your app may need</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/build-a-general-purpose-api-kit-with-combine-9344cfcf5a1b?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/build-a-general-purpose-api-kit-with-combine-9344cfcf5a1b?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/9344cfcf5a1b</guid>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[api]]></category>
            <category><![CDATA[swift]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Mon, 02 Nov 2020 16:42:55 GMT</pubDate>
            <atom:updated>2020-11-02T16:42:55.919Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Xcode Command-Line Tools: Use Cases]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/xcode-command-line-tools-use-cases-6eb331eda99d?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/2092/1*eH4DDaCBLTUSVOFxNfkVSg.png" width="2092"></a></p><p class="medium-feed-snippet">Build, archive, test, create an XCFramework, inject notifications, and simulate deeplinks</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/xcode-command-line-tools-use-cases-6eb331eda99d?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/xcode-command-line-tools-use-cases-6eb331eda99d?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/6eb331eda99d</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[xcode]]></category>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Tue, 01 Sep 2020 22:08:04 GMT</pubDate>
            <atom:updated>2021-01-07T15:52:02.279Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Continuous Integration With GitHub Actions]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/continuous-integration-with-github-actions-fccc5a339b75?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/1200/1*BZ_jv-xjX_FfJR5fQH_6UQ.png" width="1200"></a></p><p class="medium-feed-snippet">Implement three different workflows to test, bump the version, and publish a new release</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/continuous-integration-with-github-actions-fccc5a339b75?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/continuous-integration-with-github-actions-fccc5a339b75?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/fccc5a339b75</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[continuous-delivery]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[continuous-integration]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Wed, 12 Aug 2020 15:37:45 GMT</pubDate>
            <atom:updated>2020-08-12T15:37:45.732Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Paged Scroll in SwiftUI — A Step Ahead]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/paged-scroll-in-swiftui-a-step-ahead-c6a5f74f9924?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/1920/1*lJ170CH2zGlZQ6kAJKvyhg.jpeg" width="1920"></a></p><p class="medium-feed-snippet">A pager written 100% in SwiftUI code: From vertical pagers and multiple-page pagination to carousels</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/paged-scroll-in-swiftui-a-step-ahead-c6a5f74f9924?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/paged-scroll-in-swiftui-a-step-ahead-c6a5f74f9924?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/c6a5f74f9924</guid>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[sofware-engineering]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[swiftui]]></category>
            <category><![CDATA[ios]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Wed, 05 Aug 2020 14:29:04 GMT</pubDate>
            <atom:updated>2020-08-05T14:29:04.422Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Everything You Need to Know About iOS 14 Widgets]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/better-programming/everything-you-need-to-know-about-ios-14-widgets-10856eb76d2a?source=rss-30da8e1508ce------2"><img src="https://cdn-images-1.medium.com/max/2362/1*pAjZx-ljghstVfmr_PQyxA.jpeg" width="2362"></a></p><p class="medium-feed-snippet">Static vs. dynamic widgets, smart widgets, intent donations, and more</p><p class="medium-feed-link"><a href="https://medium.com/better-programming/everything-you-need-to-know-about-ios-14-widgets-10856eb76d2a?source=rss-30da8e1508ce------2">Continue reading on Better Programming »</a></p></div>]]></description>
            <link>https://medium.com/better-programming/everything-you-need-to-know-about-ios-14-widgets-10856eb76d2a?source=rss-30da8e1508ce------2</link>
            <guid isPermaLink="false">https://medium.com/p/10856eb76d2a</guid>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[ios-14]]></category>
            <category><![CDATA[ios-app-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[swift]]></category>
            <dc:creator><![CDATA[Fernando Moya de Rivas]]></dc:creator>
            <pubDate>Mon, 03 Aug 2020 14:14:15 GMT</pubDate>
            <atom:updated>2020-11-02T18:05:05.031Z</atom:updated>
        </item>
    </channel>
</rss>