Sobes.tech
Middle

¿Qué herramientas de inyección de dependencias (DI) utilizas en producción?

sobes.tech AI

Respuesta de la IA

La más utilizada es GetIt en combinación con injectable.

GetIt es un localizador de servicios simple que se integra fácilmente con otros frameworks. Proporciona métodos estándar para registrar servicios:

// Registro de singleton
GetIt.instance.registerSingleton<ApiService>(ApiService());

// Registro de fábrica
GetIt.instance.registerFactory<UserRepository>(() => UserRepository());

injectable es un generador de código que permite anotar clases y generar código para GetIt, simplificando significativamente el proceso de inyección de dependencias:

// Ejemplo de anotación de clase para GetIt con injectable
@lazySingleton
class ApiService {}

// Comando para generar código para GetIt
// flutter pub run build_runner build

La combinación de estas herramientas permite aprovechar las ventajas tanto del Service Locator (de GetIt) como de la Inyección de Dependencias (gracias a la generación automática de código con injectable), haciendo que la DI en el proyecto sea más manejable y menos propensa a errores.

También he utilizado Provider en casos simples o en proyectos donde ya se usa gestión de estado basada en Provider, ya que puede servir para DI. Sin embargo, para aplicaciones empresariales más grandes, prefiero la combinación GetIt/injectable.