Skip to content

[FEATURE] Integração com o jaspr e flutter web #24

@kmsbin

Description

@kmsbin

🚀 Feature Request

💡 Descrição da Funcionalidade

A integração do Vaden com o Jaspr pode ser um diferencial significativo para a adoção do framework, considerando que concorrentes como Dart Frog, Serverpod e Shelf já oferecem integrações semelhantes. No entanto, o Vaden tem o potencial de oferecer a melhor experiência de desenvolvimento, superando os outros frameworks, pois ele automatiza a geração de todo o boilerplate necessário.

Imaginem o seguinte cenário:

@JasprView()
Component generatePaymentForm() {
  return html([
    form(action: '/send-payment-info', [
      img(src: 'images/banner.jpg', alt: "Símbolo de citação", width: 100),
      input(type: InputType.email, []),
      input(type: InputType.number, []),
      button(type: ButtonType.submit, []),
    ]),
  ]);
}

Poderoso, não? Com o Jaspr, poderíamos também renderizar páginas Flutter Web de forma simples.

Utilizando da mesma anotation poderiamos fazer algo como:

@JasprView()
Component generateHelloWorldPage() {
  return FlutterEmbedView(
    loader: MyCustomLoader(),
    widget: Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.white,
        title: Text(widget.title),
      ),
      body: Center(
        child: Text('Hello, world!'),
      ),
    ),
  );
}

Ou, se preferirmos simplificar um pouco mais:

@JasprFlutterEmbedView()
Widget generateHelloWorldPage(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      backgroundColor: Colors.white,
      title: Text(widget.title),
    ),
    body: Center(
      child: Text('Hello, world!'),
    ),
  );
}

Esses exemplos são simples em comparação com o que podemos alcançar. Podemos construir aplicações totalmente modulares, renderizar páginas estáticas, cachear conteúdo gerado no servidor e ainda contar com uma API de testes robusta, proporcionando mais confiança ao desenvolvedor.

Outro ponto importante é que o jaspr já utiliza o shelf como base (engine do vaden), o que facilita a integração.

🎯 Objetivo

Facilitar a geração de páginas e componentes web de maneira simples e eficiente, combinando o poder do Vaden com a flexibilidade do Jaspr.

Critérios de Aceitação

Liste os critérios que devem ser atendidos para considerar essa funcionalidade completa.

Exemplo:

  • Configuração de modo de renderização (servidor/cliente).
  • Suporte a configurações globais e locais de estilo, incluindo rotas internas, fontes e mais.
  • Integração com a API de testes do Vaden, garantindo a confiabilidade da solução.

🔄 Passos Alternativos

Sistema de ui que possa retornar um widget com uma sdk de testes iria ser bacana.

📊 Impacto

Acredito que integrar isso da maneira correta será um turning-point tanto para o framework, tornando-o uma solução fullstack, com testes de ponta a ponta e uma abordagem simplificada para o desenvolvimento de interfaces.

📝 Notas Adicionais

doc do jaspr: https://docs.jaspr.site/
doc da integração do jaspr com flutter web: https://docs.jaspr.site/going_further/flutter_embedding
doc de integração com backend: https://docs.jaspr.site/going_further/backend
playground para o jaspr: https://jasprpad.schultek.de/

📷 Mockups ou Exemplos (se aplicável)

Inclua imagens, diagramas ou protótipos para ilustrar a ideia.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions