Nome: Rudson Ribeiro Alves (alvesDev67@gmail.com)

Lema: Redescobrindo uma antiga paixão pela programação – Especialista em Flutter e GoLang.

Sobre Mim

  • Introdução: Formado em Física e com Mestrado em Semicondutores pela UNICAMP, sempre nutri um fascínio especial pelo desenvolvimento de modelos matemáticos para elucidar fenômenos físicos. Minha incursão na programação se iniciou com o Fortran 90 em meados de 1984 e, ao longo de minha trajetória como professor de física para engenheiros e cientistas da computação, expandi meu repertório para incluir uma vasta gama de linguagens. Meu leque de experiências abrange desde a coordenação de eventos dedicados a sistemas Linux e seu ecossistema — incluindo scripts em Bash, programação em Python, PyQt, C, e C++ — até a configuração de servidores, personalização de kernels e o desenvolvimento de aplicativos móveis com Flutter/Dart e Go.
  • Experiência e Especialização: Atuo como desenvolvedor Flutter, com alguns aplicativos já publicados na Google Play Console, além de ser instrutor de cursos introdutórios em Go e ter uma longa trajetória como programador Python.
  • Filosofia de Desenvolvimento: Movido por uma paixão inabalável pela programação, sou um autodidata comprometido com a excelência em código — priorizando a limpeza, estruturação e aderência a padrões de desenvolvimento reconhecidos. Meu foco é na criação de soluções que não apenas atendam às necessidades atuais, mas que também se sustentem ao longo do tempo.

Projetos

Trainer’s Stopwatch

GitHub: https://github.com/rudsonalves/trainers_stopwatch.git
Licença: GPLv3

O aplicativo Trainer’s Stopwatch utiliza a biblioteca Flutter e o padrão Bloc (Business Logic Component) para gerenciar o estado do cronômetro e facilitar a implementação de suas funcionalidades. A estruturação em eventos e estados permite uma lógica de controle robusta, essencial para garantir a precisão do cronômetro em diferentes condições de uso.

Implementação Técnica

A arquitetura do aplicativo é dividida em diferentes camadas para separar as preocupações e melhorar a manutenibilidade do código. Abaixo, detalho as principais implementações e suas respectivas funcionalidades:

1. Bloc Architecture:

  • stopwatch_bloc.dart: Este arquivo contém a lógica principal do cronômetro, implementada usando o padrão Bloc. Ele gerencia diferentes eventos, como iniciar, pausar, redefinir, registrar uma volta ou uma fração desta (splits), e parar o cronômetro. O Bloc utiliza um Timer para atualizar periodicamente o tempo de treinamento, garantindo a precisão, mesmo que a interface gráfica tenha atrasos.
  • stopwatch_events.dart: Define os diferentes eventos que o cronômetro pode receber. Cada evento corresponde a uma ação específica do usuário, como iniciar ou pausar o cronômetro.
  • stopwatch_state.dart: Define os diferentes estados do cronômetro. O uso de estados como StopwatchStateInitial, StopwatchStateRunning, StopwatchStatePaused, e StopwatchStateReset facilita o gerenciamento da interface do usuário, ativando apenas os botões relevantes com base no estado atual.

2. Precise Stopwatch Control:

  • precise_stopwatch_controller.dart: Esta classe atua como um controlador para a lógica do cronômetro preciso. Integra-se com o StopwatchBloc e gerencia os treinamentos e históricos, utilizando modelos como UserModel, TrainingModel, e HistoryModel. A classe fornece métodos para iniciar, pausar, redefinir, registrar voltas e divisões, e parar o cronômetro. Também lida com a criação e inserção de treinamentos, bem como o gerenciamento do histórico de tempo.
  • O controlador também implementa métodos para enviar mensagens e registros de histórico ao usuário, utilizando um ValueNotifier para notificar a interface do usuário sobre as alterações no estado de ação.

3. Interface do Usuário e Widgets Personalizados:

  • precise_stopwatch.dart: Este widget implementa uma instância do PreciseStopwatch, utilizando o PreciseStopwatchController para manipular as ações do cronômetro e a lógica de controle.
  • Widgets Personalizados: A pasta widgets contém componentes de interface personalizados, como counter_row.dart, lap_split_counters.dart, stopwatch_button_bar.dart, stopwatch_display.dart, e user_image_name.dart, que fornecem uma interface amigável e responsiva para o usuário final.

Destaques Técnicos

O aplicativo utiliza uma combinação de Gerenciamento de Estado com Bloc, Notificadores de Valor e Timers para garantir a precisão do cronômetro e uma experiência de usuário fluida. O design modular e a separação de responsabilidades entre controle de lógica, interface de usuário e manipulação de dados tornam o aplicativo fácil de manter e expandir.

O Trainer’s Stopwatch permite não apenas a cronometragem de múltiplos atletas simultaneamente em um único dispositivo, mas também o armazenamento de dados de desempenho para análise futura, tornando-o uma ferramenta valiosa para treinadores e técnicos que desejam otimizar os regimes de treinamento e melhorar o desempenho dos atletas.

Controle suas Finanças (Finances)

Descrição

Finances é um aplicativo de gestão financeira pessoal criado para ser ao mesmo tempo intuitivo e eficaz, facilitando o controle sobre as finanças com facilidade e eficiência.

GitHub: https://github.com/rudsonalves/finances.git
Licença: GPLv3

Tecnologias Utilizadas

  • Flutter: Base para o desenvolvimento cross-platform, assegurando consistência e performance em diferentes dispositivos.
  • Firebase Auth e Core: Empregados para uma autenticação segura e um eficiente gerenciamento de dados.
  • Sqflite: Utilizado para o armazenamento de dados locais, garantindo uma operação rápida e segura do aplicativo.
  • Flutter Localization: Habilitado para oferecer suporte multilíngue, tornando o aplicativo acessível em 5 línguas (pt/pt_BR, en/en_US, it, fr, de).
  • FL Chart: Implementado para a geração de gráficos intuitivos dos gastos por categoria, permitindo uma análise financeira simplificada pelo usuário.
  • Flutter Swiper View: Adicionado para proporcionar uma navegação elegante e interativa entre os ícones das categorias de despesas, elevando a experiência do usuário.
  • Design e Personalização:
    • Interação Intuitiva com Dismissible Widgets: Adotei widgets Dismissible nos elementos das principais telas do aplicativo para permitir ações como edição e remoção de elementos, incluindo transações, contas, categorias e extratos OFX importados, de maneira intuitiva e eficiente, enriquecendo a experiência do usuário com interações fluidas e práticas.
    • Desenvolvimento de ícones customizados, incluindo logos de empresas e instituições financeiras, para uma identificação visual imediata e personalizada dentro do aplicativo.
  • Desafios e Soluções:
    • A implementação de uma lista encadeada para gerenciar lançamentos financeiros apresentou um desafio único, resolvido por meio de algoritmos customizados que permitiram uma busca, inserção e remoção eficiente de registros baseada em datas. Esta abordagem inovadora priorizou desafios técnicos sobre melhorias de performance puramente.
  • Atualizações e Melhorias:
    • Na versão 1.1, a lista encadeada foi substituída por uma metodologia mais simples, com o uso intensivo de triggers, para simplificar a manutenção do banco de dados. Esta mudança estratégica levou a uma ampla gama de otimizações, desde a reestruturação do banco de dados até a refatoração de diversos elementos do código, focando na manutenção e extensibilidade. Adicionalmente, foi introduzido o suporte à importação de arquivos OFX, ampliando significativamente a funcionalidade do aplicativo.
  • Recursos Visuais: Disponibilizamos screenshots e vídeos demonstrativos para oferecer uma visão prática das funcionalidades e interface do aplicativo nos links a seguir.
  • Links do Projeto:

Controle suas Finanças Com (finances_com)

Descrição

“Controle suas Finanças Com” é uma edição especial do aplicativo Finances, enriquecida com funcionalidades de publicidade. Este projeto foi concebido com o duplo objetivo de oferecer uma versão gratuita sustentável do aplicativo e explorar a integração avançada com o Google AdMob. Foi uma oportunidade para aplicar, conhecer e testar os diferentes tipos de integração publicitária disponíveis, garantindo assim uma experiência de usuário equilibrada e informativa.

Tecnologias Usadas

  • Google AdMob: Implementamos uma variedade de formatos publicitários – incluindo banners, intersticiais e anúncios na abertura do aplicativo – para estudar suas interações com o usuário e otimizar a usabilidade. Esta integração foi cuidadosamente projetada para harmonizar com a interface do usuário, mantendo a fluidez e a integridade da experiência do usuário, ao mesmo tempo em que oferece suporte ao desenvolvimento contínuo do aplicativo.
  • Destaques do Design e Implementação:
    • Equilíbrio entre Publicidade e Usabilidade: Um foco particular foi dado ao equilíbrio entre a exibição de publicidade e a preservação de uma experiência de usuário positiva. Estratégias como o timing inteligente dos anúncios intersticiais e a localização estratégica dos banners garantem que a publicidade complemente a funcionalidade do aplicativo sem interromper o fluxo do usuário.
  • Links do Projeto:
    • finances_com – Página do aplicativo na GooglePlay Store.

LabCalc2

GitHub: https://github.com/rudsonalves/labcalc2.git
Licença: GPLv3

Descrição

LabCalc2 se destaca como uma calculadora científica especialmente desenvolvida para atender às necessidades de profissionais e estudantes das áreas de ciência e engenharia. Esta ferramenta combina precisão e versatilidade, incorporando métodos matemáticos para realizar cálculos com incertezas, tornando-se um recurso essencial para qualquer atividade em laboratórios de pesos e medidas que exija rigor e exatidão.

Tecnologias Empregadas

  • Flutter: Selecionado para proporcionar uma experiência de usuário imersiva e uniforme em várias plataformas, o Flutter permite que o LabCalc2 opere com fluidez tanto em dispositivos móveis quanto em desktops.
  • Flutter Secure Storage: Garante o armazenamento seguro de dados sensíveis, assegurando a privacidade e a segurança das informações do usuário.
  • Mailto e URL Launcher: Facilitam a comunicação direta com o desenvolvedor e o acesso rápido à página do projeto, melhorando o suporte e a interatividade com o usuário.
  • Gerenciamento de Versão Integrado: Com a AppInfo, o LabCalc2 monitora atualizações de versão, comparando a versão armazenada localmente com a registrada no banco de dados para notificar os usuários sobre novidades e mudanças assim que o aplicativo é iniciado.
  • Desafios e Soluções:
    • Classe MathExpression: A necessidade de processar expressões matemáticas com um tipo personalizado Measure para cálculos com incerteza representou um desafio complexo. A solução envolveu o desenvolvimento de uma classe robusta que suporta a sobrecarga de operadores e funções matemáticas, permitindo uma precisão inigualável em cálculos científicos.
  • Link para o Projeto:

Projeto Bares

  • Visão Geral: O Projeto Bares representa um exercício avançado de desenvolvimento, focado em aplicar as melhores práticas de escalabilidade, programação limpa e boas práticas de engenharia de software. Embora inicialmente não vise aplicabilidade imediata, o projeto serve como um campo de testes para explorar e implementar tecnologias de ponta em um contexto realista de sistema de gerenciamento para bares.
  • Componentes Principais:
    • Cozinha e Garçons:
      • Objetivo: Aprimorar a comunicação entre os clientes e a cozinha, otimizando o fluxo de trabalho dos garçons.
      • Funcionalidades Chave:
        • Visualização em tempo real dos pedidos.
        • Marcação de status do pedido (ex.: “em preparo”, “pronto para servir”).
        • Notificações alertando garçons sobre pedidos prontos.
        • Registro de histórico de pedidos para análises e melhorias operacionais.
    • App para Clientes nas Mesas:
      • Objetivo: Enriquecer a experiência dos clientes com interações digitais eficientes e intuitivas.
      • Funcionalidades Chave:
        • Menu digital interativo.
        • Personalização de pedidos.
        • Integração com sistemas de pagamento.
        • Espaço para feedback e avaliações de serviços e pratos.
    • API do Servidor:
      • Objetivo: Conectar de forma segura e eficiente os aplicativos da cozinha e da mesa, assegurando a integridade e consistência dos dados.
      • Características:
        • Comunicação em tempo real via WebSockets.
        • Alto nível de segurança com autenticação e criptografia.
        • Escalabilidade para suportar diferentes volumes de pedidos.
        • Possibilidade de integração com sistemas de gestão existentes.
  • Melhorias e Ideias Adicionais:
    • Realidade Aumentada para visualização interativa dos pratos.
    • Sugestões personalizadas de pratos através de IA.
    • Programa de fidelidade para incentivar o retorno dos clientes.
    • Chatbot para assistência imediata a dúvidas e pedidos.
  • Tecnologias Sugeridas:
    • Apps (Cozinha e Mesa): Flutter, pela sua eficiência em criar aplicativos de alta performance e belos visualmente para múltiplas plataformas com uma base de código única.
    • API: GoLang, recomendado por sua performance superior e facilidade de manutenção, além de oferecer robustas soluções para comunicações em tempo real e escalabilidade.
  • 1ª Revisão do Projeto: Focamos na simplificação do escopo para adequar-se às limitações de um exercício de desenvolvimento, concentrando-nos na API em Go e nos aplicativos em Flutter. Esta abordagem mantém a essência do projeto original, permitindo uma imersão profunda no desenvolvimento full-stack.
  • Estrutura Simplificada:
    • API em Go:
      • Gerenciamento eficiente dos pedidos e comunicação entre aplicativos.
      • Funcionalidades de cadastro e atualização de pedidos.
      • Consultas de status para integração direta com os aplicativos.
    • Aplicativos em Flutter:
      • App Cliente (Mesa): Interface para visualização de menu, realização de pedidos e acompanhamento do status.
      • App Cozinha/Garçons: Ferramenta para visualizar e gerenciar pedidos, atualizar status e receber alertas.
  • Desenvolvimento Detalhado:
    • API em Go: Será o núcleo do sistema, facilitando a criação, atualização e consulta de pedidos, integrando-se com um banco de dados escolhido para eficiência e segurança.
    • Aplicativos em Flutter: Priorizarão UI/UX responsivas e intuitivas, com ênfase na integração fluída com a API e na gestão eficaz do estado do aplicativo.
  • Considerações Finais: O foco será no desenvolvimento de um MVP robusto, com documentação clara e testagem iterativa para refinamento contínuo. Este projeto oferece uma oportunidade excepcional para prática de habilidades de programação full-stack, combinando Go para backend e Flutter para frontend, em um cenário de desenvolvimento dinâmico e multifacetado.
  • Realizações Técnicas do Projeto Bares: O Projeto Bares atingiu um dos seus principais objetivos ao desenvolver uma API REST em Go totalmente funcional, que se destaca como o núcleo do sistema de gestão para bares. Esta API não apenas facilita a comunicação eficiente entre diferentes partes do sistema, mas também se integra perfeitamente com aplicativos desenvolvidos em Flutter, criando uma solução coesa para gerenciamento de pedidos e interações cliente-serviço.
  • Integração e Testes com Flutter: A camada de integração da API com o Flutter foi implementada com sucesso, evidenciando a viabilidade e a eficácia de combinar estas tecnologias. Essa integração foi validada através de testes unitários detalhados, tanto no Go quanto no Flutter, além de testes de integração full stack que garantiram a funcionalidade e a confiabilidade do sistema em cenários reais de uso.
    Esta fase do projeto demonstrou a operacionalidade efetiva da API e sua integração com o Flutter.
  • Foco Atual e Próximos Passos: Atualmente, o foco do projeto está no planejamento da interface gráfica em flutter, com possíveis adições a API Go conforme a demanta.
  • Link para o Projeto:
    • Bares – texto técnico trazendo informações do projeto
    • GitHub – Git hub do projeto.

Habilidades Técnicas

  • Linguagens de Programação: Flutter, Go e Python.
  • Ferramentas e Tecnologias: Visual Studio Code, GitHub, Blender.

Contato