<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>DevPaw — Swift, iOS e Engenharia de Software</title><description>Um desenvolvedor iOS sênior explica Swift, iOS, design de software e ferramentas de IA desde os fundamentos.</description><link>https://www.dev-paw.com/</link><language>pt-BR</language><item><title>Padrão Strategy no Swift: trocando algoritmos com protocolos e closures</title><link>https://www.dev-paw.com/pt-br/swift-strategy-pattern-protocol-closure/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/swift-strategy-pattern-protocol-closure/</guid><description>Você já se deparou com um código em que os if-else não paravam de crescer para cada forma de pagamento?</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>전략패턴</category><category>디자인패턴</category><category>프로토콜</category></item><item><title>[SOLID #2] Princípios SOLID na prática (parte 2): ISP·DIP e por que existe a injeção de dependência</title><link>https://www.dev-paw.com/pt-br/solid-isp-dip-dependency-injection/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/solid-isp-dip-dependency-injection/</guid><description>Na parte anterior, abordamos as três primeiras letras de SOLID: SRP·OCP·LSP. Hoje vamos resumir as duas restantes.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>SOLID원칙</category><category>ISP</category><category>DIP</category><category>의존성주입</category></item><item><title>O princípio da menor surpresa: por que getUser não deve enviar e-mails</title><link>https://www.dev-paw.com/pt-br/principle-of-least-astonishment-side-effects/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/principle-of-least-astonishment-side-effects/</guid><description>Você já encontrou uma função assim durante uma revisão de código?</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>최소놀람의원칙</category><category>POLA</category><category>네이밍</category><category>부수효과</category></item><item><title>Automação de IA no Naver Blog: até onde é possível e a partir de onde vira violação?</title><link>https://www.dev-paw.com/pt-br/naver-blog-ai-automation-policy/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/naver-blog-ai-automation-policy/</guid><description>Hoje em dia, aumentou muito o número de pessoas que escrevem posts para blogs usando IAs como ChatGPT e Claude. Quando se quer ir um pouco além, surge até a ideia: &quot;Por que não automatizar tudo, da geração do texto à publicação?&quot;</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>네이버블로그</category><category>AI자동화</category><category>블로그자동화</category><category>네이버블로그정책</category></item><item><title>[MCP·Skill #1] O que é um servidor MCP? Dos métodos de conexão aos cuidados de segurança</title><link>https://www.dev-paw.com/pt-br/mcp-server-setup-security/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/mcp-server-setup-security/</guid><description>Ao usar ChatGPT ou Claude, chega um momento em que sentimos falta de algo. O modelo é inteligente, mas não consegue acessar meu banco de dados nem ler a wiki interna da empresa.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>MCP</category><category>ModelContextProtocol</category><category>AI에이전트</category><category>Claude</category></item><item><title>Entenda de verdade o princípio DRY: uma abstração errada é mais perigosa que a duplicação de código</title><link>https://www.dev-paw.com/pt-br/dry-principle-wrong-abstraction/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/dry-principle-wrong-abstraction/</guid><description>Ao fazer uma revisão de código, há uma cena que encontro com frequência especial.</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>DRY원칙</category><category>코드중복</category><category>리팩토링</category><category>실용주의프로그래머</category></item><item><title>Composição (Composition) vs. herança (Inheritance): o verdadeiro significado de “não use herança”</title><link>https://www.dev-paw.com/pt-br/composition-vs-inheritance/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/composition-vs-inheritance/</guid><description>Ao estudar programação orientada a objetos, há uma frase que você inevitavelmente encontra: “Prefira composição à herança (Favor composition over inheritance).”</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>컴포지션</category><category>상속</category><category>객체지향</category></item><item><title>Resumo de YAGNI: por que o “um dia vamos usar” dos desenvolvedores sai caro</title><link>https://www.dev-paw.com/pt-br/yagni-principle-software-development/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/yagni-principle-software-development/</guid><description>“Parece que vamos precisar disso depois. Quer deixar pronto agora?”</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>YAGNI</category><category>익스트림프로그래밍</category><category>오버엔지니어링</category><category>개발원칙</category></item><item><title>Padrão Singleton no Swift: o verdadeiro motivo pelo qual shared é considerado um antipadrão</title><link>https://www.dev-paw.com/pt-br/swift-singleton-shared-antipattern/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/swift-singleton-shared-antipattern/</guid><description>Ao desenvolver com Swift, é muito comum encontrar singletons criados com uma única linha, static let shared.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>싱글톤패턴</category><category>iOS</category><category>디자인패턴</category></item><item><title>A origem do Swift: por que Chris Lattner abandonou o Objective-C?</title><link>https://www.dev-paw.com/pt-br/swift-origin-chris-lattner-objective-c/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/swift-origin-chris-lattner-objective-c/</guid><description>Quem começa a desenvolver para iOS já se perguntou pelo menos uma vez: &quot;Por que a Apple criou o Swift do zero em vez de continuar usando o Objective-C que já conhecia tão bem?&quot;</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>크리스래트너</category><category>Objective-C</category></item><item><title>Padrão Monostate em Swift: ele pode ser uma alternativa ao Singleton?</title><link>https://www.dev-paw.com/pt-br/swift-monostate-vs-singleton/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/swift-monostate-vs-singleton/</guid><description>Para quem já se perguntou se está mesmo tudo bem usar Singleton desse jeito</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>모노스테이트</category><category>싱글톤</category><category>iOS</category></item><item><title>[SOLID #1] As cinco letras de SOLID: entenda em vez de decorar (SRP · OCP · LSP)</title><link>https://www.dev-paw.com/pt-br/solid-srp-ocp-lsp-principles/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/solid-srp-ocp-lsp-principles/</guid><description>Provavelmente você já ouviu pelo menos uma vez em uma entrevista: “Você pode explicar os princípios SOLID?”</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>SOLID원칙</category><category>SRP</category><category>OCP</category><category>LSP</category></item><item><title>História do gerenciamento de memória do Objective-C: do MRC ao ARC</title><link>https://www.dev-paw.com/pt-br/objective-c-memory-management-mrc-arc/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/objective-c-memory-management-mrc-arc/</guid><description>Quem trabalha com desenvolvimento para iOS provavelmente já se perguntou algo pelo menos uma vez.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>iOS</category><category>ARC</category><category>메모리관리</category></item><item><title>A Lei de Demeter (Law of Demeter): quando o encadeamento de métodos se torna código ruim</title><link>https://www.dev-paw.com/pt-br/law-of-demeter-method-chaining/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/law-of-demeter-method-chaining/</guid><description>Ao fazer uma revisão de código, é provável que você receba este comentário pelo menos uma vez.</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>디미터의법칙</category><category>메서드체이닝</category><category>클린코드</category><category>객체지향</category></item><item><title>Se tivesse que escolher apenas uma IA para programar: a escolha de quem usa há 1 ano</title><link>https://www.dev-paw.com/pt-br/claude-code-vs-codex/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/claude-code-vs-codex/</guid><description>Uma das perguntas mais frequentes nas comunidades de desenvolvedores hoje é: &quot;Qual devo usar, Claude Code ou Codex?&quot; Eu assino o Claude há cerca de um ano e o Codex há mais de seis meses, usando ambos diariamente, e também testei o recém-lançado Claude Fable 5 e o GPT-5.6 Sol…</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Claude</category><category>Codex</category><category>ClaudeCode</category><category>GPT-5.6</category></item><item><title>Como escolher entre Claude Code, Cursor e Copilot: guia por finalidade</title><link>https://www.dev-paw.com/pt-br/claude-code-cursor-copilot-comparison/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/claude-code-cursor-copilot-comparison/</guid><description>Esta é provavelmente a pergunta que mais aparece nas comunidades de desenvolvedores atualmente: &quot;Qual deles eu devo usar de verdade: Claude Code, Cursor ou Copilot?&quot;</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>ClaudeCode</category><category>Cursor</category><category>GitHubCopilot</category><category>코딩AI</category></item><item><title>nil do Objective-C vs. null do Java: por que eles se comportam de forma diferente?</title><link>https://www.dev-paw.com/pt-br/objective-c-nil-vs-java-null/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/objective-c-nil-vs-java-null/</guid><description>Há algo que deixa quem está começando com iOS especialmente confuso.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>nil</category><category>iOS</category><category>NullPointerException</category></item><item><title>Objective-C: história completa, a linguagem que Jobs amava (incluindo a origem do prefixo NS)</title><link>https://www.dev-paw.com/pt-br/objective-c-history-ns-prefix/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/objective-c-history-ns-prefix/</guid><description>Quando você começa a estudar desenvolvimento para iOS, há uma linguagem que inevitavelmente aparece: uma sintaxe estranha cheia de colchetes e prefixos misteriosos como NSString.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>프로그래밍언어</category><category>iOS</category></item><item><title>Por que a sintaxe de colchetes do Objective-C é assim? (O segredo do envio de mensagens)</title><link>https://www.dev-paw.com/pt-br/objective-c-bracket-message-syntax/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/objective-c-bracket-message-syntax/</guid><description>Ao começar a estudar iOS e ver código Objective-C pela primeira vez, é fácil ficar confuso.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>iOS</category><category>프로그래밍언어</category></item><item><title>Sintaxe da arroba (@) no Objective-C: por que tudo começa com @? (Guia completo)</title><link>https://www.dev-paw.com/pt-br/objective-c-at-sign-syntax/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/objective-c-at-sign-syntax/</guid><description>Ao abrir um código Objective-C pela primeira vez, há algo que chama sua atenção imediatamente.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>골뱅이문법</category><category>at기호</category></item><item><title>Uma análise sincera depois de assinar ChatGPT, Claude e Gemini</title><link>https://www.dev-paw.com/pt-br/chatgpt-claude-gemini-subscription-review/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/chatgpt-claude-gemini-subscription-review/</guid><description>Hoje em dia, quase ninguém deixa de usar pelo menos uma IA. Mesmo assim, começar pode gerar dúvidas.</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>AI비교</category><category>ChatGPT</category><category>클로드</category><category>제미나이</category></item><item><title>Coder vs. engenheiro de software: qual é a diferença de verdade? (Resumo de salários e funções)</title><link>https://www.dev-paw.com/pt-br/coder-vs-software-engineer/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/coder-vs-software-engineer/</guid><description>Ao estudar desenvolvimento de software, uma dúvida acaba surgindo: &quot;Sou coder ou engenheiro de software?&quot;</description><pubDate>Sun, 22 Dec 2024 15:00:00 GMT</pubDate><category>코더</category><category>소프트웨어엔지니어</category><category>개발자</category><category>개발자연봉</category></item><item><title>O princípio KISS: o verdadeiro significado de escrever código simples</title><link>https://www.dev-paw.com/pt-br/kiss-principle-simple-code/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/kiss-principle-simple-code/</guid><description>Ao desenvolver, às vezes surge aquela sensação estranha de que escrever código complicado significa fazer um bom trabalho.</description><pubDate>Sun, 08 Dec 2024 15:00:00 GMT</pubDate><category>KISS원칙</category><category>소프트웨어설계</category><category>개발원칙</category><category>클린코드</category></item><item><title>Como definir mensagens de erro personalizadas no Swift e dominar o LocalizedError (com exemplos)</title><link>https://www.dev-paw.com/pt-br/swift-localizederror-custom-message/</link><guid isPermaLink="true">https://www.dev-paw.com/pt-br/swift-localizederror-custom-message/</guid><description>Ao criar um app com Swift, talvez você já tenha capturado um erro com do-catch e depois percebido que a mensagem exibida na tela não ajudava muito.</description><pubDate>Sat, 07 Dec 2024 15:00:00 GMT</pubDate><category>Swift</category><category>LocalizedError</category><category>errorDescription</category><category>iOS</category></item></channel></rss>