Como adicionar e integrar um Widget do iOS na sua aplicação Expo
Desbloqueie o poder dos widgets nativos da Apple no seu app feito com Expo e React Native — sem sofrimento, com dados em tempo real e integração total.
Por que isso é importante
Widgets iOS no Expo: timeline e device — tutorial Android 1:1 quebra no launch.
Leitura relacionada: Curso React Native · Curso React · Programa CrazyStack · Cursos CrazyStack.
Crie widgets nativos para iOS no Expo em minutos — com dados dinâmicos!
Poucos sabem: agora você pode criar widgets nativos do iOS em aplicações Expo, sem ejetar, sem “gambiarra”, controlando dados em tempo real e integrando o estado do seu app. Com o plugin Expo Apple Targets, esse processo fica rápido e seguro — mesmo para quem não domina SwiftUI.
Atenção
A integração de widgets está disponível apenas para iOS — widgets Android exigem implementação nativa, sem suporte direto do Expo.
O que você irá aprender aqui?
Você vai sair deste guia sabendo: como instalar e configurar o Expo Apple Targets; criar um widget visível na tela do usuário; compartilhar dados autênticos entre app e widget; lidar com ciclos de build e preview; e refinar a UI usando SwiftUI dentro do Xcode, sem mistério.
O que é o Expo Apple Targets e por que usar?
Expo Apple Targets é um plugin mantido por Evan Bacon que reduz todo o drama do setup nativo: oferece comandos prontos para adicionar widgets, App Clips, ações rápidas e mais. Com poucos comandos você já vê seu widget funcionando — e com a mesma base de código Expo.
Dica
Você pode estudar exemplos abertos de widgets avançados nas comunidades e repositórios, acelerando ainda mais seu domínio sobre o plugin.
Pré-requisitos: o que precisa antes de começar?
Você deve ter uma aplicação Expo criada (pode ser um projeto simples); possuir uma conta Apple Developer; e ter Xcode instalado (até para previews). Ter familiaridade básica com React Native facilita, mas não é obrigatório conhecer SwiftUI a fundo.
Cuidado
O plugin funciona exclusivamente em iOS. Para Android, pesquise bibliotecas nativas, como react-native-android-widget — mas a experiência será completamente diferente e menos integrada.
1. Instale o plugin e adicione o widget ao projeto
Execute npx create-target no terminal do seu projeto Expo e escolha a opção “Widget”. O plugin adicionará todos os arquivos, dependências e configurações necessárias (como Bacon AppleTarget no package.json) automaticamente.
2. Configure as credenciais da Apple Developer
Adicione seu Apple Team ID dentro do campo ios.teamId no app.json, acessível pela interface web do portal Apple Developer. Isso é essencial para builds, distribuição e para liberar recursos avançados como grupos de apps.
Atenção
Falhar ao definir o Team ID impede a construção do app para dispositivos físicos ou para publish — sem ele, você verá erros quebrando a build.
3. Realize o prebuild e sincronize entitlements
Rode npx expo prebuild --platform ios --clean para gerar o código nativo atualizado. Copie a configuração de entitlement fornecida pelo plugin e cole nos arquivos correspondentes à pasta ios do projeto, inclusive ajustando nomes segundo sua identidade de bundle.
4. Execute o app e veja o widget surgindo
Agora basta rodar npx expo run:ios ou buildar com EAS — seu app lançará normalmente, mas já vai permitir que widgets sejam adicionados na tela inicial. Segure o ícone do app e veja a mágica: seu widget aparece pronto para ser configurado!
Dica rápida
Você pode continuar usando EAS Build normalmente — basta garantir que o Team ID esteja definido. O processo é idêntico ao build de aplicativos comuns.
5. Abra o projeto no Xcode e customize usando SwiftUI
Para refinar a UI do widget, abra o projeto com xed ios . No Xcode, use o arquivo Widget gerado na pasta Widgets para modificar layout e lógica SwiftUI. Você pode ver o preview em tempo real, facilitando ajustes antes do deploy.
Atenção
Se o preview não carregar, rode um prebuild com template em branco do plugin (“pre-widget”), garantindo que só o código necessário do widget seja compilado e acelerando previews.
6. Dummy data: desenvolva rápido, depois integre ao app
Para criar e testar a UI do widget sem depender do app React Native, defina arrays de dados mockados (“dummy data”) no SwiftUI. Isso acelera o ciclo de design e permite experimentar componentes com facilidade.
7. Compartilhando dados entre app principal e widget
Use a funcionalidade de “extension storage” do plugin: instancie um storage com o groupId copiado do app.json, e use métodos .set e .get para sincronizar os estados de todos, listas, ou qualquer dado serializado entre ambos, sempre em tempo real.
Evite erro clássico
Crie chaves exclusivas para cada tipo de dado compartilhado entre app e widget. Compartilhamento confuso pode causar dados “sujos” e erros cruéis na tela inicial do usuário.
8. Lendo os dados no Widget SwiftUI
No Widget, utilize UserDefaults com o mesmo suiteName para acessar dados gravados pelo app. Decodifique JSON conforme o struct dos itens, populando a UI com informações reais e sincronizadas. Isso libera o potencial dinâmico do seu widget.
9. Mostre múltiplos tamanhos e previews simultâneos
Implemente várias instâncias de preview no arquivo do Widget para testar as diferentes dimensões (pequeno, médio, grande). Assim, garante UX consistente independente do tamanho do widget escolhido pelo usuário no iOS.
Atenção
Nenhum preview mostra dados reais — por isso, sempre use mocks no design e só valide integração sincronizada no build final da aplicação.
10. Personalize para sua marca e não aceite “default”!
Edite identificadores, nomes, visuais e assets no widget para refletir o branding do seu app. Widgets bem personalizados aumentam lembrança e criam presença premium para o produto no iOS.
11. Dicas rápidas para evitar frustração
Sempre execute prebuild ao alterar app.json ou entitlements; mantenha o Team ID consistente; faça commits (ou branches) dedicados para experimentar widgets. E para UI, abuse do ChatGPT ou plugins visuais para criar componentes SwiftUI bonitos sem drama.
12. Foi mais fácil do que parece, certo?
Juntar Expo e widgets não exige mais sofrimento: o plugin resolve 99% do nativo por você. O maior ganho é a flexibilidade de adicionar experimentos ou features Apple rapidamente, tornando seu app “first class citizen” no ecossistema iOS.
13. Pronto para divulgar seu app com widgets de verdade?
Depois de integrar o widget, divulgue essa novidade: destaque screenshots nas lojas, atualize a documentação e use exemplos de uso prático (como mostrar tarefas, lembretes, status, calendário, listas personalizadas). O potencial de engajamento é real — seu app pode ser a estrela da tela inicial dos usuários.
Próximo passo
Se quiser explorar mais: busque por App Clips, Quick Actions ou até múltiplos widgets no mesmo app usando as outras opções do Apple Targets.
14. Não pare por aqui: o universo Apple tem muito além!
Widgets são só o começo: ações rápidas, blockchain, machine learning, notificações avançadas e app clips podem ser integrados usando patterns similares e o mesmo mindset. Não existe limite aqui — só depende da sua criatividade (e coragem de experimentar).
FAQ e erros comuns
O widget não aparece na lista? Verifique Team ID, entitlement e prebuild. Os dados não sincronizam? Veja se a chave, o storage group e a serialização estão corretos. Preview bugado? Use template vazio só para o widget. Não desista: experimentação é parte do processo.
Bônus: Quer ver exemplos REAIS?
Desafie-se: baixe apps open source que já usam widgets Expo Apple Targets, compare implementações, copie ideias e veja como a comunidade evolui todos os dias. E nunca esqueça: quem chega primeiro no widget, fica na tela do usuário para sempre.
Perguntas frequentes
Em Como Adicionar Widgets do iOS em Aplicações Expo: Guia, o que «O que você irá aprender aqui?» pede para fazer esta semana?
Comece pelo mecanismo: Você vai sair deste guia sabendo: como instalar e configurar o Expo Apple Targets; criar um widget visível na tela do usuário; compartilhar dados autênticos entre app e widget; lidar com ciclos de build e preview; e refinar a UI usando SwiftUI dentro do Xcode.
Como provar «O que é o Expo Apple Targets e por que usar?» com um experimento mínimo?
Critério do material: Expo Apple Targets é um plugin mantido por Evan Bacon que reduz todo o drama do setup nativo: oferece comandos prontos para adicionar widgets, App Clips, ações rápidas e mais. Com poucos comandos você já vê seu widget funcionando — e com a mesma base de código. Se precisar de segundo sinal: Você pode estudar exemplos abertos de widgets avançados nas comunidades e repositórios, acelerando ainda mais seu domínio sobre o plugin.
Quando «Pré-requisitos: o que precisa antes de começar?» deve esperar atrás de oferta/canal?
O artigo aponta: Você deve ter uma aplicação Expo criada (pode ser um projeto simples); possuir uma conta Apple Developer; e ter Xcode instalado (até para previews). Ter familiaridade básica com React Native facilita, mas não é obrigatório conhecer SwiftUI a fundo. Ajuste ao contexto de `how-to-add-native-ios-widgets-` antes de escalar.
Qual sinal mostra que «1. Instale o plugin e adicione o widget ao projeto» saiu do papel?
Resposta direta do corpo: Execute npx create-target no terminal do seu projeto Expo e escolha a opção “Widget”. O plugin adicionará todos os arquivos, dependências e configurações necessárias (como Bacon AppleTarget no package.json) automaticamente.
Continue explorando
Continue: Curso React Native · Curso React · Programa CrazyStack · Cursos CrazyStack.