[flutter] get_it을 활용한 앱 검색 기능

get_it은 의존성 주입을 위한 플러터 패키지 중 하나로, 앱 전반에 걸쳐 Singleton 객체를 제공하고자 할 때 유용합니다. 이번 포스트에서는 get_it을 사용하여 Flutter 앱에서 검색 기능을 구현하는 방법을 알아보겠습니다.

get_it이란?

get_it은 Flutter 앱에서 런타임에 객체를 제공하는데 사용되는 경량화된 서비스 로케이터 패턴입니다. 객체를 Singleton으로 관리하고 필요한 위치에서 사용할 수 있도록 도와줍니다. 이는 코드 중복을 방지하고 객체 인스턴스를 쉽게 관리할 수 있게 해줍니다.

앱 검색 기능 구현하기

  1. 먼저, 검색 로직을 포함하는 서비스 클래스를 만들어야 합니다. 이 클래스는 목록에서 특정 검색어에 따라 항목을 필터링하는 메소드를 포함해야 합니다.

     import 'package:flutter/material.dart';
    
     class SearchService {
       List<String> items = ['apple', 'banana', 'cherry', 'date', 'fig', 'grape'];
    
       List<String> searchItems(String query) {
         return items.where((item) => item.contains(query)).toList();
       }
     }
    
  2. 이제, 위에서 만든 서비스를 등록하고 어디서든지 사용할 수 있도록 get_it을 설정해야 합니다. 앱 시작 시점에 get_it을 초기화하고 서비스를 등록합니다.

     import 'package:get_it/get_it.dart';
     import 'search_service.dart';
    
     void setupLocator() {
       GetIt.I.registerLazySingleton(() => SearchService());
     }
    
  3. 이제, 앱 내에서 검색 로직을 사용할 곳에서는 get_it을 사용하여 서비스를 가져와서 검색을 수행할 수 있습니다.

       final searchService = GetIt.I<SearchService>();
       final results = searchService.searchItems('a');
    

위와 같이 get_it을 사용하여 Singleton으로 등록된 서비스를 가져와서 검색 기능을 구현할 수 있습니다. 이렇게 함으로써 검색 관련 로직을 한 곳에서 관리하고, 중복코드를 방지할 수 있게 됩니다.

get_it을 사용하면 앱 전반에서 필요로 하는 객체를 쉽게 관리할 수 있고, 테스트를 진행할 때도 편리함을 제공합니다.

get_it에 관한 자세한 내용은 공식 문서를 참고하시기 바랍니다.