Manual de Criação de Fórmulas

Aprenda a criar fórmulas poderosas com variáveis, sensores, APIs, gráficos e muito mais

O OmniMeasure possui um motor de fórmulas completo (engine próprio) que permite criar desde simples calculadoras até ferramentas complexas com integração a sensores do dispositivo, APIs externas, gráficos interativos, mapas e pipelines multi-etapas.

Este manual cobre todos os recursos disponíveis no criador de fórmulas, com exemplos práticos e tutoriais passo a passo.

📌 Diferença entre Fórmula e Ferramenta Nativa: Fórmulas são criadas pelo usuário no próprio app usando o editor. Ferramentas nativas são telas feitas por Sky Raccoon (como o Nível, Bússola, Planejador de Viagem). Ambas aparecem juntas na sua lista.
Ferramentas — lista de ferramentas Fórmulas — lista de fórmulas

Editor de Fórmulas

O editor é um assistente de 6 etapas acessado pelo botão na barra inferior. Cada etapa corresponde a uma seção de configuração.

1

Informações Básicas

Título, descrição, categoria, ícone, cor do ícone e unidade do resultado.

2

Variáveis (Entradas)

Defina os valores de entrada da fórmula com nome, símbolo, tipo, unidade, valor padrão, validação.

3

Fórmula

Escreva a expressão matemática usando os símbolos das variáveis. Barra de funções inline com chips clicáveis.

4

Resultado

Nome do resultado, unidade, formato (decimal, porcentagem, etc.) e valor mínimo/máximo.

5

Configurações

Tags SEO, versão, modo de execução, modo de resultado, providers de sensor/API, permissão de negativos, toggle público.

6

Gráfico

(Opcional) Configuração de gráfico: tipo (linha/barra/scatter/área), séries, eixos, cores.

Fórmula — Básico

Variáveis — Os 9 Tipos

Cada variável representa um valor de entrada. Você pode adicionar quantas variáveis precisar. Abaixo os 9 tipos disponíveis:

TipoDescriçãoCampos Extras
number Número decimal Min, Max, Default, Unidade
integer Número inteiro Min, Max, Default
text Texto livre Max length, Regex (validação), Default
date Seletor de data Formato (DD/MM/YYYY), Default
time Seletor de hora Formato (HH:MM), Default
boolean Sim/Não (toggle) Valor padrão (sim/não)
slider Controle deslizante Min, Max, Step, Default
select Seleção em lista Opções, Labels, Tipo do valor (string/number)
list Lista de valores Usado com funções de agregação: sum(), avg(), etc.

Campos de toda variável

Transforms disponíveis

TransformO que fazExemplo
timeToDecimal"07:30" → 7.5Hora trabalhada
cmToM150 → 1.5Altura
mmToCm100 → 10Comprimento pequeno
mmToM1000 → 1Comprimento em mm para m
mToKm1500 → 1.5Distância
kgToG1.5 → 1500Massa
gToKg500 → 0.5Massa
LToML1.5 → 1500Volume
celsiusToFahrenheit0 → 32Temperatura
fahrenheitToCelsius32 → 0Temperatura
dateToDaysData → dias desde 1970Cálculo de idade/dias
💡 Dica: Use símbolos curtos e descritivos (V para tensão, R1 para resistor, p para peso). Evite acentos e espaços.
Fórmula — Editor

Expressões

A expressão é o coração da fórmula. Use os símbolos das variáveis como se fossem números e combine com operadores e funções.

Operadores Aritméticos

OperadorSímboloExemplo
Soma+a + b
Subtração- a - b
Multiplicação* ×a * b
Divisão/ ÷a / b
Potência^ ²a ^ 2 ou
Agrupamento( )(a + b) * c
Negativo--a

Constantes

