Este é um projeto de uma calculadora científica funcional desenvolvida para Android utilizando a linguagem Java. O aplicativo foi construído com foco em boas práticas de UI/UX, utilizando GridLayout para um design responsivo e a biblioteca exp4j para o processamento de expressões matemáticas complexas.
- Cálculos em Tempo Real: Processamento de expressões matemáticas completas (soma, subtração, multiplicação e divisão).
- Tratamento de Erros Inteligente: Identificação e tratamento de divisões por zero e erros de sintaxe (ex: "5++5") para evitar travamentos do app.
- Interface Adaptável: Uso de
GridLayoutpara garantir que os botões se ajustem corretamente a diferentes tamanhos de tela. - Design Moderno: Botões estilizados com
Material Design, utilizandobackgroundTintecornerRadiuspara um visual arredondado e limpo. - Lógica de Visor Inteligente: O visor limpa automaticamente mensagens de erro quando o usuário inicia uma nova digitação.
- Linguagem: Java.
- IDE: Android Studio (Gradle Kotlin Script -
.kts). - Layout: XML com
GridLayouteMaterial Components. - Processamento Matemático: exp4j - Biblioteca para avaliação de expressões matemáticas.
Neste projeto, apliquei conceitos avançados de desenvolvimento mobile:
- Gerenciamento de Dependências: Configuração e sincronização de bibliotecas externas via Gradle.
- Lógica de Concatenação: Implementação de um método unificado (
pressButton) para capturar textos de múltiplos botões e gerenciar o estado do visor. - Tratamento de Exceções: Uso de blocos
try-catche verificações da classeDouble(isInfiniteeisNaN) para garantir a estabilidade da aplicação. - UX no Mobile: Normalização de símbolos (substituindo "X" visual por "*" lógico) para facilitar a interpretação do motor de cálculo.
- Clone o repositório:
git clone [https://github.com/RafaelDesenvolvedor1/CalculadoraJava.git](https://github.com/RafaelDesenvolvedor1/CalculadoraJava.git)
- Abra no Android Studio.
- Certifique-se de realizar o Gradle Sync para baixar a biblioteca
exp4j. - Execute em um emulador ou dispositivo físico (API 24+ recomendada).
Desenvolvido por Rafael Santos.
- GitHub: RafaelDesenvolvedor1.
