Como criar um aplicativo com o arquiteto GetX no Flutter.

Tempo de leitura: 3 minutes

No artigo de hoje, vou compartilhar as etapas de como criar o aplicativo Flutter com o arquiteto GetX. Vamos começar.

O que é GetX?

GetX é uma solução leve e poderosa para Flutter. A solução combina gerenciamento de estado de alta velocidade com injeção de dependência inteligente, bem como gerenciamento de rotas.

Por que escolher GetX?

Se o Flutter já é uma estrutura, por que você deveria escolher uma microestrutura (GetX) para desenvolvimento de aplicativos cruzados no Flutter? Então, aqui estão alguns benefícios que o GetX está oferecendo.

Desempenho

GetX fornece alto desempenho e consumo mínimo de recursos. GetX não usa Streams ou ChangeNotifier.

Dissociação

A lógica de negócios é separada da interface do usuário e até mesmo as dependências podem ser separadas usando ligações GetX.

Internacionalização

GetX fornece i18n pronto para uso, permitindo que você escreva aplicativos com suporte a vários idiomas.

Gerenciamento de estado

GetX é seu recurso intuitivo de gerenciamento de estado. O gerenciamento de estado no GetX pode ser obtido com pouco ou nenhum clichê.

Gerenciamento de rota

GetX fornece API para navegar dentro do aplicativo Flutter. Essa API é simples e com menos código necessário.

Gerenciamento de Dependências

O GetX fornece uma maneira inteligente de gerenciar dependências em seu aplicativo Flutter, como os controladores de visualização. GetX irá remover qualquer controlador que não esteja sendo usado no momento da memória automaticamente.

Validação

O GetX fornece métodos de validação para executar a validação de entrada em seus aplicativos Flutter, portanto, não é necessário instalar nenhum pacote extra para validação.

Armazenar

GetX fornece um valor-chave rápido, extra leve e síncrono na memória, que faz backup dos dados no disco em cada operação. Ele é escrito inteiramente em Dart e se integra facilmente ao pacote principal do GetX.

Mudar tema

Enquanto estivermos usando o GetX, não precisamos usar nenhum widget de nível superior ao widget “GetMaterialApp” e também não precisamos

 

Passo 1
Inicie um novo projeto do Flutter.

flutter create nome_do_seu_projeto

 

Passo 2 
Adicionar pacote GetX a pubspec.yaml

dependencies:
  get: ^4.6.5

 

Passo 3
Faça sua estrutura de aplicativo como a imagem abaixo.

Haverá três arquivos por página. Um controlador, uma ligação e uma página/visualização.

 

Controlador

A classe GetxController cuida de toda a sua lógica e torna seus campos observáveis.

//home_controller.dart

import 'package:get/get.dart';
class HomeController extends GetxController {
}

 

Binding
Binding podem ser usadas para inicializar seus controladores, repositórios, APIs e tudo o mais que você precisar, sem precisar chamá-los diretamente da página de visualização.

//home_binding.dart

import 'package:flutter_getx/app/modules/home_controller.dart';
import 'package:get/get.dart';

class HomeBinding extends Bindings {
  @override
  void dependencies() {
    Get.lazyPut(() => HomeController());
  }
}

 

Página/visualização
Você usa esta página para exibir seu design em seu aplicativo.

//home_page.dart

import 'package:flutter/material.dart';
import 'package:flutter_getx/app/modules/home_controller.dart';
import 'package:get/get.dart';

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GetBuilder<HomeController>(
      builder: (controller) => Scaffold(
        appBar: AppBar(
          title: const Text('Home'),
        ),
        body: const Center(
          child: Text('Hello World!'),
        ),
      ),
    );
  }
}

 

Passo 4
No GetX, antes de navegar de uma tela para outra, exigimos rotas. Então vamos criar rotas.

//app_routes.dart

class AppRoutes {
  static const home = '/home';
}
//app_pages.dart

import 'package:flutter_getx/app/modules/home_binding.dart';
import 'package:flutter_getx/app/modules/home_page.dart';
import 'package:flutter_getx/app/routes/app_routes.dart';
import 'package:get/get.dart';

class AppPages {
  static final List<GetPage> pages = [
    GetPage(
      name: AppRoutes.home,
      page: () => HomePage(),
      binding: HomeBinding(),
    ),
  ];
}

 

Passo 5
Agora altere seu widget MaterialApp com GetMaterialApp em main.dart e inicialize sua página.

//main.dart

import 'package:flutter/material.dart';
import 'package:flutter_getx/app/modules/home_binding.dart';
import 'package:flutter_getx/app/modules/home_page.dart';
import 'package:flutter_getx/app/routes/app_pages.dart';
import 'package:get/get.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(primarySwatch: Colors.blue),
      initialBinding: HomeBinding(),
      home: HomePage(),
      getPages: AppPages.pages,
    );
  }
}

Tudo está feito agora execute seu aplicativo.

 

Conclusão

Este é um guia passo a passo simples para mostrar como criar seu aplicativo no Flutter GetX. Para entender melhor, você também pode conferir o app de curta-metragem que fiz no GetX clicando no link abaixo.

Link: https://github.com/caneto/demo_site_projects/tree/main/demo_getx_movieapp