<?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 Alessandro Manilii on Medium]]></title>
        <description><![CDATA[Stories by Alessandro Manilii on Medium]]></description>
        <link>https://medium.com/@alessandromanilii?source=rss-71ad5f0d2495------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*ltCQf_dGXQrBr3bvLAUgIA.png</url>
            <title>Stories by Alessandro Manilii on Medium</title>
            <link>https://medium.com/@alessandromanilii?source=rss-71ad5f0d2495------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 24 Apr 2026 07:01:27 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@alessandromanilii/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[Organized Views in SwiftUI]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@alessandromanilii/organized-views-in-swiftui-9901cc1caf64?source=rss-71ad5f0d2495------2"><img src="https://cdn-images-1.medium.com/max/1080/1*_dmO57wNTuYxwngoI3MKpg.jpeg" width="1080"></a></p><p class="medium-feed-snippet">How to Make a View File Neat and E&#xFB03;cient</p><p class="medium-feed-link"><a href="https://medium.com/@alessandromanilii/organized-views-in-swiftui-9901cc1caf64?source=rss-71ad5f0d2495------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@alessandromanilii/organized-views-in-swiftui-9901cc1caf64?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/9901cc1caf64</guid>
            <category><![CDATA[clean-code]]></category>
            <category><![CDATA[swiftui]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[swift]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Fri, 08 Aug 2025 07:48:03 GMT</pubDate>
            <atom:updated>2025-08-08T07:48:03.445Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[AdaptivePaddingScrollView in SwiftUI]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@alessandromanilii/adaptivepaddingscrollview-in-swiftui-36acce65519c?source=rss-71ad5f0d2495------2"><img src="https://cdn-images-1.medium.com/max/1280/1*84QXthUcEMcWpDPqmbyscg.jpeg" width="1280"></a></p><p class="medium-feed-snippet">AKA Keeping the Footer Where It Belongs</p><p class="medium-feed-link"><a href="https://medium.com/@alessandromanilii/adaptivepaddingscrollview-in-swiftui-36acce65519c?source=rss-71ad5f0d2495------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@alessandromanilii/adaptivepaddingscrollview-in-swiftui-36acce65519c?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/36acce65519c</guid>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[apple]]></category>
            <category><![CDATA[swiftui]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Wed, 23 Jul 2025 14:29:07 GMT</pubDate>
            <atom:updated>2025-07-23T14:29:07.849Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Dock App]]></title>
            <link>https://medium.com/@alessandromanilii/dock-app-e8aaf2793ce3?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/e8aaf2793ce3</guid>
            <category><![CDATA[swiftui]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[apple]]></category>
            <category><![CDATA[app-development]]></category>
            <category><![CDATA[aso]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Fri, 28 Mar 2025 10:41:17 GMT</pubDate>
            <atom:updated>2025-03-28T10:41:17.170Z</atom:updated>
            <content:encoded><![CDATA[<h4>A great tool for easy App Store management</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fJyhYrwfo_AlhIFQx3CY4Q.png" /></figure><p>Last week, I had to release eight versions of my apps — most of them were updates, and most involved apps with multiple localizations. A developer friend of mine had just released a Mac app designed to simplify this process, which on App Store Connect is usually incredibly slow and frustrating, so I decided to give it a try.<br>The app is called <strong>Dock</strong>, and I instantly fell in love with it!</p><p><a href="https://dock-app.com/">Dock: Ultimate ASO Tool for App Store Success for macOS</a></p><p>Subscribe and support me if you like using my <a href="https://www.patreon.com/CodingWithAlex"><strong>Patreon</strong></a> page</p><p><strong>Medium has updated its promotion and payout systems, so your likes and comments now make a BIG impact. Thanks for your support!</strong></p><h4>The First Launch</h4><p>On the first launch, you’re asked to enter a couple of details: the <strong>AuthKey</strong> and <strong>Issuer ID</strong>, to allow the app to connect to Apple’s platform. Of course, I couldn’t remember exactly what they were or where to find them. Luckily, Dock provides an info page that walks you through the entire process step by step. Within 5 minutes, I had everything filled out and was ready to go.</p><p>It’s worth noting that one of Dock’s key strengths is its focus on <strong>privacy and data security</strong>. Your App Store Connect credentials are never transmitted to external servers — they’re stored locally on your Mac. This eliminates the risks of sharing sensitive access and ensures you have full control over your credentials.</p><p>Once that’s done, all your apps on the store are loaded instantly (in the screenshot, I’ve blurred out a few that are still in development):</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yHqBTtMLy0gxPGoi5Bqr3Q.png" /></figure><p>If we select an app, the screen updates and we’re presented with <strong>four main sections</strong>: <strong>text contents</strong>, <strong>screenshots</strong>, <strong>reviews</strong>, and <strong>competitors</strong>.</p><h4>Text Contents</h4><p>This is perhaps the most important section — and of course, it comes first.<br>Here, you’ll configure all the <strong>text content</strong> for your App Store listing:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eJrNTCO2DA-keLXa-BKeEw.png" /></figure><p>We can immediately see that, depending on the selected version and language, <strong>Dock</strong> shows how we’re handling titles, subtitles, and keywords to achieve optimal positioning in App Store searches — what’s known as <strong>ASO</strong> (App Store Optimization).</p><p>The app automatically analyzes each keyword, indicating whether it’s been repeated elsewhere and showing its popularity on the store.</p><p>Using <strong>Artificial Intelligence</strong>, Dock performs a keyword analysis and provides smart suggestions. It’s up to us whether we want to follow them or not.</p><p>Moreover, when creating a new version, Dock is also capable of suggesting <strong>relevant keywords</strong> to improve discoverability.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*44rsoaWlkpq2Qz8_zqhgPQ.png" /></figure><p>One feature that saved me a <strong>ton of time</strong> during the publishing process is the ability to <strong>copy text</strong> — like the promotional message — from previous versions.</p><p>Otherwise, you’d have to manually re-enter it <strong>for each language</strong>, which is incredibly tedious and time-consuming.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GHRXufP-Psd3ZWxuPDYq_Q.png" /></figure><h4>Screenshots</h4><p>The second tab takes us to the <strong>screenshot management</strong> section for the images we’ve uploaded to the store.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*K_l799tepjBXnuyqTo6KyA.png" /></figure><p>Things get really interesting here as well.<br>We have the ability to <strong>change our existing screenshots</strong>, <strong>analyze them</strong>, and even <strong>create new ones</strong>.</p><p>By clicking the button below each screenshot, you can trigger an <strong>AI-powered analysis</strong> to evaluate its <strong>quality and effectiveness</strong>:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fL1GgjVYp0yOJRbr3c_4-A.png" /></figure><p>This is incredibly useful if you don’t have a design team or if you’re an <strong>indie developer doing everything in-house</strong>.</p><p>To support this DIY approach, the app also includes a <strong>screenshot editor</strong>, so you can create your own visuals directly within Dock.<br>In just a few minutes, you can produce a <strong>high-quality screenshot</strong> — perfect if you’re not familiar with design tools like Figma or similar.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4GlvBsrpSn7fUbR7FKcgqg.png" /></figure><p>Even with the screenshot editor tool, there’s the option to use <strong>Artificial Intelligence</strong> to generate a screenshot.<br>This feature is still experimental, but it can be a great starting point to build upon and refine.</p><h4>Reviews</h4><p>We’ve now reached the <strong>third tab</strong>, which allows us to <strong>manage reviews</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FZPcGqwQP7w4tFmkJmWsaQ.png" /></figure><p>In this screen, we can <strong>read and reply to user reviews</strong> posted on the App Store.<br>Here too, <strong>Artificial Intelligence</strong> comes to the rescue by analyzing the <strong>overall trend</strong> of the reviews.</p><p>Now, if you only have a handful of reviews, it’s easy enough to understand everything just by reading them. But if your app is getting <strong>a flood of feedback</strong> (lucky you! haha), the AI tool really helps by providing a <strong>summary</strong> and highlighting what users are asking for.</p><p>…Oh, and yes — I did end up adding <strong>Push Notifications</strong> to <strong>Beezly</strong> 😄</p><h4><strong>Competitors</strong></h4><p>In the <strong>last tab</strong>, we have the <strong>Competitors</strong> page.<br>Here, you can add apps that you consider to be <strong>competitors</strong> of your product and get a <strong>head-to-head comparison</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Yq28Jc8yuqQX3bCIY-M5XA.png" /></figure><p>On this screen, by clicking the <strong>“Compare”</strong> button, you can run an <strong>ASO analysis</strong> between your app and the selected competitor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*B-d1ffdTiWoXx0WrWDVN3w.png" /></figure><p>You can also view a <strong>comparison in terms of app size and performance</strong>, giving you insight into how your product stacks up against the competition.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_8w1bbAAMZVLlKojxWEowA.png" /></figure><p><strong>Conclusions</strong></p><p>In conclusion, <strong>Dock</strong> proves to be an incredibly powerful and developer-friendly tool for managing every aspect of App Store Optimization on macOS. Whether you’re an indie developer juggling multiple roles or part of a larger team looking to streamline your workflow, Dock offers smart, efficient solutions — from text and keyword management to AI-powered screenshot editing and review analysis. With its focus on privacy, speed, and usability, Dock is more than just an ASO utility — it’s a productivity booster that brings clarity and control to the often chaotic app publishing process.</p><p>You can find the app here:</p><p><a href="https://dock-app.com/">Dock: Ultimate ASO Tool for App Store Success for macOS</a></p><p>Subscribe and support me if you like using my <a href="https://www.patreon.com/CodingWithAlex"><strong>Patreon</strong></a> page</p><p><strong>Medium has updated its promotion and payout systems, so your likes and comments now make a BIG impact. Thanks for your support!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e8aaf2793ce3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Testing in Swift — Part 2]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@alessandromanilii/testing-in-swift-part-2-9754e92182dc?source=rss-71ad5f0d2495------2"><img src="https://cdn-images-1.medium.com/max/1280/1*maqBdILpcv4gKbKD7np8Rg.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Using the new Testing Framework to create better code</p><p class="medium-feed-link"><a href="https://medium.com/@alessandromanilii/testing-in-swift-part-2-9754e92182dc?source=rss-71ad5f0d2495------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@alessandromanilii/testing-in-swift-part-2-9754e92182dc?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/9754e92182dc</guid>
            <category><![CDATA[app-development]]></category>
            <category><![CDATA[apple]]></category>
            <category><![CDATA[testing]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[swiftui]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Tue, 28 Jan 2025 13:49:51 GMT</pubDate>
            <atom:updated>2025-07-23T14:28:00.030Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Testing in Swift — Part 1]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@alessandromanilii/testing-in-swift-part-1-262d1ce0989e?source=rss-71ad5f0d2495------2"><img src="https://cdn-images-1.medium.com/max/1280/1*aEmHdwyPiPVk6tvPPn0_ww.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Using the new Testing Framework to create better code</p><p class="medium-feed-link"><a href="https://medium.com/@alessandromanilii/testing-in-swift-part-1-262d1ce0989e?source=rss-71ad5f0d2495------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@alessandromanilii/testing-in-swift-part-1-262d1ce0989e?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/262d1ce0989e</guid>
            <category><![CDATA[testing]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[app-development]]></category>
            <category><![CDATA[apple]]></category>
            <category><![CDATA[swift]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Mon, 20 Jan 2025 10:02:58 GMT</pubDate>
            <atom:updated>2025-01-28T13:50:31.012Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Coding 2024 — A Year in Review]]></title>
            <link>https://medium.com/@alessandromanilii/coding-2024-a-year-in-review-6072653e8853?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/6072653e8853</guid>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[swiftui]]></category>
            <category><![CDATA[apple]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Tue, 31 Dec 2024 11:56:28 GMT</pubDate>
            <atom:updated>2024-12-31T11:56:28.536Z</atom:updated>
            <content:encoded><![CDATA[<h3>Coding 2024 — A Year in Review</h3><h4>Let’s sum it up!</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wOzm0NiU9KPK_hmewuGNGQ.jpeg" /></figure><p>2024 has come to an end, and it has truly been an extraordinary year. Many things have changed since last January, and above all, I have learned and understood a great deal.</p><p>It was undoubtedly the year I put in the most effort as an independent developer: I published new projects and updated almost all of my previous ones.</p><p>This year, I also tried to give a bigger push to my <a href="https://www.youtube.com/@codingwithalex2536"><strong>YouTube channel</strong></a> and my <a href="https://www.patreon.com/CodingWithAlex"><strong>Patreon page</strong></a>. In that regard, I realized two important things: the marathon wins, the sprint loses!</p><p>In the last few months, due to daily work commitments, family life (I’m married with two children), and my hobbies (fitness, prog metal guitar, and Warhammer miniature painting), I sometimes neglected my online content. As a result, I noticed a drop in subscribers across my channels — rightly so, I’d say. It’s better, therefore, to maintain a steady flow of content, even if smaller in scope, rather than posting large pieces once a month or every two months. Next year, I’ll try to follow this path more consistently.</p><p>Another lesson I learned is that quality always pays off! This year, I released several apps. Some, like Beezly, are the result of significant work; others, which rely on AI, were developed in a single evening, and I’ve come to understand that quick, almost useless apps serve no purpose other than “playing around” with new technologies. Granted, thanks to OpenAI’s APIs, I gained a lot of valuable know-how — useful for some talks at my company — but in terms of earnings, these apps weren’t particularly fruitful.</p><p>Another takeaway: don’t develop apps “just to make money,” but create ones that solve a real problem you have yourself. I am, for instance, focusing on apps that make everyday family life easier — my own situation!</p><p>Anyway, if you want to support me, you can take a look at my <a href="https://www.patreon.com/CodingWithAlex"><strong>Patreon page</strong></a>!</p><p>Let’s take a look at the apps released in 2024!</p><h4><strong>Beezly:</strong></h4><p><a href="https://apps.apple.com/us/app/beezly-family-expense-tracker/id6499353470">‎Beezly Family: Expense Tracker</a></p><p>This app steals the show: it helps manage family finances fairly, ensuring each person spends the same percentage of their income. It’s very handy when a couple earns different salaries, so that whoever earns more contributes more. My wife and I had been using a private “alpha” version for years, until I decided to remake it from scratch, add iCloud and Firebase for push notifications, and finally make it available to everyone. Since it deals with personal expenses, I made privacy my top priority: all data stays on iCloud and isn’t shared on external servers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*o4SAgdlBVsJOi8cqO3lBJg.png" /></figure><p><strong>Calcolo Stipendio Netto</strong></p><p><a href="https://apps.apple.com/us/app/1521361405">‎Calcolo Stipendio Netto</a></p><p>This salary calculation app for Italy, which I’ve been maintaining for about four years, got a major graphical and functional overhaul. It was also the first app where I introduced an annual subscription, allowing me to learn how to use StoreKit 2 to manage transactions. It was great fun!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-yEZiQn7cIH1kKh0Cpdekg.png" /></figure><p><strong>Menu Scuola Roma</strong></p><p><a href="https://apps.apple.com/it/app/menu-scuola-roma/id1668675861">‎Menu Scuola Roma</a></p><p>This app also benefited from a nice upgrade. It allows users to see the daily school menu for children in Rome. It’s simple but has brought me a lot of satisfaction because it’s widely used by parents in my city. I’m happy to have provided a helpful service to the community. I hope to release an Android version soon.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/932/1*Cc3WB0XwlGoU7vpWb_9_pQ.png" /></figure><p><strong>AI Projects</strong><br>This year, I created three small apps that use OpenAI’s APIs:</p><p><strong>AI Car Detector</strong></p><p><a href="https://apps.apple.com/it/app/ai-car-detector/id6670759176">‎AI Car Detector</a></p><p>Snap a photo of a vehicle, and the AI will provide information about it. The idea came from a game I played with my kids during our vacation in Europe: “Dad, what car is that?” Now, the AI answers for me!</p><p><strong>AIPostMaker</strong></p><p><a href="https://apps.apple.com/it/app/ai-postmaker/id6736517049">‎AI PostMaker</a></p><p>Why not take a photo, have the AI analyze it, and create an Instagram post? That’s exactly what I did! In just three hours, I built a dedicated app.</p><p><strong>IAduvio</strong></p><p><a href="https://apps.apple.com/it/app/iadiuvo-traduttore-latino/id6738212876">‎IAdiuvo: Traduttore Latino</a></p><p>In high school, I was strong in math and physics (and later became an aerospace engineer), but I struggled with Latin. Now the AI can help! Just take a picture of the text to translate, and the AI handles the rest.</p><p><strong>Resolutions for 2025?</strong><br>I’d like to learn how to create at least simple Android apps and produce content more consistently. I also have some interesting ideas for a new YouTube channel… but I’m not going to share them yet!<br>With that said, I wish you all a new year of coding filled with success!</p><p>I hope you liked this article, if you did please clap it and consider to support me in my <a href="https://www.patreon.com/CodingWithAlex"><strong>Patreon</strong></a> page, where you can find the full project of the code of this article, and download it in PDF.</p><p>If you are interested in learning more, a lot more about SwiftUI, I strongly suggest to take a look at this great interactive books (updated to iOS 18):</p><p><a href="https://www.bigmountainstudio.com/a/jz1m0">Big Mountain Studio SwiftUI Resources</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6072653e8853" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Build a Chatbot with OpenAI — Part 2]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@alessandromanilii/build-a-chatbot-with-openai-part-2-fe954d43d3ef?source=rss-71ad5f0d2495------2"><img src="https://cdn-images-1.medium.com/max/1792/1*p2alpnARt60vZ5aJQteznA.jpeg" width="1792"></a></p><p class="medium-feed-snippet">Implementing OpenAI APIs to give your app Artificial Intelligence</p><p class="medium-feed-link"><a href="https://medium.com/@alessandromanilii/build-a-chatbot-with-openai-part-2-fe954d43d3ef?source=rss-71ad5f0d2495------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@alessandromanilii/build-a-chatbot-with-openai-part-2-fe954d43d3ef?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/fe954d43d3ef</guid>
            <category><![CDATA[openai]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[ios]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Wed, 20 Nov 2024 10:36:41 GMT</pubDate>
            <atom:updated>2024-11-20T10:36:41.971Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Build a Chatbot with OpenAI in Swift — Part 1]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@alessandromanilii/build-a-chatbot-with-openai-in-swift-part-1-0b9c77dc4e21?source=rss-71ad5f0d2495------2"><img src="https://cdn-images-1.medium.com/max/1280/1*cIvHeuix_LVQjL2-EVdy3g.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Implementing OpenAI APIs to give your iOS apps Artificial Intelligence</p><p class="medium-feed-link"><a href="https://medium.com/@alessandromanilii/build-a-chatbot-with-openai-in-swift-part-1-0b9c77dc4e21?source=rss-71ad5f0d2495------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@alessandromanilii/build-a-chatbot-with-openai-in-swift-part-1-0b9c77dc4e21?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/0b9c77dc4e21</guid>
            <category><![CDATA[chatbots]]></category>
            <category><![CDATA[openai]]></category>
            <category><![CDATA[apple-intelligence]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[chatgpt]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Wed, 13 Nov 2024 08:59:53 GMT</pubDate>
            <atom:updated>2024-11-13T08:59:53.257Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Publisher in Protocols]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@alessandromanilii/publisher-in-protocols-bb63ffbe063f?source=rss-71ad5f0d2495------2"><img src="https://cdn-images-1.medium.com/max/1280/1*ZlNbX_RWP-yACtvjaJ5viA.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Learn how to apply Combine Publishers to protocols</p><p class="medium-feed-link"><a href="https://medium.com/@alessandromanilii/publisher-in-protocols-bb63ffbe063f?source=rss-71ad5f0d2495------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@alessandromanilii/publisher-in-protocols-bb63ffbe063f?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/bb63ffbe063f</guid>
            <category><![CDATA[xcode]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[app-development]]></category>
            <category><![CDATA[swiftui]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Wed, 30 Oct 2024 14:31:38 GMT</pubDate>
            <atom:updated>2024-10-30T14:31:38.094Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Custom Navigation Bar in SwiftUI]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@alessandromanilii/custom-navigation-bar-in-swiftui-f8a9ef0ac168?source=rss-71ad5f0d2495------2"><img src="https://cdn-images-1.medium.com/max/1280/1*pgf0SJDq3wnTsmI3VS2bSw.jpeg" width="1280"></a></p><p class="medium-feed-snippet">Building a totally custom component for your app headers</p><p class="medium-feed-link"><a href="https://medium.com/@alessandromanilii/custom-navigation-bar-in-swiftui-f8a9ef0ac168?source=rss-71ad5f0d2495------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@alessandromanilii/custom-navigation-bar-in-swiftui-f8a9ef0ac168?source=rss-71ad5f0d2495------2</link>
            <guid isPermaLink="false">https://medium.com/p/f8a9ef0ac168</guid>
            <category><![CDATA[apple]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[swiftui]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[app-development]]></category>
            <dc:creator><![CDATA[Alessandro Manilii]]></dc:creator>
            <pubDate>Mon, 21 Oct 2024 06:49:02 GMT</pubDate>
            <atom:updated>2024-10-21T06:49:02.615Z</atom:updated>
        </item>
    </channel>
</rss>