More
Construindo um App Flutter com OverlayPortal e Integração Back4app
15 min
introdução neste tutorial, aprenderemos como usar overlayportal no flutter para criar sobreposições dinâmicas para widgets como dicas ou menus além disso, integraremos back4app para armazenar e gerenciar dados do usuário, como preferências ou ações realizadas ao interagir com a sobreposição ao final deste tutorial, você será capaz de implementar overlayportal em um aplicativo flutter exibir sobreposições interativas como menus flutuantes ou dicas integrar back4app como o backend para armazenar dados relacionados à sobreposição (por exemplo, preferências do usuário ou ações) pré requisitos ambiente flutter certifique se de que você tenha o flutter instalado siga o guia de instalação https //flutter dev/docs/get started/install conta back4app inscreva se em back4app https //www back4app com/ para usar como seu backend conhecimento básico de widgets flutter familiaridade com widgets comuns do flutter, como botões, contêineres e sobreposições passo 1 configurando o back4app 1 1 criar um projeto no back4app faça login na sua conta do back4app https //www back4app com/ e crie um novo projeto chamado overlaydemoapp crie uma classe parse chamada overlayactions com os seguintes campos nome de usuário (string) o nome do usuário tipodeação (string) a ação realizada na sobreposição (por exemplo, "aberto", "fechado", "clicado") timestamp (datetime) o momento em que a ação ocorreu 1 2 obtenha suas credenciais do back4app no painel do back4app, navegue até as configurações do seu projeto e recupere seu id da aplicação e chave do cliente essas credenciais serão usadas para inicializar o back4app no seu aplicativo flutter passo 2 configurar o projeto flutter 2 1 criar um novo projeto flutter abra seu terminal e crie um novo projeto flutter flutter create overlay portal app cd overlay portal app 2 2 adicionar dependências abra o pubspec yaml arquivo e adicione as dependências necessárias para parse sdk e overlayportal dependencies flutter sdk flutter parse server sdk flutter ^latest version overlay portal ^0 1 0 provider ^5 0 0 execute flutter pub get para instalar as dependências 2 3 inicializar o parse sdk no lib/main dart , inicialize o parse sdk com suas credenciais do back4app import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( title 'overlay portal demo', theme themedata(primaryswatch colors blue), home overlayscreen(), ); } } substitua your back4app app id e your back4app client key pelas suas credenciais do back4app passo 3 implementando o overlayportal no flutter 3 1 criar o widget overlayscreen em lib/overlay screen dart , crie o widget principal onde implementaremos o overlayportal import 'package\ flutter/material dart'; import 'package\ overlay portal/overlay portal dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; class overlayscreen extends statefulwidget { @override overlayscreenstate createstate() => overlayscreenstate(); } class overlayscreenstate extends state\<overlayscreen> { final overlayportalcontroller controller = overlayportalcontroller(); bool isoverlayvisible = false; future\<void> logaction(string actiontype) async { // log action to back4app final actionobject = parseobject('overlayactions') set('username', 'player1') // example user set('actiontype', actiontype) set('timestamp', datetime now()); await actionobject save(); } void toggleoverlay() { setstate(() { isoverlayvisible = ! isoverlayvisible; if ( isoverlayvisible) { logaction('opened'); } else { logaction('closed'); } }); controller toggle(); } @override widget build(buildcontext context) { return scaffold( appbar appbar( title text('overlay portal example'), ), body center( child column( mainaxisalignment mainaxisalignment center, children \[ elevatedbutton( onpressed toggleoverlay, child text( isoverlayvisible ? 'hide overlay' 'show overlay'), ), overlayportal( controller controller, overlaychildbuilder (context) => positioned( top 150, left 50, child material( elevation 5 0, borderradius borderradius circular(8), child container( padding edgeinsets all(16 0), color colors blueaccent, child column( mainaxissize mainaxissize min, children \[ text( 'this is an overlay!', style textstyle(color colors white), ), sizedbox(height 10), elevatedbutton( onpressed () { logaction('clicked'); scaffoldmessenger of(context) showsnackbar(snackbar( content text('overlay button clicked!'), )); }, child text('click me'), ), ], ), ), ), ), ), ], ), ), ); } } nesta implementação overlayportal é ativado e desativado com o pressionar de um botão a interação do usuário (abrindo, fechando ou clicando) é registrada em back4app usando o logaction método a sobreposição contém uma mensagem e um botão que aciona uma ação 3 2 criar a ui a ui contém um botão que alterna a visibilidade da sobreposição a sobreposição em si é posicionada usando o positioned widget quando a sobreposição está visível, uma caixa flutuante com uma mensagem e um botão aparece na tela passo 4 executando o app abra o terminal e execute o app usando clique no mostrar sobreposição botão para alternar a sobreposição quando a sobreposição estiver visível, clique no botão dentro da sobreposição todas as interações (abrir, fechar e clicar) serão registradas no back4app passo 5 visualizando ações registradas no back4app para verificar se as ações do usuário estão sendo registradas vá para o seu painel do back4app navegue até a overlayactions classe você deve ver registros das ações (abertas, fechadas, clicadas) registradas com timestamps passo 6 personalizando o overlay você pode personalizar ainda mais o overlay mudando a posição do overlay com o positioned widget adicionando widgets mais complexos, como formulários ou menus, dentro do overlay estilizando o overlay com diferentes cores, bordas e sombras conclusão neste tutorial, você aprendeu como implementar overlayportal em um aplicativo flutter para criar overlays interativos que podem ser ativados e desativados além disso, integramos back4app para registrar interações do usuário com o overlay, fornecendo um backend robusto para armazenar dados e melhorar a funcionalidade do aplicativo essa configuração pode ser usada para construir aplicativos ricos em recursos onde as interações do usuário com overlays (por exemplo, tooltips, menus, popups) são armazenadas no backend, oferecendo insights sobre o comportamento do usuário ou facilitando o carregamento dinâmico de conteúdo com base em dados em tempo real para mais informações documentação do flutter overlay portal https //pub dev/packages/overlay portal documentação do back4app https //www back4app com/docs