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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions