<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software Design on AI VOID</title><link>https://ai-blog.noorshomelab.dev/categories/software-design/</link><description>Recent content in Software Design on AI VOID</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 26 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ai-blog.noorshomelab.dev/categories/software-design/index.xml" rel="self" type="application/rss+xml"/><item><title>Chapter 10: Protocols - Defining Behavior</title><link>https://ai-blog.noorshomelab.dev/mastering-swift-2026/10-protocols-defining-behavior/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/mastering-swift-2026/10-protocols-defining-behavior/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 10, where we unlock one of Swift&amp;rsquo;s most powerful and fundamental concepts: &lt;strong&gt;Protocols&lt;/strong&gt;. If you&amp;rsquo;ve been following along, you&amp;rsquo;ve mastered the basics of defining types like structs, classes, and enums. Now, imagine a way to define a &lt;em&gt;blueprint&lt;/em&gt; of behavior that &lt;em&gt;any&lt;/em&gt; of these types can choose to adopt. That&amp;rsquo;s exactly what protocols allow us to do!&lt;/p&gt;
&lt;p&gt;Protocols are like contracts. They lay out a set of requirements—properties, methods, or even initializers—that any conforming type &lt;em&gt;must&lt;/em&gt; implement. This allows you to create flexible, modular, and highly reusable code, enabling different types to share common functionality without being tied into a rigid inheritance hierarchy. This concept is so central to modern Swift development that it forms the basis of &lt;strong&gt;Protocol-Oriented Programming (POP)&lt;/strong&gt;, a paradigm heavily favored by Apple.&lt;/p&gt;</description></item><item><title>Chapter 12: Dependency Injection &amp;amp; Modularization</title><link>https://ai-blog.noorshomelab.dev/ios-pro-dev-2026-guide/dependency-injection-modularization/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/ios-pro-dev-2026-guide/dependency-injection-modularization/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Welcome to Chapter 12! As you progress on your journey to becoming a professional iOS developer, you&amp;rsquo;ll encounter the challenges of building and maintaining large, complex applications. This is where the powerful concepts of &lt;strong&gt;Dependency Injection (DI)&lt;/strong&gt; and &lt;strong&gt;Modularization&lt;/strong&gt; become not just helpful, but absolutely essential.&lt;/p&gt;
&lt;p&gt;In this chapter, we&amp;rsquo;ll dive deep into what Dependency Injection is, why it&amp;rsquo;s a cornerstone of good software design, and how to implement it effectively in your Swift projects. We&amp;rsquo;ll then explore Modularization, understanding how to break down your app into smaller, manageable, and reusable pieces using modern Swift Package Manager. By the end, you&amp;rsquo;ll have a solid grasp of how these two principles work together to create iOS applications that are easier to test, maintain, scale, and collaborate on.&lt;/p&gt;</description></item></channel></rss>