Voltar ao portfólio

CASE 27 · Mobile

Rota Viva App

Mobile App / Turismo & Comércio Local (Multi-cidade)

O aplicativo móvel da plataforma Rota Viva: turismo, comércio local, eventos, rotas turísticas, cupons e reservas reunidos em um único app multi-cidade. O usuário escolhe a cidade na abertura e navega por pontos turísticos, comércios e roteiros geolocalizados, com promoções e notificações push em tempo real. Construído em Expo (SDK 54) e React Native, com Supabase como backend e todo o conteúdo gerenciado por painéis web dedicados (superadmin, responsável da cidade e lojista).

Interface do projeto Rota Viva App

Mais contexto do que uma lista de tecnologias.

O aplicativo móvel da plataforma Rota Viva: turismo, comércio local, eventos, rotas turísticas, cupons e reservas reunidos em um único app multi-cidade. O usuário escolhe a cidade na abertura e navega por pontos turísticos, comércios e roteiros geolocalizados, com promoções e notificações push em tempo real. Construído em Expo (SDK 54) e React Native, com Supabase como backend e todo o conteúdo gerenciado por painéis web dedicados (superadmin, responsável da cidade e lojista).

TipoAplicativo mobile
CategoriaMobile App / Turismo & Comércio Local (Multi-cidade)
EntregaCase documentado
CódigoRepositório disponível

O que foi pensado e construído.

Decisões de experiência, arquitetura e implementação que ajudam a explicar o produto além da screenshot.

01

Arquitetura Multi-cidade (Multi-tenant)

Um único app atende várias cidades: na abertura o usuário seleciona a cidade e todo o conteúdo — comércios, pontos turísticos, eventos e rotas — passa a ser filtrado por ela. A separação multi-tenant é reforçada no backend, permitindo escalar para novas cidades sem publicar um novo aplicativo.

02

Descoberta Geolocalizada

Com Expo Location e React Native Maps (Google Maps), o app ordena comércios e pontos pelos mais próximos e os posiciona no mapa. A jornada é pensada para o turista em movimento: encontrar o que está por perto, no momento em que precisa, sem fricção.

03

Rotas Turísticas e Áudio dos Pontos

Roteiros encadeiam pontos turísticos, comércios e eventos em uma sequência navegável, transformando a visita em uma experiência guiada. Cada ponto turístico pode ser ouvido em áudio via expo-speech, agregando acessibilidade e um toque de audioguia à descoberta da cidade.

04

Página do Comércio (Cupons e Reservas)

Cada comércio tem página própria com cupons, promoções, redes sociais e WhatsApp. Quando o lojista habilita, o botão 'Fazer reserva' abre o WhatsApp e registra a reserva no banco — conectando a descoberta digital à conversão real no estabelecimento físico.

05

Notificações Push Inteligentes

Via Expo Notifications, o device é registrado com o city_id selecionado (device_tokens) e passa a receber promoções e cupons em tempo real. Para preservar a experiência, o envio é limitado a 1 push por comércio por dia, disparado pelo painel do lojista através da Expo Push API.

06

Backend Seguro (Supabase + RLS)

O app acessa o Supabase por anon key protegida por Row Level Security: leitura pública e apenas inserts controlados (reservas e device tokens). A gestão de conteúdo fica em painéis web Next.js separados, com papéis distintos para superadmin, cidade e lojista — mantendo o app leve e a operação organizada.

A tecnologia aparece onde ela resolve alguma coisa.

Frameworks, serviços e ferramentas usados na construção deste case.

01CoreReact Native 0.81 + Expo SDK 54
02RoteamentoExpo Router v6 (rotas por arquivo)
03LinguagemTypeScript 5.9
04Backend (BaaS)Supabase (anon key + RLS)
05MapasReact Native Maps (Google Maps)
06GeolocalizaçãoExpo Location
07PushExpo Notifications (Expo Push API)
08Áudio/AcessibilidadeExpo Speech
09AnimaçãoReanimated 4 + Worklets
10UIExpo Image, Linear Gradient, Vector Icons

Veja o produto além deste case.

Quando o projeto ou o código estão públicos, os links abaixo levam diretamente para a entrega correspondente.

PRÓXIMO CASE

Smile Pet Shop

E-commerce / B2B & B2C

Tem um projeto que também precisa sair da ideia e entrar em operação?

Vamos conversar