ConstanteValorExemplo
pi3.1415926535897932 * pi * r
e2.718281828459045e ^ (r * t)
hojeDia atual (epoch day)hoje - nascimento
✅ Exemplo prático: IMC = peso / (altura ^ 2) — onde peso e altura são variáveis do tipo number.
Fórmula — Variáveis

Funções — 27 Disponíveis

O engine possui 27 funções divididas em categorias. Todas podem ser usadas diretamente na expressão.

Aritméticas

FunçãoArgsDescriçãoExemplo
sqrt(x)1Raiz quadradasqrt(25) = 5
cbrt(x)1Raiz cúbicacbrt(27) = 3
pow(x, y)2x elevado a ypow(2, 10) = 1024
abs(x)1Valor absolutoabs(-5) = 5
floor(x)1Arredonda para baixofloor(3.9) = 3
ceil(x)1Arredonda para cimaceil(3.1) = 4

Logaritmo e Exponencial

FunçãoArgsDescriçãoExemplo
ln(x)1Logaritmo natural (base e)ln(e) = 1
log(x)1Logaritmo natural (alias)log(100)
log10(x)1Logaritmo base 10log10(1000) = 3
exp(x)1e elevado a xexp(1) = 2.718

Trigonométricas

FunçãoArgsDescriçãoExemplo
sin(x)1Seno (radianos)sin(pi/2) = 1
cos(x)1Cosseno (radianos)cos(0) = 1
tan(x)1Tangente (radianos)tan(pi/4) ≈ 1
atan(x)1Arco tangenteatan(1) ≈ 0.785
atan2(y, x)2Arco tangente 2 argumentosatan2(y, x)

Teoria dos Números

FunçãoArgsDescriçãoExemplo
fact(n)1Fatorial (n!)fact(5) = 120
gcd(a, b)2Máximo divisor comumgcd(12, 8) = 4
lcm(a, b)2Mínimo múltiplo comumlcm(6, 8) = 24

Agregação (Listas)

FunçãoArgsDescriçãoExemplo
sum(V)1+Soma valoressum(1, 2, 3) = 6
avg(V)1+Média aritméticaavg(10, 20, 30) = 20
count(V)1+Quantidade de elementoscount(a, b, c) = 3
min(V)1+Valor mínimomin(3, 7, 1) = 1
max(V)1+Valor máximomax(3, 7, 1) = 7
💡 Observação: As funções de agregação aceitam tanto uma variável tipo list quanto argumentos individuais: sum(P1, P2, P3) funciona da mesma forma que sum(minhalista).

Comparação e Operador Ternary

O engine suporta expressões condicionais com o operador ternary condição ? valor_se : valor_senão.

Operadores de Comparação

OperadorSignificadoExemplo
==Iguala == b
!=Diferentea != b
>Maior quea > b
<Menor quea < b
>=Maior ou iguala >= 18
<=Menor ou iguala <= 100

Exemplos de Ternary

// Aprovação por nota
nota >= 7 ? "Aprovado" : "Reprovado"

// Desconto condicional
valor > 100 ? valor * 0.9 : valor

// Classificação etária
idade >= 18 ? "Adulto" : "Menor"

// Ternary aninhado
nota >= 9 ? "A" : nota >= 7 ? "B" : nota >= 5 ? "C" : "D"
✅ Exemplo real: Frete grátis: compra > 50 ? 0 : compra * 0.15 — se compra for maior que 50, frete grátis (0); senão, 15% do valor.

Modos de Resultado — 6 Modos

O modo de resultado define como o valor calculado é apresentado ao usuário. Escolha na etapa de Configurações.

ModoÍconeDescriçãoQuando usar
NUMERIC # Valor numérico simples com formatação Padrão para a maioria das fórmulas (IMC, área, volume, conversões)
RANGE 📊 Classifica o resultado em faixas com cor e severidade IMC (abaixo do peso / normal / sobrepeso), colesterol, pressão arterial
PLOT 📈 Gráfico interativo (linha, barra, scatter, área) Funções matemáticas, sensores ao longo do tempo, projeções
MULTI 📋 Múltiplos valores de resultado em uma execução APIs que retornam vários campos, sensores combinados
MAP 🗺️ Mapa com marcadores de localização Coordenadas GPS, busca de lugares, rotas
FEED 📰 Lista de itens (RSS/XML ou array de resultados) Leitor de RSS, resultados de busca, listas de APIs

NUMERIC

Modo padrão. O resultado é exibido como um número com formatação (decimal, científica, percentual, etc.).

Expressão: (peso / (altura ^ 2))
Resultado: 24.35 kg/m²
Exemplo — IMC resultado numérico

RANGE

Define faixas de valor. Cada faixa tem um rótulo, cor e severidade (LOW, NORMAL, MEDIUM, HIGH, CRITICAL). O resultado exibido muda de cor conforme a faixa.

Expressão: peso / (altura ^ 2)
Faixas:
  < 18.5 → "Abaixo do peso" (amarelo, severidade LOW)
  18.5-24.9 → "Normal" (verde, severidade NORMAL)
  25-29.9 → "Sobrepeso" (laranja, severidade MEDIUM)
  30-34.9 → "Obesidade I" (vermelho, severidade HIGH)
  ≥ 35 → "Obesidade II" (vermelho escuro, severidade CRITICAL)
Exemplo — IMC resultado rótulo

PLOT

Gera um gráfico interativo. Configure uma ou mais séries com expressões que usam __x__ como variável independente. O engine avalia a expressão em vários pontos entre Xmin e Xmax.

Série: "seno" → sin(__x__)
Série: "cosseno" → cos(__x__)
Xmin: 0, Xmax: 6.28, Steps: 100
Exemplo — Função seno plotada em gráfico

MULTI

Usado quando a fórmula retorna múltiplos valores de uma só vez. Ideal para integração com sensores ou APIs que devolvem vários campos.

Exemplo: Sensor de clima
→ Temperatura: 28°C
→ Umidade: 65%
→ Pressão: 1013 hPa

MAP

Exibe um mapa com marcadores configuráveis. Cada marcador pode ter posição vinda de variáveis, rótulo e cor personalizada. Ideal para fórmulas com coordenadas GPS.

Marcador 1:
  Latitude: variavel_lat
  Longitude: variavel_lng
  Rótulo: "Minha Localização"
  Cor: #FFCC00
Exemplo — Mapa com marcador de localização

FEED

Exibe uma lista de itens. Cada item pode ter título, descrição, data e link. Usado principalmente com fontes de dados XML (RSS/Atom) ou APIs que retornam arrays.

Formatos de Resultado

O formato define como o número é exibido. Disponível para modo NUMERIC.

FormatoDescriçãoExemplo
DECIMALDecimal com precisão configurável12.34 m²
PERCENTAGEPorcentagem12.34%
SCIENTIFICNotação científica1.23E+01
CURRENCYMoeda (R$)R$ 12.34
FRACTIONFração12 34/100
DD/MM/YYYYData (epoch day → data)30/05/2026

Categorias — 27 Disponíveis

Ao criar uma fórmula, escolha uma categoria para ajudar outros usuários a encontrar sua fórmula no Marketplace.

CategoriaDescrição
MatemáticaÁlgebra, geometria, trigonometria
ConstruçãoCálculos de obra, materiais, área construída
EngenhariaElétrica, mecânica, civil
VeículoConsumo, velocidade, autonomia
SaúdeIMC, calorias, batimentos cardíacos
ConversãoUnidades de medida, moedas
FinançasJuros, investimentos, orçamento
RuralÁrea rural, plantio, agronegócio
MediçãoDistância, área, volume, ângulo
SensorDados de sensores do dispositivo
GeometriaFormas geométricas, áreas, perímetros
FísicaMovimento, força, energia, ondas
UtilitáriosFerramentas diversas do dia a dia
ConteúdoFeeds RSS, listas, textos
CozinhaReceitas, porções, conversão culinária
TêxtilTecidos, costura, tamanhos
Data e HoraCálculos com datas, fusos, idade
ViagemRotas, distâncias, orçamento de viagem
Realidade AumentadaAR, medidas com câmera
NegóciosLucro, margem, precificação
ProdutividadeTarefas, tempo, eficiência
QuímicaConcentração, estequiometria
EsportesDesempenho, calorias, repetições
TecnologiaProgramação, TI, rede
EducaçãoNotas, médias, frequência
EntretenimentoJogos, curiosidades
OutroCategoria genérica

