Skip to content

AWS-AI-team3/sigma-FE

Repository files navigation

Gesture Browser

얼굴 인증, 제스처 인식 등의 기능이 포함된 Flutter 프로젝트입니다.

📋 사전 요구사항

  • Flutter SDK 3.0 이상
  • Dart SDK 2.17 이상
  • Xcode 14.0 이상 (iOS 빌드)
  • CocoaPods (iOS 의존성 관리)

Flutter 설치 확인:

flutter doctor

🚀 설치 및 실행

1. 저장소 클론

git clone https://github.com/AWS-AI-team3/sigma-FE.git
cd gesture_browser

2. Flutter 의존성 설치

flutter pub get

3. iOS 의존성 설치 (macOS만 해당)

cd ios
pod install
cd ..

⚠️ 중요: CocoaPods가 설치되어 있지 않다면:

sudo gem install cocoapods

4. iOS 개발 팀 설정 (필수) 🔑

다른 Apple Developer 계정으로 개발할 때는 반드시 Xcode에서 팀을 설정해야 합니다:

# Xcode에서 프로젝트 열기
open ios/Runner.xcworkspace

Xcode에서:

  1. 왼쪽 네비게이터에서 Runner 프로젝트 선택
  2. TARGETSRunner 선택
  3. Signing & Capabilities 탭 클릭
  4. Team 드롭다운에서 자신의 Apple Developer 팀 선택
    • 팀이 없다면: Xcode → Settings → Accounts에서 Apple ID 추가
  5. (선택사항) Bundle Identifier를 고유한 값으로 변경
    • 기본값: com.gesture.gestureBrowser
    • 예시: com.yourcompany.gestureBrowser

⚠️ 중요:

  • 이 설정은 각 개발자가 로컬에서만 수정해야 합니다
  • project.pbxproj 파일의 Team 설정은 커밋하지 마세요
  • Bundle Identifier가 이미 사용 중이면 변경 필요

5. 실행

# 사용 가능한 디바이스 확인
flutter devices

# iOS 시뮬레이터에서 실행
flutter run

# 특정 디바이스에서 실행
flutter run -d <device-id>

📱 주요 기능

  • 📸 얼굴 인증: 카메라를 이용한 실시간 얼굴 인증
  • 🖐️ 제스처 인식: Hand Landmarker를 이용한 제스처 컨트롤
  • 🌐 웹 브라우저: 내장 웹뷰 브라우저
  • 🎤 음성 녹음: 오디오 녹음 및 전송 기능

🔧 문제 해결

빌드 오류 발생 시

flutter clean
flutter pub get
cd ios && pod install && cd ..
flutter run

카메라 권한 오류

  • iOS: ios/Runner/Info.plist에 카메라 권한이 설정되어 있는지 확인
    <key>NSCameraUsageDescription</key>
    <string>얼굴 인증을 위해 카메라 접근이 필요합니다</string>

CocoaPods 오류

cd ios
pod repo update
pod install --repo-update
cd ..

Xcode 코드 서명 오류 (Signing)

❌ Signing for "Runner" requires a development team.
❌ No profiles for 'com.gesture.gestureBrowser' were found

해결 방법:

  1. Xcode에서 ios/Runner.xcworkspace 열기 (⚠️ .xcodeproj가 아닌 .xcworkspace)
  2. Runner 프로젝트 → TARGETS → Runner 선택
  3. Signing & Capabilities 탭에서:
    • Team: 자신의 Apple Developer 계정 선택
    • Bundle Identifier: 충돌 시 변경 (예: com.yourname.gestureBrowser)
  4. 시뮬레이터는 무료 계정으로도 가능, 실기기는 유료 계정 필요

Apple Developer 계정이 없는 경우

  1. Xcode → Settings (⌘ + ,) → Accounts
  2. 왼쪽 하단 + 버튼 → Apple ID 추가
  3. 로그인하면 자동으로 Personal Team 생성됨 (무료)
  4. 시뮬레이터 개발은 무료 계정으로 가능

📦 주요 의존성 패키지

  • camera: 카메라 기능
  • http: REST API 통신
  • google_sign_in: Google 소셜 로그인
  • flutter_inappwebview: 내장 웹뷰 브라우저
  • permission_handler: 권한 관리
  • record: 오디오 녹음

전체 의존성 목록은 pubspec.yaml을 참조하세요.

🏗️ 프로젝트 구조

lib/
├── main.dart                 # 앱 진입점
├── constants/                # 상수 정의
├── screens/                  # 화면 UI
│   ├── face_auth_screen.dart
│   ├── home_screen.dart
│   └── login_screen.dart
├── services/                 # 비즈니스 로직
│   ├── face_auth_service.dart
│   ├── api_client.dart
│   └── audio_recording_service.dart
└── widgets/                  # 재사용 가능한 위젯

🔐 환경 변수 설정 (선택사항)

민감한 정보(API 키 등)는 별도 파일로 관리하는 것을 권장합니다.

lib/config/api_keys.dart 파일 생성:

class ApiKeys {
  static const String baseUrl = 'YOUR_API_BASE_URL';
  static const String apiKey = 'YOUR_API_KEY';
}

📝 참고사항

  • main 브랜치: 프로덕션 코드
  • ios 브랜치: iOS 관련 개발
  • develop 브랜치: 개발 중인 기능

🤝 기여하기 (협업 가이드)

🔐 iOS 개발 시 주의사항

각 개발자는 자신의 Apple Developer 계정을 사용해야 합니다:

  1. Git에 커밋하지 말아야 할 파일:

    ❌ ios/Runner.xcodeproj/project.pbxproj (Team ID 변경 시)
    ❌ ios/Runner.xcodeproj/xcuserdata/
    ✅ 위 파일들은 .gitignore에 이미 설정됨
    
  2. 로컬에서만 수정:

    • Xcode Signing & Capabilities → Team 설정
    • Bundle Identifier (충돌 시)
  3. 협업 워크플로우:

    # 클론 후
    git clone <repo>
    cd gesture_browser
    
    # Xcode에서 Team만 설정 (커밋 X)
    open ios/Runner.xcworkspace
    # → Signing & Capabilities → Team 선택
    
    # 개발 시작
    flutter run
  4. Pull Request 전에:

    # Team 설정이 변경되었다면 되돌리기
    git checkout ios/Runner.xcodeproj/project.pbxproj

일반 기여 프로세스

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 라이선스

이 프로젝트는 AWS AI Team3에서 관리합니다.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages