# Blog

> Articles on mobile development, security and open source.

- HTML version: https://tiagodanin.com/blog/
- Site index for AI assistants: https://tiagodanin.com/llms.txt

# Posts, Tiago Danin

> Articles on mobile development, security and open source.

- Site index for AI assistants: https://tiagodanin.com/llms.txt
- Every link below points at the Markdown mirror. Drop the .md for the HTML page.

## English

- [Flutter Widgetbook: How to Document your Design System the Right Way!](https://tiagodanin.com/post/flutter-widgetbook-how-to-document-your-design-system-the-right-way.md): 2026-05, How Widgetbook solves the documentation problem in Flutter projects with a custom design system. On Direção Fácil, it became a visual catalog, a contract with Figma, and precise...
- [Creating an Agent in ChatGPT to Write Technical Stories](https://tiagodanin.com/post/creating-a-chatgpt-agent-to-write-technical-stories.md): 2026-01, Automating the creation of technical stories by consolidating dispersed information from conversations, messages, and feedback. A solution to transform chaotic inputs into clear...
- [Creating an AI Agent in Claude Code to Control my Smartphone](https://tiagodanin.com/post/creating-an-ai-agent-in-claude-code-to-control-my-smartphone.md): 2025-09, Automating Android app documentation and testing with artificial intelligence. I was facing a specific challenge: I needed to automatically document various flows of an Android...
- [Creating an AI Agent in Claude Code to Control my Smartphone](https://tiagodanin.com/post/mcp-claude-code-control-my-smartphone.md): 2025-08, Automating Android app documentation and testing with an AI agent in Claude Code, wired to an MCP server that drives a real device over ADB.
- [Liquid Glass in Flutter: Do We Really Need It?](https://tiagodanin.com/post/liquid-glass-flutter-do-we-really-need-it.md): 2025-06, A critical reflection on the Liquid Glass effect in Flutter and its real necessity in mobile applications. Exploring when this feature adds value to the user experience and when...
- [Creating an AI Agent in Cursor to Interact with GitLab and Shortcut](https://tiagodanin.com/post/creating-an-ai-agent-in-cursor-to-interact-with-gitlab-and-shortcut.md): 2025-05, In the world of agile development, we talk a lot about productivity, automation, and less repetitive work. But in practice, how many times have you wasted time just to open a...
- [The Big Security Problem in SaaS Created with Vibe Coding](https://tiagodanin.com/post/saas-created-with-vibe-coding-security-problem.md): 2025-05, SaaS products created in the AI rush are failing at the basics: security. In this video, I show you one of the biggest problems I've been finding in various products made with...
- [Enhancing User Experience with Keyboards on iOS using Keyboard Actions](https://tiagodanin.com/post/enhancing-user-experience-with-keyboards-on-ios-using-keyboard-actions.md): 2025-03, You'll never struggle with the iOS Keyboard in Flutter again! See how to solve a common problem in mobile apps for iOS that is…
- [Creating an Image Editor with Flutter - CAM Covers (From Idea to Reality)](https://tiagodanin.com/post/creating-an-image-editor-with-flutter-cam-covers-from-idea-to-reality.md): 2025-03, How I created an image editing app with Flutter. See the challenges, solutions, and monetization of CAM Covers, an album cover editor.
- [Managing Certificates and Profiles in the App Store with Fastlane Match](https://tiagodanin.com/post/managing-certificates-and-profiles-in-the-app-store-with-fastlane-match.md): 2024-03, How to set up Fastlane Match from scratch to centralize and sync App Store certificates and provisioning profiles across a team of several developers.
- [Android Splash Screen in Jetpack Compose: Building an Impactful Intro for Your App](https://tiagodanin.com/post/android-splash-screen-in-jetpack-compose-building-an-impactful-intro-for-your-app.md): 2024-02, In the world of mobile apps, first impressions are crucial. The Splash Screen is the first screen the user sees when opening your app. In this video, we'll create an amazing...
- [Create Adaptive Icons for Android Apps](https://tiagodanin.com/post/create-adaptive-icons-for-android-apps.md): 2024-02, Learn how to create and configure adaptive icons in Android Studio, so your app looks consistent on any launcher and any icon shape the user picks.
- [Flutter: Configuring Your App Remotely with Firebase Remote Config](https://tiagodanin.com/post/flutter-configuring-your-app-remotely-with-firebase-remote-config.md): 2024-02, How to implement Firebase Remote Config in a Flutter app: creating parameters, setting conditions and applying changes without publishing a new version.
- [Flutter: Implementing Amazing Animations with Lottie](https://tiagodanin.com/post/flutter-implementing-amazing-animations-with-lottie.md): 2024-02, How to integrate Lottie animations in Flutter, from installing the package to displaying complex animations made in After Effects or Figma, in few lines.
- [Building Performant Lists in React Native](https://tiagodanin.com/post/building-performant-lists-in-react-native.md): 2023-03, Learn how to build performant lists in React Native with FlatList and FlashList, the differences between them, and the practices that keep scrolling smooth.
- [How to Create Powerful Pipelines for React Native in GitLab](https://tiagodanin.com/post/how-to-create-powerful-pipelines-for-react-native-in-gitlab.md): 2023-02, How to implement a test pipeline for React Native with GitLab Pipeline: declaring tasks in YML, their dependencies, and fast feedback on every commit.
- [Get Your LinkedIn Profile Ready for Recruiters with These Foolproof Tips](https://tiagodanin.com/post/get-your-linkedin-profile-ready-for-recruiters-with-these-foolproof-tips.md): 2023-02, If you're just starting out in the job market and looking for tips to create a LinkedIn profile that catches recruiters' attention, this video is for you
- [Converting Figma to Jetpack Compose with RELAY](https://tiagodanin.com/post/converting-figma-to-jetpack-compose-with-relay.md): 2023-01, Relay converts Figma components directly into Jetpack Compose code with Material Design, speeding up design-to-code and keeping visual fidelity intact.
- [Finally! The Secret of Testing in React Native Revealed](https://tiagodanin.com/post/finally-the-secret-of-testing-in-react-native-revealed.md): 2022-09, Everything you need to know about automated testing in React Native: why they pay off in reliability, speed and analysis, and how to implement them.
- [React 18 - A New Way to Use useState (Batch Processing)](https://tiagodanin.com/post/react-18-a-new-way-to-use-usestate.md): 2022-08, An analysis of the changes in React 18 and how useState batch processing was modified for better performance.
- [Creating Apps for Android Wear OS with Jetpack Compose](https://tiagodanin.com/post/creating-apps-for-android-wear-os-with-jetpack-compose.md): 2022-06, A practical guide on how to develop apps for Android Wear OS using the modern Jetpack Compose toolkit.
- [Clean Code: Tips to Make Your Code More Readable](https://tiagodanin.com/post/clean-code-tips-to-make-your-code-more-readable.md): 2021-12, Practical Clean Code tips to make your code more readable and easier to maintain: naming variables, organizing functions and avoiding unnecessary comments.
- [Tic-Tac-Toe with Jetpack Compose - Building Projects Together #1](https://tiagodanin.com/post/tic-tac-toe-with-jetpack-compose-building-projects-together-1.md): 2021-12, First episode of Building Projects Together: a classic tic-tac-toe game built from scratch with Jetpack Compose, Android's declarative UI toolkit.
- [Arrow Function Vs Normal Function](https://tiagodanin.com/post/arrow-function-vs-normal-function.md): 2019-04, A detailed comparison between Arrow Functions and normal functions in JavaScript, explaining their differences and use cases.
- [List of Apps — Automating Workflow in GitHub](https://tiagodanin.com/post/list-of-apps-automating-workflow-in-github.md): 2019-02, A list of the GitHub apps I use most to automate my workflow: Travis CI, Crowdin, ImgBot, Codacy, Renovate and Telegram notifications for issues and PRs.
- [Using PulseAudio on HDMI](https://tiagodanin.com/post/using-pulseaudio-on-hdmi.md): 2019-02, A practical guide to configuring PulseAudio for audio output over HDMI on Linux, using pavucontrol to move games, videos and music to the right device.
- [The Best Autocomplete Plugin for ZSH](https://tiagodanin.com/post/the-best-autocomplete-plugin-for-zsh.md): 2018-12, zsh-autosuggestions completes commands from your history as you type. How to install it on Oh My Zsh or Homebrew, and why the accept key is not Tab.
- [The Perfect GitHub Profile](https://tiagodanin.com/post/the-perfect-github-profile.md): 2018-11, Tips for a presentable GitHub profile: contribute to open source you already use, keep repositories organized, write a real README, and pick a license.
- [Building My New Website with UIKit, Jus and CuboHub](https://tiagodanin.com/post/building-my-new-website-with-uikit-jus-and-cubohub.md): 2018-09, How I built my personal website using UIKit for the frontend, Jus as a static generator, and CuboHub for hosting.
- [GitHub vs Others](https://tiagodanin.com/post/github-vs-others.md): 2018-06, A comparative analysis between GitHub and other code hosting platforms, listing what many Git services still do not have after the Microsoft acquisition.
- [Create Your First App with Electron](https://tiagodanin.com/post/create-your-first-app-with-electron.md): 2018-03, A step-by-step guide to creating your first desktop application with Electron and JavaScript, from the history of the project to running the finished app.
- [Solving Wine Error: Unable to Make SSL Connections](https://tiagodanin.com/post/solving-wine-error-unable-to-make-ssl-connections.md): 2018-03, How to fix Wine's SSL connection error on Linux, caused by a missing libgnutls, for better compatibility with Windows applications.
- [Three Commands You Need in Your Terminal](https://tiagodanin.com/post/three-commands-you-need-in-your-terminal.md): 2018-03, Discover three essential commands every developer should have in their terminal to boost productivity.

## Portuguese

- [Flutter Widgetbook: Como Documentar seu Design System do jeito certo!](https://tiagodanin.com/br/post/flutter-widgetbook-how-to-document-your-design-system-the-right-way.md): 2026-05, Como o Widgetbook resolve o problema de documentar componentes em projetos Flutter com design system próprio. No Direção Fácil, virou catálogo visual, contrato com o Figma e...
- [Criando um Agente no ChatGPT para escrever stories técnicas](https://tiagodanin.com/br/post/creating-a-chatgpt-agent-to-write-technical-stories.md): 2026-01, Automatizando a criação de stories técnicas consolidando informações dispersas em conversas, mensagens e feedbacks. Uma solução para transformar inputs caóticos em artefatos...
- [Criando um Agente de IA no Claude Code para Controlar meu Smartphone](https://tiagodanin.com/br/post/creating-an-ai-agent-in-claude-code-to-control-my-smartphone.md): 2025-09, Automatizando documentação e testes de apps Android com inteligência artificial. Eu estava enfrentando um desafio específico: precisava documentar automaticamente diversos fluxos...
- [Criando um agente de IA no Claude Code para controlar meu smartphone](https://tiagodanin.com/br/post/mcp-claude-code-control-my-smartphone.md): 2025-08, Automatizando documentação e testes de apps Android com um agente de IA no Claude Code, ligado a um servidor MCP que controla um aparelho real via ADB.
- [Liquid Glass no Flutter: será que realmente precisamos disso?](https://tiagodanin.com/br/post/liquid-glass-flutter-do-we-really-need-it.md): 2025-06, Uma reflexão crítica sobre o efeito Liquid Glass no Flutter e sua real necessidade em aplicações móveis. Explorando quando esse recurso agrega valor à experiência do usuário e...
- [Criando um AI Agent no Cursor para interagir com o Gitlab e Shortcut](https://tiagodanin.com/br/post/creating-an-ai-agent-in-cursor-to-interact-with-gitlab-and-shortcut.md): 2025-05, No mundo do desenvolvimento ágil, falamos muito em produtividade, automação e menos trabalho repetitivo. Mas, na prática, quantas vezes você já perdeu tempo só para abrir um merge...
- [O grande problema de segurança nos SaaS criados com Vibe Coding](https://tiagodanin.com/br/post/saas-created-with-vibe-coding-security-problem.md): 2025-05, SaaS criados no embalo da IA estão falhando no básico: segurança. Nesse vídeo, eu te mostro um dos maiores problemas que venho encontrando em vários produtos feitos com...
- [Aprimorando a Experiência do Usuário com Teclados no iOS usando Keyboard Actions](https://tiagodanin.com/br/post/enhancing-user-experience-with-keyboards-on-ios-using-keyboard-actions.md): 2025-03, Você nunca mais vai lutar contra o Teclado do iOS no Flutter! Veja como resolver um problema comum em aplicativos mobile para iOS que é…
- [Criando um editor de imagem com Flutter - CAM Covers (Da Ideia à Realidade)](https://tiagodanin.com/br/post/creating-an-image-editor-with-flutter-cam-covers-from-idea-to-reality.md): 2025-03, Como criei um app de edição de imagens com Flutter. Veja os desafios, soluções e a monetização do CAM Covers, um editor de capas de álbuns.
- [Gerenciando Certificados e Perfis Na App Store com Fastlane Match](https://tiagodanin.com/br/post/managing-certificates-and-profiles-in-the-app-store-with-fastlane-match.md): 2024-03, Como configurar o Fastlane Match do zero para centralizar e sincronizar certificados e perfis de provisionamento da App Store num time com vários devs.
- [Android Splash Screen em Jetpack Compose: Construindo uma Introdução Impactante para seu App](https://tiagodanin.com/br/post/android-splash-screen-in-jetpack-compose-building-an-impactful-intro-for-your-app.md): 2024-02, No mundo dos aplicativos móveis, a primeira impressão é crucial. E a Splash Screen é a primeira tela que o usuário vê quando abre o seu aplicativo. Neste vídeo, vamos criar uma...
- [Crie Ícones Adptativos para Aplicativos Android](https://tiagodanin.com/br/post/create-adaptive-icons-for-android-apps.md): 2024-02, Aprenda a criar e configurar ícones adaptáveis no Android Studio, para o app ficar consistente em qualquer launcher e em qualquer forma de ícone.
- [Flutter: Configurando Seu App à Distância com Firebase Remote Config](https://tiagodanin.com/br/post/flutter-configuring-your-app-remotely-with-firebase-remote-config.md): 2024-02, Como implementar o Firebase Remote Config num app Flutter: criar parâmetros, definir condições e aplicar mudanças sem precisar publicar uma nova versão.
- [Flutter: Implementando Animações Incríveis com Lottie](https://tiagodanin.com/br/post/flutter-implementing-amazing-animations-with-lottie.md): 2024-02, Como integrar animações Lottie no Flutter, da instalação do pacote até exibir animações complexas feitas no After Effects ou Figma, com poucas linhas.
- [Construindo listas performáticas no ReactNative](https://tiagodanin.com/br/post/building-performant-lists-in-react-native.md): 2023-03, Aprenda a construir listas performáticas no React Native com FlatList e FlashList, as diferenças entre elas e as práticas que mantêm a rolagem suave.
- [Como criar pipelines poderosos para React Native no Gitlab](https://tiagodanin.com/br/post/how-to-create-powerful-pipelines-for-react-native-in-gitlab.md): 2023-02, Como implementar um pipeline de testes para React Native com o Gitlab Pipeline: declarar tarefas em YML, dependências e feedback rápido a cada commit.
- [Deixe seu perfil no LinkedIn pronto para os recrutadores com essas dicas infalíveis](https://tiagodanin.com/br/post/get-your-linkedin-profile-ready-for-recruiters-with-these-foolproof-tips.md): 2023-02, Se você está começando agora no mercado de trabalho e busca dicas para criar um perfil no LinkedIn que chame a atenção dos recrutadores, este vídeo é para você
- [Convertendo Figma para o Jetpack Compose com RELAY](https://tiagodanin.com/br/post/converting-figma-to-jetpack-compose-with-relay.md): 2023-01, O Relay converte componentes do Figma direto em código Jetpack Compose com Material Design, acelerando o design-to-code e mantendo a fidelidade visual.
- [Finalmente! O segredo dos testes no React Native foi revelado](https://tiagodanin.com/br/post/finally-the-secret-of-testing-in-react-native-revealed.md): 2022-09, Tudo sobre testes automatizados no React Native: por que valem a pena em confiabilidade, velocidade e análise, e como implementá-los no seu app.
- [React 18 - Uma nova maneira de usar o useState (Processamento em lote)](https://tiagodanin.com/br/post/react-18-a-new-way-to-use-usestate.md): 2022-08, Uma análise sobre as mudanças no React 18 e como o processamento em lote do useState foi modificado para melhor performance.
- [Criando aplicativos para Android Wear OS com Jetpack Compose](https://tiagodanin.com/br/post/creating-apps-for-android-wear-os-with-jetpack-compose.md): 2022-06, Um guia prático sobre como desenvolver aplicativos para Android Wear OS utilizando o moderno toolkit Jetpack Compose.
- [Clean Code: Dicas para tornar o seu código mais legível](https://tiagodanin.com/br/post/clean-code-tips-to-make-your-code-more-readable.md): 2021-12, Dicas práticas de Clean Code para tornar seu código mais legível e fácil de manter: nomear variáveis, organizar funções e evitar comentários desnecessários.
- [Jogo da Velha utilizado Jetpack Compose - Criando Projetos Juntos #1](https://tiagodanin.com/br/post/tic-tac-toe-with-jetpack-compose-building-projects-together-1.md): 2021-12, Primeiro episódio de Criando Projetos Juntos: um clássico jogo da velha feito do zero com Jetpack Compose, o toolkit declarativo de UI do Android.
- [Arrow Function vs Função Normal em JavaScript](https://tiagodanin.com/br/post/arrow-function-vs-normal-function.md): 2019-04, Uma comparação detalhada entre Arrow Functions e funções normais em JavaScript, explicando suas diferenças e casos de uso.
- [Lista de apps — Automatizando fluxo de trabalho no GitHub](https://tiagodanin.com/br/post/list-of-apps-automating-workflow-in-github.md): 2019-02, A lista de apps do GitHub que eu mais uso para automatizar o fluxo de trabalho: Travis CI, Crowdin, ImgBot, Codacy, Renovate e notificações no Telegram.
- [Usando PulseAudio no HDMI](https://tiagodanin.com/br/post/using-pulseaudio-on-hdmi.md): 2019-02, Um guia prático para configurar o PulseAudio para saída de áudio via HDMI no Linux, usando o pavucontrol para direcionar jogos, vídeos e músicas.
- [O melhor plugin de Auto Complete para ZSH](https://tiagodanin.com/br/post/the-best-autocomplete-plugin-for-zsh.md): 2018-12, O zsh-autosuggestions completa comandos do seu histórico enquanto você digita. Como instalar no Oh My Zsh ou Homebrew, e por que a tecla de aceite não é o Tab.
- [O perfil perfeito no GitHub](https://tiagodanin.com/br/post/the-perfect-github-profile.md): 2018-11, Dicas para um perfil apresentável no GitHub: contribua com open source que já usa, organize os repositórios, escreva um README e escolha uma licença.
- [Construindo meu novo site com UIKit, Jus e CuboHub](https://tiagodanin.com/br/post/building-my-new-website-with-uikit-jus-and-cubohub.md): 2018-09, Como construí meu site pessoal utilizando UIKit para o frontend, Jus como gerador estático e CuboHub para hospedagem.
- [GitHub vs Outros](https://tiagodanin.com/br/post/github-vs-others.md): 2018-06, Uma análise comparativa entre o GitHub e outras plataformas de código, listando o que muitos serviços Git ainda não têm depois da compra pela Microsoft.
- [Crie seu primeiro aplicativo com Electron](https://tiagodanin.com/br/post/create-your-first-app-with-electron.md): 2018-03, Um guia passo a passo para criar sua primeira aplicação desktop com Electron e JavaScript, da história do projeto até rodar o aplicativo pronto.
- [Resolvendo erro do wine não fazer conexões SSL](https://tiagodanin.com/br/post/solving-wine-error-unable-to-make-ssl-connections.md): 2018-03, Como resolver o erro de conexões SSL do Wine no Linux, causado pela falta da libgnutls, para melhor compatibilidade com aplicações Windows.
- [Três comandos que você precisar ter em seu terminal](https://tiagodanin.com/br/post/three-commands-you-need-in-your-terminal.md): 2018-03, Conheça três comandos essenciais que todo desenvolvedor deveria ter em seu terminal para aumentar a produtividade.

---

Published by Tiago Danin. Free to quote with attribution and a link to https://tiagodanin.com.

---

Published by Tiago Danin. Free to quote with attribution and a link to https://tiagodanin.com.
