Flutter Getit Service Locator Tips

Flutter GetIt service_locator - Feature 늘어날수록 관리가 힘든 이유

Flutter에서 GetIt으로 의존성 주입을 관리하다 보면, Feature가 5개일 때는 괜찮다가 15개가 넘으면 슬슬 힘들어진다. 오늘 겪은 것들 위주로 정리한다. 기본 구조 service_locator.dart 파일 하나에 GetIt 등록을 몰아넣는 구조다. final sl = GetIt.instance; Future<void> setupServiceLocator({ required String baseUrl, String? token, }) async { // 외부 라이브러리 sl.registerLazySingleton<Dio>(() => Dio()); // Datasources sl.registerLazySingleton<LawsRemoteDatasource>( () => LawsRemoteDatasource( dio: sl<Dio>(), baseUrl: baseUrl, token: token, ), ); // Repositories sl.registerLazySingleton<LawsRepository>( () => LawsRepositoryImpl(datasource: sl<LawsRemoteDatasource>()), ); } 문제 1: 토큰 타이밍 앱 시작 시 setupServiceLocator(token: null)로 먼저 등록하고, 로그인 후에 토큰을 갱신해야 하는 상황이 생긴다. ...

2025-07-23 · 2분 소요 · Seunghan
Flutter Clean Architecture Multi Feature

Flutter Clean Architecture 실전 - Feature 여러 개 한 번에 추가하기

Flutter 앱에 기능을 한 번에 여러 개 추가할 때 가장 먼저 고민되는 건 폴더 구조다. 기능 하나하나는 단순해 보여도, 여러 개가 동시에 들어오면 금방 엉킨다. Feature별 폴더 구조 Clean Architecture를 기반으로 각 Feature를 아래 구조로 만든다. lib/features/{feature_name}/ ├── data/ │ ├── datasources/ # API 호출 │ └── repositories/ # 인터페이스 구현체 ├── domain/ │ ├── entities/ # 순수 데이터 모델 │ └── repositories/ # 인터페이스 정의 └── presentation/ ├── bloc/ # BLoC (이벤트/상태) └── pages/ # UI 이걸 따르면 기능이 몇 개가 늘어도 구조는 동일하다. 새 기능 추가 = 폴더 복사 + 내용 채우기 수준이 된다. ...

2025-07-09 · 3분 소요 · Seunghan
개인정보처리방침 문의