10 exemplos para você começar a traduzir designs em interações móveis viáveis no Expo SDK 57 - o que validar antes do compromisso do sprint, como conversar com design e PM em termos móveis e onde as suposições da web falham em telefones.
Trate a exportação do Figma como o início do refinamento - não o fim do design.
## Checklist de Handoff (por tela)- [ ] Artboards iOS + Android OU "plataforma segue HIG/Material" explícito- [ ] Margens de área segura anotadas (notch, Dynamic Island, barra de navegação)- [ ] Estados do teclado: padrão, focado, erro inline- [ ] Carregando, vazio, erro - não apenas o caminho feliz- [ ] Tópico de comentário de viabilidade do engenheiro aberto antes do planejamento do sprint
O PM agenda uma passagem de viabilidade de 15 minutos com engenheiro + designer antes de apontar
"Parece bom" no Figma ≠ "lança neste sprint" em duas plataformas
Registre bloqueadores no ticket - "precisa de spike de módulo nativo" é um resultado válido
Mocks da web com barras superiores position: fixed ignoram o notch e a barra de status.
// src/screens/ProfileScreen.tsximport { View, Text } from "react-native";import { useSafeAreaInsets } from "react-native-safe-area-context";export function ProfileScreen() { const insets = useSafeAreaInsets(); return ( <View style={{ flex: 1, paddingTop: insets.top }}> <Text accessibilityRole="header">Perfil</Text> {/* O conteúdo rola sob o cabeçalho transparente apenas se projetado dessa forma */} </View> );}
Mostre aos designers duas molduras de dispositivo: iPhone com Dynamic Island + Android com furo
Números mágicos paddingTop: 44 falham em hardware novo - use insets
Rodapés fixos precisam de insets.bottom para sobreposição do indicador inicial
Deslizar para excluir, arrastar para reordenar e puxar para atualizar competem pelos mesmos manipuladores de pan.
## Viabilidade de Gestos (modelo de ticket)**Interação:** Deslizar linha para a esquerda → revelar Excluir**Bibliotecas:** react-native-gesture-handler + Reanimated**Conflitos:** Rolagem vertical do FlatList pai**Spike:** 0.5 dia se for um padrão novo**Fallback:** Pressionar longamente → action sheet
Se o mock mostrar arrasto baseado em física, vincule Gesture Handler no ticket
"Igual ao Mail do iOS" não é uma especificação - registre o limite, haptics e padrão de desfazer
O gesto de voltar do Android pode cancelar swipes incompletos - teste no emulador API 35
fontSize: 14 fixo no Figma quebra quando os usuários habilitam texto maior nas configurações do sistema.
import { Text, StyleSheet } from "react-native";export function BodyText({ children }: { children: string }) { return ( <Text style={styles.body} maxFontSizeMultiplier={1.3} // limite do produto - documentar em ADR de a11y se for menor que o sistema > {children} </Text> );}const styles = StyleSheet.create({ body: { fontSize: 16, lineHeight: 24 }, // token: typography.body});
Termine o refinamento com uma demonstração no dispositivo de 10 minutos - protótipo, build de pré-visualização ou Storybook no telefone.
# Compartilhe a pré-visualização com design + PM antes do início do sprinteas build --profile preview --platform all# QR nas notas de refinamento; mesmo build para aceitação de QA
## Refinamento concluído quando- [ ] O designer viu iOS + Android (simulador ou dispositivo)- [ ] O engenheiro registrou os riscos de viabilidade no ticket- [ ] O PM aceitou o fallback para qualquer item "pendente de spike"- [ ] Movimento marcado: Animado vs Reanimated vs estático
Stakeholders superestimam a fidelidade do Figma - a demonstração no polegar redefine as expectativas
Grave a gravação de tela para PMs assíncronos - 30 segundos é melhor do que um parágrafo
Quando a engenharia deve participar das revisões de design?
Antes do bloqueio de alta fidelidade em fluxos totalmente novos - idealmente nos wireframes. Um engenheiro em uma crítica de design semanal captura problemas específicos de celular cedo. Participantes tardios produzem retabalhos de pixel caros.
Como dizemos "não" sem bloquear o produto?
Ofereça alternativas classificadas: seletor de plataforma vs. personalizado, bottom sheet vs. tela inteira, fase 1 sem animação. "Não" com opções é colaboração; "não" sozinho é um muro.
Precisamos de designs separados para iOS e Android?
Nem sempre - layout compartilhado com diferenças de cromo da plataforma é comum. Documente divergências intencionais em Decisões de Paridade de Plataforma; não deixe a deriva acontecer por acidente.
E se o design usar componentes da web como referência?
Traduza padrões, não copie DOM. Flexbox traduz; hover, vh e grades de várias colunas não. Consulte Noções Básicas de Sistemas de Design para APIs de componentes RN.
Quanto buffer as estimativas devem incluir para mudanças de design?
Tokens e componentes estáveis: 10–15%. Novos gestos, câmera ou movimento: 25–40% mais dia de spike. Veja Estimativa e Risco em Mobile.
Os PMs devem aprender React Native?
Eles devem aprender restrições móveis: áreas seguras, revisão da loja, OTA vs. binário, offline. A alfabetização em código ajuda a ler notas de viabilidade - não é um requisito para escrever JSX.