프로그래밍 일반/Flutter 프로그래밍

[flutter] Get.lazyPut 활용

지노윈 2024. 11. 12. 06:42
반응형
getPages: [
  GetPage(name: '/', page: () => const App()),
  GetPage(name: '/home', page: () => const HomePage()),
  GetPage(
    name: '/login',
    page: () => const LoginPage(),
    binding: BindingsBuilder(() {
      Get.lazyPut<LoginController>(() => LoginController(Get.find<AuthenticationRepository>()));
    })
  ),
]

Get.lazyPut을 사용하는 이유는 특정 컨트롤러 인스턴스를 필요할 때만 생성하기 위해서입니다. 즉, 해당 페이지에 접근하는 순간에만 컨트롤러가 초기화되도록 합니다. 이는 애플리케이션의 리소스 사용을 최적화하고, 불필요한 메모리 소비를 줄이는 데 도움이 됩니다.

 

다음 코드는 페이지 라이팅의 일부 코드이며 lazyPut을 사용하고 있습니다.

책 '클론 코딩으로 배우는 플러터 앱 개발의 모든 것'에서 코드 참고

 

메모리 최적화: 필요할 때만 인스턴스를 생성하므로 메모리 사용을 최소화합니다.
성능 향상: 애플리케이션 시작 시 불필요한 컨트롤러 초기화 작업을 수행하지 않으므로 성능이 향상될 수 있습니다.
의존성 주입 효율화: LoginController의 생성자에서 다른 객체(AuthenticationRepository)를 필요로 할 때, 애플리케이션의 다른 부분에서 사용되는 객체를 찾을 수 있습니다.