<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Willian Theodoro</title>
    <description>The latest articles on DEV Community by Willian Theodoro (@willianthdr).</description>
    <link>https://dev.to/willianthdr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3861254%2Fbaff97b6-8a3b-4c11-84fd-bf0a99150a13.jpeg</url>
      <title>DEV Community: Willian Theodoro</title>
      <link>https://dev.to/willianthdr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/willianthdr"/>
    <language>en</language>
    <item>
      <title>I'm Creating A Flowchart Software.</title>
      <dc:creator>Willian Theodoro</dc:creator>
      <pubDate>Wed, 08 Apr 2026 17:48:00 +0000</pubDate>
      <link>https://dev.to/willianthdr/im-creating-a-fluxogram-software-1e1d</link>
      <guid>https://dev.to/willianthdr/im-creating-a-fluxogram-software-1e1d</guid>
      <description>&lt;p&gt;Hi everyone, over the past few days I've been worked on a Package Manager for Linux, and I'm finish this project.&lt;br&gt;
Now, I'm working on a Flowchart, which will also be done in C# language.&lt;/p&gt;

&lt;p&gt;What you think of this project? Did you like it? Leave your comments! &lt;/p&gt;

</description>
      <category>fullstack</category>
      <category>csharp</category>
      <category>software</category>
      <category>portfolio</category>
    </item>
    <item>
      <title>I built a package manager to simplify Linux</title>
      <dc:creator>Willian Theodoro</dc:creator>
      <pubDate>Tue, 07 Apr 2026 02:07:51 +0000</pubDate>
      <link>https://dev.to/willianthdr/i-built-a-package-manager-to-simplify-linux-6pa</link>
      <guid>https://dev.to/willianthdr/i-built-a-package-manager-to-simplify-linux-6pa</guid>
      <description>&lt;p&gt;After switching to Linux, I finally understood why so many people criticize it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context
&lt;/h2&gt;

&lt;p&gt;A few days ago, I formatted my computer and installed Ubuntu because I was tired of Windows. After setting everything up, I started to understand the complaints about Linux.&lt;/p&gt;

&lt;p&gt;To install any software, you usually need to type commands like:&lt;/p&gt;

&lt;p&gt;sudo apt install package-name&lt;br&gt;
flatpak install package-id&lt;/p&gt;

&lt;p&gt;Then you have to provide the correct package name or ID/URL (in the case of Flatpak). While this might seem simple at first, it can become repetitive and exhausting over time — especially when dealing with maintenance or trying to figure out which package is causing issues in the system.&lt;/p&gt;

&lt;p&gt;Since I’ve been learning C#, I decided to turn this problem into a project.&lt;/p&gt;

&lt;p&gt;At first, I thought it would be as simple as pressing a button and letting everything happen automatically — but it wasn’t that straightforward. So after studying how Linux terminal commands work, I started building the application in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  About the software
&lt;/h2&gt;

&lt;p&gt;The application was built entirely in C# using Avalonia UI.&lt;/p&gt;

&lt;p&gt;The idea is simple: it abstracts the management of .deb and .flatpakref packages, making the process more straightforward and user-friendly.&lt;/p&gt;

&lt;p&gt;The interface is clean and minimal. It provides buttons for common actions such as installing packages, searching for packages, performing maintenance, and removing packages from the system.&lt;/p&gt;

&lt;p&gt;The user just needs to select the desired package and click to install or uninstall.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijpr6vp50r4efij8r42e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijpr6vp50r4efij8r42e.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F163b2l3u5q1l8u5581sc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F163b2l3u5q1l8u5581sc.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qwyd51r13rpxzz1jlgj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qwyd51r13rpxzz1jlgj.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forr61hznxhhtq6yg7wyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forr61hznxhhtq6yg7wyd.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Select a file&lt;/li&gt;
&lt;li&gt;Install packages (.deb or .flatpakref) with error handling&lt;/li&gt;
&lt;li&gt;Search for packages (specific or full system list)&lt;/li&gt;
&lt;li&gt;Remove packages by name&lt;/li&gt;
&lt;li&gt;Repair packages, including updates and full maintenance operations&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;The project is already functional, but I still plan to improve it further — especially by adding new features and improving the overall user experience, such as allowing maintenance directly from the package name (which is not implemented yet).&lt;/p&gt;

&lt;p&gt;If you want to check out the project, here’s the repository:&lt;br&gt;
&lt;a href="https://github.com/Willian-Thdr/Gerenciador_De_Pacotes" rel="noopener noreferrer"&gt;https://github.com/Willian-Thdr/Gerenciador_De_Pacotes&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback
&lt;/h2&gt;

&lt;p&gt;Would you use something like this in your daily workflow, or do you prefer using the terminal directly?&lt;/p&gt;

&lt;p&gt;What would you add or improve in this project?&lt;/p&gt;

&lt;p&gt;Let me know in the comments!&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>portfolio</category>
      <category>linux</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Criei um gerenciador de pacotes para simplificar o Linux.</title>
      <dc:creator>Willian Theodoro</dc:creator>
      <pubDate>Sun, 05 Apr 2026 22:16:25 +0000</pubDate>
      <link>https://dev.to/willianthdr/criei-um-gerenciador-de-pacotes-para-linux-2h6c</link>
      <guid>https://dev.to/willianthdr/criei-um-gerenciador-de-pacotes-para-linux-2h6c</guid>
      <description>&lt;p&gt;Após migrar para Linux, descobri o motivo das frequentes críticas sobre o mesmo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contextualização
&lt;/h2&gt;

&lt;p&gt;Nos últimos dias, eu havia formatado meu computador para colocar um Linux Ubuntu, pois eu havia enjoado do Windows. Porém, após instalar e configurar o computador, eu percebi o porquê das pessoas reclamarem do Linux. &lt;/p&gt;

&lt;p&gt;Todo software que quisermos instalar nós devemos digitar um comando, um &lt;code&gt;sudo apt install&lt;/code&gt; ou &lt;code&gt;flatpak install&lt;/code&gt; por exemplo, e na frente do comando colocar o nome do pacote, ou o id/url caso usemos o flatpak. Mas mesmo que sejam fáceis a primeira vista, pode ser algo extremamente desgastante de se fazer a todo momento, principalmente para fazer reparos ou para achar qual o pacote que está dando problema no sistema.&lt;/p&gt;




&lt;p&gt;Eu aproveitei o meu interesse em aprender a programar em C# e então decidi solucionar esse problema. A princípio, eu pensava em apenas apertar um botão e deixar a mágica acontecer, mas não era bem assim que funcionava. Então após estudar um pouco sobre os códigos do terminal do Linux, eu decidi começar a criar na prática o programa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre o software
&lt;/h2&gt;

&lt;p&gt;O programa foi feito totalmente em C# com integração do Avalonia UI, agora falarei brevemente sobre como ele funciona:&lt;br&gt;
A ideia é simples: ele abstrai o gerenciamento de pacotes &lt;strong&gt;.deb&lt;/strong&gt; e &lt;strong&gt;.flatpakref&lt;/strong&gt;, tornando está tarefa mais simples, rápida e prática. A interface é simples e limpa. Teremos alguns botões como o de Instalar pacote, de localizar pacotes, fazer manutenção e de deletar pacotes no Linux. Basta apenas procurarmos o pacote desejado pelo próprio programa, selecionar e então pressionar para instalar ou desinstalar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgl1atiwriygcxhfw6ind.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgl1atiwriygcxhfw6ind.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fptsq9tvjx4o0iwnh08.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fptsq9tvjx4o0iwnh08.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisypibrw3pdg10qq13h7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisypibrw3pdg10qq13h7.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqttugdcg83jwu9horis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqttugdcg83jwu9horis.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sua funcionalidade se resume na simples lista a seguir:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Procurar um arquivo;&lt;/li&gt;
&lt;li&gt;Instalar o programa - &lt;strong&gt;.deb&lt;/strong&gt; ou &lt;strong&gt;.flatpakref&lt;/strong&gt; - e então o tratamento de erros se necessário;&lt;/li&gt;
&lt;li&gt;Localizar Pacotes. Podendo achar um pacote específico, ou a lista de pacotes do sistema;&lt;/li&gt;
&lt;li&gt;Deletar pacotes a partir do nome do pacote desejado;&lt;/li&gt;
&lt;li&gt;Reparar pacotes do formato desejado, podendo ir desde atualizações até manutenções completas.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Finalização
&lt;/h2&gt;

&lt;p&gt;O projeto já se encontra finalizado, mas ainda pretendo lançar mais atualizações para o mesmo, com intuito de melhorar sua funcionalidade e para poder deixar um ambiente cada vez mais agradável ao usuário - Como a opção de fazer manutenção a partir do nome do pacote, o que ainda não adicionei. Caso queira acessar o repositório para dar uma visitinha ao projeto, deixarei o link logo em seguida: &lt;a href="https://github.com/Willian-Thdr/Gerenciador_De_Pacotes" rel="noopener noreferrer"&gt;https://github.com/Willian-Thdr/Gerenciador_De_Pacotes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mas agora, me contem. O que acham desse projeto? Vocês usariam ele? Para vocês, tem algo a mais que eu possa fazer nele, desde uma melhoria até uma função nova? Me digam nos comentários!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>csharp</category>
      <category>linux</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
