guricode

[flutter-sns-project - 1] 환경설정 본문

앱/Flutter&Dart

[flutter-sns-project - 1] 환경설정

agentrakugaki 2025. 8. 31. 01:18

SNS 앱을 구현하기로했다.

 

앱 제목은 GoalMate

 

목표를 작성한 간단한 게시글을 올리는 간단한 소셜네트워킹서비스다.

 

우선 어떤 기능을 쓰는지에 따라 필요한 라이브러리가 있어 환경셋팅을 미리 해놔야한다.

 

그리고 라이브러리를 한번에 추가하면 안드로이드나 IOS에서 문제가 생기기때문에 하나씩 추가하고 일일이 빌드해가면서 테스트해야한다.

 

시간이 꽤 걸린다고 한다..

 

 

 

 

-운영 전용 도구-
파이어베이스 필수 초기화 firebase_core
파이어베이스 사용자 인증 firebase_auth
파이어베이스 이미지 저장 firebase_storage
파이어베이스 데이터베이스 cloud_firestore
파이어베이스 앱 분석 firebase_analytics
파이어베이스 예외 및 크래시리포트 firebase_crashlytics
파이어베이스 푸시알림 firebase_messaging이미지 선택 image_picker
이미지 캐싱 최적화 cached_network_image
이미지 크기 조정 flutter_image_compress
라우팅 go_router
앱 네트워크 상태 감지 connectivity_plus
앱 내 글꼴관리 google_fonts
앱 권한요청 관리 permisson_handler
로깅 및 디버깅 logger
클린아키텍쳐코드생성(CLI) clean_arch_boilerplate_cli
앱 권한요청관리 permission_handler
상태관리Provider provider
상태관리riverpod flutter_riverpod
HTTP통신 dio
json직렬화 어노테이션 json_annotation
날짜/시간관리 intl
다국어지원 flutter_localization-개발전용-
코드생성 build_runner
json코드생성 json_serializable
테스트프레임워크 flutter_test(기본포함)
테스트용 mock생성 mockito
UI통합테스트 intergration_test (편집됨) 

 

 

표로 정리!! feat.GTP


 

운영용 패키지

패키지 역할 설치 명령어 주의점

firebase_core Firebase 초기화 flutter pub add firebase_core Firebase.initializeApp 호출 필수
firebase_auth 사용자 인증 flutter pub add firebase_auth OAuth 플랫폼별 설정 필요
firebase_storage 파일/이미지 저장 flutter pub add firebase_storage 보안 규칙, 업로드 재시도 고려
cloud_firestore 클라우드 DB flutter pub add cloud_firestore 오프라인 캐시 동작 이해
firebase_analytics 앱 분석 flutter pub add firebase_analytics iOS ATT 동의 고지 필요
firebase_crashlytics 크래시 리포트 flutter pub add firebase_crashlytics dSYM/Proguard 설정 필요
firebase_messaging 푸시 알림 flutter pub add firebase_messaging iOS APNs 인증키, Android 채널
image_picker 이미지 선택 flutter pub add image_picker Info.plist/Manifest 권한 추가
cached_network_image 이미지 캐싱 flutter pub add cached_network_image 캐시 크기/만료 관리
flutter_image_compress 이미지 압축 flutter pub add flutter_image_compress 품질·EXIF 손실 주의
go_router 라우팅 flutter pub add go_router MaterialApp.router 구성 필요
connectivity_plus 네트워크 상태 감지 flutter pub add connectivity_plus 단순 연결=인터넷 아님
google_fonts 구글 폰트 flutter pub add google_fonts 런타임 로드 성능 고려
permission_handler 권한 요청 관리 flutter pub add permission_handler Info.plist/Manifest 권한 문자열 필수
logger 로깅/디버깅 flutter pub add logger 민감정보 로그 금지
provider 상태관리 flutter pub add provider Riverpod과 혼용 시 구분
flutter_riverpod 상태관리 flutter pub add flutter_riverpod 루트에 ProviderScope 필요
dio HTTP 통신 flutter pub add dio 인터셉터·타임아웃 관리
json_annotation JSON 어노테이션 flutter pub add json_annotation json_serializable과 세트
intl 날짜/시간/숫자 flutter pub add intl 로케일 초기화 필요
flutter_localizations 다국어 지원 SDK 포함 (추가 설치 불필요) localizationsDelegates, supportedLocales 등록

개발용 패키지

패키지 역할 설치 명령어 주의점

build_runner 코드 생성기 flutter pub add -d build_runner dart run build_runner build -d 필요
json_serializable JSON 직렬화 코드 생성 flutter pub add -d json_serializable 모델에 @JsonSerializable()
flutter_test 단위 테스트 기본 포함 별도 설치 불필요
mockito Mock 생성 flutter pub add -d mockito @GenerateMocks + build_runner
integration_test UI/E2E 테스트 기본 포함 환경 구성 필요

 


 

꼭 써야하는건 볼드로 표시했다...

표에는 빠져있지만

Crashlytics 는 30분, 1시간 단위로 보내지기 때문에 배포 후 실시간 대응이 어려워서
sentry 사용 해보는 게 어떠냐고 했다..흠...추가반영에 추가

 

(운영 패키지 수정)

firebase_core Firebase 초기화 flutter pub add firebase_core Firebase.initializeApp 호출 필수
firebase_auth 사용자 인증 flutter pub add firebase_auth OAuth 플랫폼별 설정 필요
firebase_storage 파일/이미지 저장 flutter pub add firebase_storage 보안 규칙, 업로드 재시도 고려
cloud_firestore 클라우드 DB flutter pub add cloud_firestore 오프라인 캐시 동작 이해
firebase_analytics 앱 분석 flutter pub add firebase_analytics iOS ATT 동의 고지 필요
firebase_crashlytics 크래시 리포트 flutter pub add firebase_crashlytics dSYM/Proguard 설정 필요
firebase_messaging 푸시 알림 flutter pub add firebase_messaging iOS APNs 인증키, Android 채널
image_picker 이미지 선택 flutter pub add image_picker Info.plist/Manifest 권한 추가
cached_network_image 이미지 캐싱 flutter pub add cached_network_image 캐시 크기/만료 관리
flutter_image_compress 이미지 압축 flutter pub add flutter_image_compress 품질·EXIF 손실 주의
go_router 라우팅 flutter pub add go_router MaterialApp.router 구성 필요
connectivity_plus 네트워크 상태 감지 flutter pub add connectivity_plus 단순 연결=인터넷 아님
google_fonts 구글 폰트 flutter pub add google_fonts 런타임 로드 성능 고려
permission_handler 권한 요청 관리 flutter pub add permission_handler Info.plist/Manifest 권한 문자열 필수
logger 로깅/디버깅 flutter pub add logger 민감정보 로그 금지
provider 상태관리 flutter pub add provider Riverpod과 혼용 시 구분
flutter_riverpod 상태관리 flutter pub add flutter_riverpod 루트에 ProviderScope 필요
dio HTTP 통신 flutter pub add dio 인터셉터·타임아웃 관리
json_annotation JSON 어노테이션 flutter pub add json_annotation json_serializable과 세트
intl 날짜/시간/숫자 flutter pub add intl 로케일 초기화 필요
flutter_localizations 다국어 지원 SDK 포함 (추가 설치 불필요) localizationsDelegates, supportedLocales 등록
sentry_flutter 에러 추적·성능 모니터링 flutter pub add sentry_flutter DSN 설정 필요, runApp 전에 SentryFlutter.init 호출

그리고 git action을 이용해서 ci/cd도 해야한다

일주일안에 전부 구현할수있을진 모르겠지만..

될때까지 해보자

 

일단라이브러리 하나씩 추가하면서 오류가나면 포스팅해야겠다