name: arasystem_app description: "ARA SYSTEM 그룹웨어 모바일 앱" # pub.dev 에 올리지 않는 사내 앱이다. publish_to: 'none' # 앱 판 — build-name(1.0.0)은 Android versionName · iOS CFBundleShortVersionString, # build-number(+1)는 Android versionCode · iOS CFBundleVersion 이 된다. # 서버에 보내는 User-Agent 의 판(ARASYSTEM-App/<판>)도 build-name 이다 (core/api/user_agent.dart). version: 1.0.1+2 environment: # Flutter 3.41.9 의 Dart — 판 고정은 .claude/skills/flutter/SKILL.md "Flutter 판" sdk: ^3.11.5 # 새 패키지는 pub.dev 배포 뒤 2주가 지난 판만 고른다 (보안 규칙 "의존성"의 2주 규칙과 같다). dependencies: flutter: sdk: flutter # 한국어 시스템 문구(복사 · 붙여 넣기 메뉴 · 날짜 고르기) — locale: ko flutter_localizations: sdk: flutter cupertino_icons: ^1.0.8 # 기기 정보(Android 판 · 기종) — User-Agent 만들기 device_info_plus: ^13.3.0 dio: ^5.9.2 # 새 메일 알림(FCM) — Firebase 를 띄운다(core/push/firebase_push_messaging.dart). 5.1.0 은 2026-10-23 배포(FlutterFire). # 안드로이드 설정은 android/app/google-services.json(저장소에 넣지 않는다 — flutter/README "새 메일 알림") firebase_core: ^5.1.0 # 새 메일 알림 — FID 등록(register · onRegistered) · 알림 권한 · 누른 알림. 17.0.1 은 2026-10-23 배포(FlutterFire). # 토큰 API(getToken · onTokenRefresh)는 17.0 부터 deprecated 라 쓰지 않는다. 이 파일 밖에서는 import 하지 않는다 firebase_messaging: ^17.0.1 flutter_dotenv: ^5.2.1 flutter_riverpod: ^3.3.1 flutter_secure_storage: ^10.0.0 # 화면 이동 — redirect 하나가 세션 상태로 화면을 고른다 (core/router/) go_router: ^17.5.0 # 받은 메일 본문의 두 번째 정화 — HTML5 파서로 읽어 허용 목록만 남긴다 (features/mail/domain/mail_html.dart). # 0.15.7 은 2026-08-28 배포(Dart 팀 tools.dart.dev). 따라오는 csslib 1.0.2 도 같은 곳 html: ^0.15.7 # 날짜 · 숫자 형식 — flutter_localizations 가 이 판으로 고정한다 intl: 0.20.2 # 받은 첨부를 열 형식 — 확장자 → MIME 표(core/files/file_types.dart). 이미 lock 에 따라 들어와 있던 2.0.0(2024-09-30 배포, Dart 팀) 그대로 mime: ^2.0.0 # 앱 판 — User-Agent 만들기 package_info_plus: ^10.2.2 # 받은 첨부를 둘 앱 임시 폴더(Android cacheDir) — 이미 shared_preferences 를 따라 들어와 있던 판이다 (core/files/) path_provider: ^2.1.5 # 첫 실행 표시 하나만 둔다 — 토큰은 여기에 두지 않는다 (core/storage/first_run_marker.dart) shared_preferences: ^2.5.6 # 다른 앱 열기 — 로그인 2단계 켜기의 [인증 앱에 추가](otpauth 주소 — features/auth/data/authenticator_launcher.dart). # 6.3.3 은 2026-10-02 배포(Flutter 팀). canLaunchUrl 은 쓰지 않는다 — debug 판 안드로이드가 주소째 로그에 남긴다 url_launcher: ^6.3.3 # 받은 메일 본문 — 스크립트를 끈 WebView 한 겹(features/mail/presentation/widgets/mail_body_view.dart). # 4.14.1 은 2026-07-07 배포(Flutter 팀). Dart 3.11 · Flutter 3.41 에 맞는 하위 판은 # webview_flutter_android 4.12.0(2026-04-29) · _wkwebview 3.25.1(2026-04-29) · _platform_interface 2.15.1(2026-03-25) 이다 # (그 위 판은 Dart 3.12 · Flutter 3.44 가 든다) webview_flutter: ^4.14.1 # 안드로이드 WebView 의 파일 · content 접근 끄기 · 글자 크기 — 위 webview_flutter 가 고른 판 그대로 webview_flutter_android: ^4.12.0 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^6.0.0 # 시험의 가짜 WebView(test/support/fake_webview.dart) — webview_flutter 가 고른 판 그대로(새로 받는 것 없음) webview_flutter_platform_interface: ^2.15.1 flutter: uses-material-design: true assets: # 런타임 환경변수 — flutter_dotenv 로 읽는다 (API_URL 만 — 앱 안에 그대로 들어가니 비밀은 넣지 않는다) - .env # 글꼴 라이선스 — 설정의 [오픈소스 라이선스]에 보인다 (core/theme/app_fonts.dart) - assets/licenses/pretendard-ofl.txt # 흰 로고 둘 — 웹 frontend/src/assets/brand/ 와 같은 파일 (core/constants/app_assets.dart) - assets/brand/ # Pretendard 1.3.9 (SIL OFL 1.1) — 웹(frontend)과 같은 글꼴. 정적 OTF 넷만 넣는다 fonts: - family: Pretendard fonts: - asset: assets/fonts/Pretendard-Regular.otf weight: 400 - asset: assets/fonts/Pretendard-Medium.otf weight: 500 - asset: assets/fonts/Pretendard-SemiBold.otf weight: 600 - asset: assets/fonts/Pretendard-Bold.otf weight: 700