Introdução

Comece a usar o ModularBr para implementar a estrutura modular nos seus projetos.

Inspirações do ModularBr

O ModularBr, assim como o Flutter Modular, foi inspirado no recurso NgModule do Angular, que é uma forma de organizar e modularizar uma aplicação Angular. O Flutter Modular, por sua vez, adaptou esse conceito para o ambiente do Flutter, criando um framework de gerenciamento de estados e rotas que se tornou muito popular na comunidade Flutter. O ModularBr, então, foi criado como uma alternativa para o ambiente Delphi, trazendo muitos dos benefícios e conceitos do Flutter Modular para o mundo Delphi. Com isso, o ModularBr permite a criação de aplicativos escaláveis e bem organizados, facilitando a manutenção e evolução do código. O InjectorBr é uma das principais ferramentas do ModularBr, permitindo a injeção de dependências de forma simples e eficiente, além de possibilitar a criação de módulos que podem ser facilmente reutilizados em outras partes da aplicação.

Iniciar um projeto

Para começar a utilizar o ModularBr, o primeiro passo é iniciar a aplicação com o comando ModularApp.Init(TAppModule.Create), AppModule é o módulo principal da sua aplicação, será o ponto de entrada.

O AppModule é o ponto de entrada para o ModularBr, responsável por definir as rotas e injeções de dependência globais para toda a vida útil da aplicação. Para que o AppModule possa ter acesso aos métodos necessários para definir essas configurações, é necessário que ele herde da classe TModule.

Um exemplo de estrutura do AppModule pode ser vista abaixo:

unit app.module;

interface

uses
  dmfbr.module,
  nfe.module;

type
  TAppModule = class(TModule)
  public
    function Routes: TRoutes; override;
    function Binds: TBinds; override;
  end;

implementation

{ TAppModule }

function TAppModule.Binds: TBinds;
begin
  // Injeção de dependência
  Result := [];
end;

function TAppModule.Routes: TRoutes;
begin
  // Rotas
  Result := [RouteModule('/nfe/:id', TNFeModule)];
end;

end.

Este é apenas um exemplo básico, mas a estrutura pode ser adaptada de acordo com as necessidades da aplicação.

Last updated