Ícones — 54 Disponíveis

Cada fórmula pode ter um ícone único. Os ícones são divididos em grupos:

📌 Nota: A lista completa de ícones é exibida no seletor de ícones dentro do editor (Etapa 1). Você pode buscar por nome ou navegar visualmente.
GrupoÍcones
FormasBOX, TRIANGLE, CIRCLE, SLOPE, CYLINDER, PENTAGON, HEXAGON, RECTANGLE, DIAMOND, STAR, CROSS
SensoresLEVEL, COMPASS, ALTIMETER, DECIBEL, LUX, MAGNETIC, INCLINOMETER, SPEED, RULER, GEOLOCATION
FerramentasMY_LOCATION, ADDRESS, TRANSPORT, WEATHER, METAL_DETECTOR, VIBRATION, STEP_COUNTER, HUD, TRIP_RECORDER, AR_RULER, TRIP_PLANNER, CRM, SHOPPING_LIST, TTS_READER, POMODORO, WATER, RSS_FEED, TODO_LIST, TIMER, DIARY
MatemáticaLETTER_A, LETTER_X, FORMULA, SIGMA, ANGLE, WEIGHT
OutrosCUSTOM, PARALLAX, DISTANCE

Sensores do Dispositivo

Fórmulas podem usar dados ao vivo de sensores do dispositivo. Os dados são atualizados automaticamente durante a execução.

Sensores Disponíveis

ProvedorVariávelDescrição
gps.speedvelocidadeVelocidade em m/s
gps.altitudealtitudeAltitude em metros
gps.latitudelatitudeLatitude em graus decimais
gps.longitudelongitudeLongitude em graus decimais
gps.bearingdirecaoDireção em graus (0-360)
gps.accuracyprecisaoPrecisão em metros
accelerometer.xacelXAceleração eixo X (m/s²)
accelerometer.yacelYAceleração eixo Y
accelerometer.zacelZAceleração eixo Z
gyroscope.xgiroXGiroscópio eixo X
gyroscope.ygiroYGiroscópio eixo Y
gyroscope.zgiroZGiroscópio eixo Z
magnetometer.xmagXCampo magnético eixo X (µT)
magnetometer.ymagYCampo magnético eixo Y
magnetometer.zmagZCampo magnético eixo Z
pressure.pressurepressaoPressão barométrica (hPa)
light.lightluzLuminosidade (lux)

Como configurar

  1. Na Etapa 2 (Variáveis), adicione uma variável vinculada ao sensor
  2. Na Etapa 5 (Configurações), adicione um Provider de Sensor
  3. Escolha o tipo de sensor e mapeie para a variável da fórmula
  4. Ao executar, o valor do sensor será lido em tempo real
✅ Exemplo: Crie uma fórmula "Velocidade em km/h" com sensor gps.speed e expressão velocidade * 3.6. O resultado mostra sua velocidade atual em km/h.
Exemplo — Sensor de velocidade GPS configurado como variável na fórmula

APIs Externas

Fórmulas podem buscar dados de APIs externas (HTTP/HTTPS) e usar o resultado nos cálculos. Suporta JSON e XML.

Exemplos de APIs que funcionam

APIURLO que retorna
ViaCEPviacep.com.br/ws/{cep}/jsonLogradouro, bairro, cidade, UF
Open-Meteoapi.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}Temperatura, umidade, vento
AwesomeAPI (moedas)economia.awesomeapi.com.br/last/USD-BRLCotação USD → BRL

Campos do Provider de API

CampoDescrição
IDIdentificador único (ex: "viacep")
Base URLURL base da API
PathCaminho adicional, suporta {var} com variáveis da fórmula
MétodoGET ou POST
HeadersCabeçalhos HTTP (formato JSON)
BodyCorpo da requisição (para POST)
ExtractCaminho JSON para extrair o valor (ex: compra, logradouro)
Parser TypeNUMBER, STRING, XML_FEED ou ARRAY
Cache MinutesTempo em minutos para cache local (evita chamadas repetidas)
Rate LimitLimite de chamadas por minuto
Auth TypeNONE, BASIC, TOKEN, API_KEY

Exemplo: Cotação USD → BRL

Provider:
  Base URL: https://economia.awesomeapi.com.br
  Path: /last/USD-BRL
  Método: GET
  Extract: USDBRL.bid
  Parser: NUMBER
  Cache: 5 minutos

Expressão: valor * cotacao
  (onde "valor" é a entrada do usuário em USD)
⚠️ Atenção: APIs gratuitas podem ter limite de chamadas. Use Cache Minutes para evitar exceder o rate limit. O OmniMeasure não se responsabiliza por APIs de terceiros.
Exemplo — Api de cotação configurada com URL, método, extração e cache

Modo Pipeline

O Modo Pipeline permite executar múltiplas expressões em sequência, onde cada etapa pode usar o resultado das anteriores.

Como funciona

  1. Defina variáveis de entrada (Etapa 2)
  2. Em Configurações (Etapa 5), mude o Modo de Execução para PIPELINE
  3. Adicione etapas: cada etapa tem um ID, uma expressão e um nome de saída
  4. A saída de cada etapa fica disponível como variável para as etapas seguintes

Exemplo: Cálculo de frete

Etapa 1 (peso_volume):
  Expressão: comprimento * largura * altura / 6000
  Saída: peso_volume

Etapa 2 (peso_final):
  Expressão: peso_real > peso_volume ? peso_real : peso_volume
  Saída: peso_final

Etapa 3 (frete):
  Expressão: peso_final * 15 + 10
  Saída: valor_frete

Gráficos (Modo PLOT)

Configure gráficos interativos no modo PLOT. Suporta 4 tipos de gráfico e múltiplas séries por gráfico.

Tipos de Gráfico

TipoDescrição
LINEGráfico de linha (padrão)
BARGráfico de barras
SCATTERGráfico de dispersão (pontos)
AREAGráfico de área preenchida

Configuração de Série

Configuração de Eixos

💡 Dica: Use __x__ na expressão da série para representar o valor atual do eixo X. Ex: sin(__x__) plota a função seno.
Exemplo — Gráfico de linha com série

Modo Mapa

O modo MAP exibe um mapa interativo com marcadores. A posição de cada marcador pode vir de variáveis da fórmula ou de resultados de API.

Configuração

CampoDescrição
Centro Lat / LngCoordenadas do centro do mapa (podem ser variáveis)
ZoomNível de zoom inicial (1-18)
MarcadoresLista de pins no mapa

Configuração de Marcador

CampoDescrição
LatitudeNome da variável com a latitude
LongitudeNome da variável com a longitude
RótuloTexto exibido no marcador
CorCor do marcador (hex)

Exemplo: Onde estou?

Variáveis:
  → lat (vinculada ao sensor gps.latitude)
  → lng (vinculada ao sensor gps.longitude)

Modo de resultado: MAP
Marcador:
  Latitude: lat
  Longitude: lng
  Rótulo: "Você está aqui"
  Cor: #FFCC00

Publicar Fórmulas

Suas fórmulas podem ser compartilhadas com a comunidade através do Marketplace.

Como publicar

  1. Crie a fórmula normalmente no editor
  2. Na Etapa 5 (Configurações), ative o toggle "Fórmula pública"
  3. Preencha tags relevantes para busca (ex: "imc, saude, peso, altura")
  4. Defina a versão (comece em 1)
  5. Salve a fórmula
✅ Pronto! Sua fórmula será enviada ao Marketplace automaticamente (com conexão de internet). Outros usuários poderão encontrar, baixar e favoritar sua criação.

Dicas de SEO

Versionamento

Ao atualizar uma fórmula já publicada, incremente a versão. Usuários que já baixaram sua fórmula receberão a atualização automaticamente ao tentar baixar novamente.

Limites

Exemplo — Fórmula pública para o marketplace

Tutorial: Calculadora de IMC

Vamos criar uma calculadora de IMC completa com classificação por faixas (modo RANGE). Este tutorial cobre as etapas básicas do editor.

Passo 1: Informações Básicas

Passo 2: Variáveis

SímboloNomeTipoUnidadeMinMaxDefault
pesoPesonumberkg150070
alturaAlturanumberm0.52.51.70

Passo 3: Expressão

peso / (altura ^ 2)

Passo 4: Resultado

Passo 5: Configurações

MínMáxRótuloCorSeveridade
18.5Abaixo do peso#FFC107LOW
18.524.9Peso normal#4CAF50NORMAL
2529.9Sobrepeso#FF9800MEDIUM
3034.9Obesidade I#F44336HIGH
35Obesidade II#B71C1CCRITICAL

Passo 6: Testar

Execute a fórmula com peso = 80 e altura = 1.75. O resultado deve ser 26.1 kg/m² com a faixa "Sobrepeso" em laranja.

Tutorial: Conversor de Moeda com Cotação

Vamos criar um conversor USD → BRL que busca a cotação ao vivo de uma API externa.

Passo 1: Informações Básicas

Passo 2: Variáveis

SímboloNomeTipoUnidadeDefault
usdValor em USDnumberUS$1

Passo 3: Provider de API

Na Etapa 5 (Configurações), adicione um provider de API:

CampoValor
IDawesomeapi
Base URLhttps://economia.awesomeapi.com.br
Path/last/USD-BRL
MétodoGET
ExtractUSDBRL.bid
Parser TypeNUMBER
Cache Minutes5

Agora adicione uma variável de tempo de execução para receber o valor da API:

Passo 4: Expressão

usd * cotacao

Passo 5: Resultado

Passo 6: Testar

Execute a fórmula com usd = 50. O app busca a cotação atual e exibe o valor convertido (ex: R$ 275,00). Como o cache é de 5 minutos, chamadas repetidas usam a última cotação sem consumir a API.

Tutorial: Mapa de Coordenadas

Vamos criar uma fórmula que exibe um mapa com a localização atual usando GPS.

Passo 1: Informações Básicas

Passo 2: Provider de Sensor

Na Etapa 5 (Configurações), adicione dois providers de sensor:

IDSensorDescrição
gps_latgps.latitudeLatitude atual
gps_lnggps.longitudeLongitude atual

Adicione variáveis de tempo de execução para cada sensor:

NomeFonteProvider ID
latSENSORgps_lat
lngSENSORgps_lng

Passo 3: Configuração do Mapa

Adicione um marcador:

CampoValor
Latitudelat
Longitudelng
RótuloVocê está aqui
Cor#FFCC00

Passo 4: Testar

Execute a fórmula. O app pedirá permissão de localização. Após conceder, o mapa será exibido com um marcador amarelo na sua posição atual. O mapa acompanha sua localização em tempo real.

🔗 Combinando recursos: Você pode criar fórmulas ainda mais poderosas combinando API + Sensor + Mapa + Pipeline. Por exemplo: busque o CEP via API ViaCEP, obtenha as coordenadas, e exiba no mapa.