Widget na Tela Inicial
Adicione um widget no home screen do iOS e Android. Toda infraestrutura nativa já vem pronta.
Widget de tela inicial (aquele que o usuário coloca ao lado dos ícones) nos dois sistemas. Toda a parte nativa já vem no projeto: target Xcode, Kotlin Glance, entitlements, App Group.
Implementação
Pelo MCP: peça ao assistente "adiciona widget no meu projeto". Ele roda add_feature por você. Veja MCP do Kasy.
-
Rode:
kasy add widget -
Personalize os dados exibidos editando o método
update()emlib/core/home_widgets/home_widget_mywidget_service.dart:- Em
update()salve os campos viaHomeWidget.saveWidgetData('chave', 'valor') - No iOS: leia com
UserDefaults(suiteName: appGroupId)e exiba com SwiftUI - No Android: leia com
currentState.preferences.getString('chave', 'padrão')e exiba com Glance Compose
- Em
-
No iOS, confirme que o App Group (
group.<seu-bundle-id>) existe na sua conta Apple. O Xcode com assinatura automática cria sozinho no primeiro build. Se falhar:- developer.apple.com → Identifiers
- Registre
group.<seu-bundle-id>(ex.:group.com.exemplo.meuapp) - Ative nos dois App IDs: app principal e
<bundle-id>.HomeWidgetExtension - Regenere os perfis no Xcode

developer.apple.com: capability App Groups ativada no App ID do HomeWidgetExtension No Android não precisa de nenhuma configuração extra: funciona no emulador e device físico direto.
Informações
O que já vem pronto
| Parte | iOS | Android |
|---|---|---|
Dependências (home_widget, background_fetch) | Sim | Sim |
| Código Dart (inicialização, background task) | Sim | Sim |
| Widget Extension Swift + target no Xcode | Sim | Não |
| Entitlements com App Group | Sim | Não |
MyWidget.kt (Glance) + receptor | Não | Sim |
Registro no AndroidManifest.xml | Não | Sim |
| Bundle ID substituído automaticamente | Sim | Sim |
Conteúdo padrão
O widget entregue mostra dois campos como exemplo:
title: ex."Olá, {userId}"counter: número ou texto curto, padrão"0"
Personalizar
| Camada | Arquivo | IDE |
|---|---|---|
| Dados (o que enviar) | home_widget_mywidget_service.dart → update() | VS Code |
| Visual iOS | ios/HomeWidgetExtension/MyWidget.swift | Xcode |
| Visual Android | android/.../MyWidget.kt | Android Studio |
Como o widget atualiza
O background_fetch roda a cada ~15 minutos mesmo com o app fechado. Ele chama MyWidgetHomeWidget.update(), que salva os dados e notifica o sistema para redesenhar.
Para forçar atualização manual durante desenvolvimento: Console Admin → Ferramentas → Atualizar MyWidget.
No simulador iOS dá para testar layout e dados. Atualização em background e cliques são inconsistentes no simulador: use device físico para comportamento real.
Atualizado em 03/11/2026

