# julianodenner/android-calculadora architecture

> Architecture diagram of the GitHub repository julianodenner/android-calculadora, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/julianodenner/android-calculadora
- Repository: https://github.com/julianodenner/android-calculadora

## Overview

Este repositório contém um aplicativo Android de calculadora: a pessoa insere números e escolhe uma operação, acompanha a expressão e o valor no visor e solicita o resultado. MainActivity coordena os eventos da interface e mantém o estado da calculadora durante a recriação da Activity. Calculadora guarda os operandos e a operação, enquanto Operador interpreta e formata cada valor. O README descreve o aplicativo e sua pré-visualização; as ligações de interação abaixo se baseiam nas fontes fornecidas.

Main entry points: [`app/src/main/java/com/jdenner/calculadora/Calculadora.java`](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/calculadora/Calculadora.java) (Calculadora), [`app/src/main/java/com/jdenner/MainActivity.java`](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/MainActivity.java) (MainActivity), [`app/src/main/res/layout/activity_main.xml`](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/res/layout/activity_main.xml) (Visor e botões), [`app/src/main/java/com/jdenner/calculadora/Operador.java`](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/calculadora/Operador.java) (Operador)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Interface Android"]
  node_activity["MainActivity<br/>[MainActivity.java]"]
  node_layout["Visor e botões<br/>[activity_main.xml]"]
end

subgraph group_domain["Lógica da calculadora"]
  node_calculator["Calculadora<br/>[Calculadora.java]"]
  node_operator["Operador<br/>[Operador.java]"]
  node_operation["Operação<br/>[Operacao.java]"]
end

node_user(("Pessoa usuária"))

node_user -->|"insere e escolhe"| node_activity
node_activity -->|"envia entrada e comandos"| node_calculator
node_activity -->|"solicita valores do visor"| node_calculator
node_activity -->|"atualiza visores"| node_layout
node_layout -->|"aciona eventos"| node_activity
node_activity -->|"salva e restaura estado"| node_calculator
node_calculator -->|"atualiza e consulta operandos"| node_operator
node_calculator -->|"seleciona e compara operação"| node_operation
node_calculator -->|"obtém valores formatados"| node_operator
node_calculator -->|"exibe símbolo"| node_operation

click node_activity "https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/MainActivity.java"
click node_layout "https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/res/layout/activity_main.xml"
click node_calculator "https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/calculadora/Calculadora.java"
click node_operator "https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/calculadora/Operador.java"
click node_operation "https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/calculadora/Operacao.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_activity,node_layout toneBlue
class node_calculator,node_operator,node_operation toneAmber
class node_user toneIndigo
```

## Components

### Interface Android

- [MainActivity](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/MainActivity.java): `app/src/main/java/com/jdenner/MainActivity.java`
- [Visor e botões](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/res/layout/activity_main.xml): `app/src/main/res/layout/activity_main.xml`

### Lógica da calculadora

- [Calculadora](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/calculadora/Calculadora.java): `app/src/main/java/com/jdenner/calculadora/Calculadora.java`
- [Operador](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/calculadora/Operador.java): `app/src/main/java/com/jdenner/calculadora/Operador.java`
- [Operação](https://github.com/julianodenner/android-calculadora/blob/master/app/src/main/java/com/jdenner/calculadora/Operacao.java): `app/src/main/java/com/jdenner/calculadora/Operacao.java`

### Other components

- **Pessoa usuária**

## Connections

- Pessoa usuária → MainActivity: insere e escolhe
- MainActivity → Calculadora: envia entrada e comandos
- MainActivity → Calculadora: solicita valores do visor
- MainActivity → Visor e botões: atualiza visores
- Visor e botões → MainActivity: aciona eventos
- MainActivity → Calculadora: salva e restaura estado
- Calculadora → Operador: atualiza e consulta operandos
- Calculadora → Operação: seleciona e compara operação
- Calculadora → Operador: obtém valores formatados
- Calculadora → Operação: exibe símbolo
