Skip to content

dingcodingco/dingco-vibe-starter-app

Repository files navigation

🚀 바이브코딩 Flutter 스타터킷

Flutter Version Dart Version License

Flutter 앱 개발에 필요한 모든 핵심 기능이 미리 구현된 올인원 스타터킷

📚 관련 강의

이 스타터킷은 비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE 강의와 함께 사용하도록 제작되었습니다.

🎯 강의 특징

  • 비개발자도 OK: 코딩 경험이 없어도 4주 만에 앱 출시 가능
  • 수익화 전략 포함: AdMob 광고로 실제 수익 창출 방법 학습
  • AI 활용: Cursor AI를 활용한 효율적인 개발 방법
  • 실무 프로젝트: 실제로 작동하고 수익을 만드는 앱 개발

📖 강의에서 배우는 내용

  1. Flutter 기초부터 심화까지
  2. 소셜 로그인 구현 (카카오, 구글, 애플)
  3. Supabase를 활용한 백엔드 구축
  4. AdMob 광고 통합 및 수익화
  5. 앱 스토어 출시 완벽 가이드
  6. AI를 활용한 빠른 기능 개발

👉 강의 바로가기

✨ 주요 기능

🔐 인증 시스템

  • 이메일/비밀번호 인증
  • 소셜 로그인 (구글, 카카오, 애플)
  • 자동 로그인 유지
  • Supabase 세션 관리

💰 수익화

  • Google AdMob 통합
  • 배너, 전면, 보상형, 네이티브 광고
  • 광고 빈도 조절
  • Firebase Analytics 수익 추적

🎨 모던 UI/UX

  • Material Design 3 컴포넌트
  • 다크모드 지원
  • 반응형 레이아웃
  • flutter_animate를 활용한 부드러운 애니메이션
  • 커스텀 위젯 라이브러리

📱 네이티브 기능

  • 카메라 & 갤러리 접근
  • GPS 위치 서비스
  • 권한 처리
  • 클립보드 기능
  • 햅틱 피드백

🛠️ 개발자 도구

  • Riverpod 상태 관리
  • go_router 라우팅
  • Supabase 실시간 백엔드
  • Firebase 분석
  • 클린 아키텍처 패턴

🚀 시작하기

필수 요구사항

  • Flutter SDK (3.24 이상)
  • Dart SDK (3.5 이상)
  • Android Studio / Xcode
  • Firebase 계정
  • Supabase 계정

설치

  1. 저장소 클론

    git clone https://github.com/dingcodingco/dingco-vibe-starter-app.git
    cd dingco-vibe-starter-app
  2. 의존성 설치

    flutter pub get
  3. iOS 설정 (macOS에서만)

    cd ios && pod install && cd ..

설정

⚠️ 중요: 환경 설정 파일들은 보안상 이유로 포함되어 있지 않습니다. 각 개발자가 직접 생성해야 합니다.

환경 변수 설정

  1. .env.example을 복사하여 .env 파일 생성:
    cp .env.example .env
  2. .env 파일을 열어 실제 값으로 변경

Firebase 설정

  1. Firebase Console에서 새 프로젝트 생성
  2. Android 앱 추가:
    • 패키지명: com.dingco.vibecoding
    • google-services.json 다운로드 → android/app/에 저장
    • 예제 파일: android/app/google-services.json.example 참고
  3. iOS 앱 추가:
    • 번들 ID: com.dingco.vibecoding
    • GoogleService-Info.plist 다운로드 → ios/Runner/에 저장
    • 예제 파일: ios/Runner/GoogleService-Info.plist.example 참고

Supabase 설정

  1. Supabase에서 프로젝트 생성
  2. lib/core/config/supabase_config.dart 업데이트:
    class SupabaseConfig {
      static const String url = '여기에_SUPABASE_URL';
      static const String anonKey = '여기에_SUPABASE_ANON_KEY';
    }

카카오 로그인 설정

  1. Kakao Developers에서 앱 등록
  2. lib/core/config/kakao_config.dart 업데이트:
    class KakaoConfig {
      static const String nativeAppKey = '여기에_NATIVE_APP_KEY';
    }

앱 실행

# 연결된 기기에서 실행
flutter run

# 특정 플랫폼에서 실행
flutter run -d android
flutter run -d ios

# 자세한 로그 출력과 함께 실행
flutter run -v

📱 데모 화면

스타터킷에는 완전히 작동하는 데모 화면들이 포함되어 있습니다:

  • 🔐 인증 데모: 소셜 로그인 구현 테스트
  • ☁️ Supabase 데모: 실시간 동기화 CRUD 작업
  • 💰 AdMob 데모: 다양한 광고 형식 및 구현
  • 🎨 디자인 시스템: 모든 Material Design 3 컴포넌트
  • 📱 네이티브 기능: 카메라, GPS, 권한

🏗️ 프로젝트 구조

lib/
├── core/               # 핵심 기능
│   ├── theme/         # 앱 테마 및 스타일링
│   ├── constants/     # 앱 상수
│   └── config/        # 설정 파일
├── features/          # 기능 모듈
│   ├── auth/         # 인증
│   ├── home/         # 홈 화면
│   ├── profile/      # 사용자 프로필
│   └── demo/         # 데모 화면
├── shared/           # 공유 컴포넌트
│   ├── widgets/      # 재사용 가능한 위젯
│   ├── services/     # 서비스 클래스
│   └── providers/    # Riverpod 프로바이더
└── main.dart         # 앱 진입점

🛠️ 사용 기술

  • Flutter - UI 프레임워크
  • Riverpod - 상태 관리
  • Supabase - Backend as a Service
  • Firebase - 분석 및 Crashlytics
  • Google Mobile Ads - 수익화
  • Material Design 3 - 디자인 시스템

📚 주요 의존성

dependencies:
  flutter_riverpod: ^2.5.1
  go_router: ^14.2.0
  supabase_flutter: ^2.6.0
  firebase_core: ^3.1.1
  firebase_analytics: ^11.3.0
  google_mobile_ads: ^5.1.0
  kakao_flutter_sdk_user: ^1.9.0
  google_sign_in: ^6.2.1
  sign_in_with_apple: ^6.1.0
  image_picker: ^1.1.2
  geolocator: ^12.0.0
  flutter_animate: ^4.5.0

🚀 배포

Android

  1. 서명 키 생성:

    keytool -genkey -v -keystore release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
  2. 릴리즈 APK/AAB 빌드:

    flutter build apk --release
    flutter build appbundle --release

iOS

  1. Xcode에서 열기:

    open ios/Runner.xcworkspace
  2. 서명 설정 및 빌드:

    flutter build ios --release

🐛 문제 해결

자주 발생하는 문제

Android 빌드 에러

cd android && ./gradlew clean && cd ..
flutter clean && flutter pub get

iOS 빌드 에러

cd ios && pod deintegrate && pod install && cd ..

권한 문제

  • iOS: Info.plist에 사용 설명 추가
  • Android: AndroidManifest.xml에 권한 추가

📄 라이선스

이 프로젝트는 MIT 라이선스를 따릅니다 - 자세한 내용은 LICENSE 파일을 참조하세요.

🤝 기여하기

기여를 환영합니다! Pull Request를 자유롭게 제출해주세요.

  1. 프로젝트 Fork
  2. Feature 브랜치 생성 (git checkout -b feature/AmazingFeature)
  3. 변경사항 커밋 (git commit -m 'Add some AmazingFeature')
  4. 브랜치에 Push (git push origin feature/AmazingFeature)
  5. Pull Request 오픈

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors