| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- println
- 자바스크립트
- scss
- LLM
- java 출력
- JQ
- java
- riverpod
- firebase
- 자바 포맷 출력
- JS
- 엡
- lifecycle
- 배포
- DART
- Flutter
- 자바 출력 방식
- java 콘솔 출력 차이
- UI/UX
- npm
- abap
- 앱심사
- printf
- Clean Architecture
- develop
- ListView
- unity
- 단축키
- nodejs
- react
- Today
- Total
guricode
[flutter-sns-project - 1] 환경설정 본문
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도 해야한다
일주일안에 전부 구현할수있을진 모르겠지만..
될때까지 해보자
일단라이브러리 하나씩 추가하면서 오류가나면 포스팅해야겠다
'앱 > Flutter&Dart' 카테고리의 다른 글
| [flutter-sns-project - 3]firebase_auth,google_sign_in (0) | 2025.08.31 |
|---|---|
| [flutter-sns-project - 2]Workflow 작성 방법 (0) | 2025.08.31 |
| [클린아키텍쳐]Clean Architecture -4 (1) | 2025.08.31 |
| [클린아키텍쳐]Clean Architecture -3 (0) | 2025.08.30 |
| [클린아키텍쳐]Clean Architecture -2 (1) | 2025.08.30 |