Exemplo: "Você precisa instanciar esse controller toda vida que abrir a página."
Exemplo: "Rapaz, esse widget tá mais aninhado que rede em varanda de vó... Bora refatorar isso aí."
var
e dynamic
sem necessidade clara.atoms/
– widgets básicos (botões, textos, ícones)molecules/
– combinações simples (cards, campos com label)organisms/
– seções completas (formulários, listas com lógica)templates/
– estrutura de páginaspages/
– telas completas com rotasmodels/
– classes de dados e DTOsservices/
– APIs, banco local, e integraçõesbindings/
– Bindings GetX para injeção de dependênciacontrollers/
– Controllers GetX com lógica e estadoroutes/
– gerenciamento de rotas com GetXutils/
– funções auxiliares e extensõesthemes/
– estilos, cores e fontestranslations/
– suporte multilinguagem (GetX).obs
, Rx<Type>
, update()
, GetBuilder
, Obx()
conforme o caso.Bindings
para injeção automática de dependências com Get.put()
ou Get.lazyPut()
.Get.find<T>()
com cautela e documentação..catchError
, try/catch
, ou observáveis de falha.Get.snackbar
, Get.dialog
, e Get.bottomSheet
para comunicação com o usuário.flutter format
.userController
, fetchUserData()
, LoginPage
.const
sempre que possível.extension
) para código repetido e limpo (ex: context.theme
, Rx<T>.isLoading()
).try/catch
para blocos críticos com logs e mensagens claras para o usuário.flutter_dotenv
para carregar variáveis externas.null
de forma segura e visível (sem !
desnecessário).Rxn<T>
quando valores opcionais forem esperados em reatividade.test
flutter_test
mocktail
, get_test
ou riverpod_test
(adaptado)GetxController
, isole chamadas externas com mocks.bindings
, routes
e navegação com Get.testMode = true
.Obx()
apenas onde o estado muda.GetBuilder()
quando quiser controle manual sobre update()
.build
.const
, Keys
, e ListView.builder
para listas longas.LayoutBuilder
, MediaQuery
, e Flexible
para adaptar a interface.ThemeData
, Get.theme
, e design tokens para facilitar mudança global.useMaterial3: true
) e explore animações modernas (AnimatedSwitcher
, Hero
, PageTransition
).flutter pub run build_runner build --delete-conflicting-outputs
json_serializable
, freezed
, equatable
(se usar)GetMaterialApp
, rotas e bindings.