Everydiary๋ ๊ฐ์ธ ์ผ๊ธฐ ์์ฑ๊ณผ ๊ด๋ฆฌ๋ฅผ ์ํ Flutter ๊ธฐ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ์์ฑ ์ธ์, ํ ์คํธ ์ธ์, ์ด๋ฏธ์ง ์ฒจ๋ถ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ํตํด ์ฌ์ฉ์๊ฐ ์ฝ๊ณ ํธ๋ฆฌํ๊ฒ ์ผ๊ธฐ๋ฅผ ์์ฑํ ์ ์๋๋ก ๋์์ค๋๋ค.
- ์ฌ์ฉ์ ๋ฑ๋ก/๋ก๊ทธ์ธ: ์ด๋ฉ์ผ ๊ธฐ๋ฐ ๊ณ์ ์์ฑ ๋ฐ ์ธ์ฆ
- ์๋ ๋ก๊ทธ์ธ: ์ฌ์ฉ์ ์ ํ์ ๋ฐ๋ฅธ ์๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ
- ํ ํฐ ๊ด๋ฆฌ: JWT ๊ธฐ๋ฐ ๋ณด์ ํ ํฐ ์์คํ
- ์ธ์ ๊ด๋ฆฌ: ์์ ํ ์ฌ์ฉ์ ์ธ์ ์ ์ง
- ํ ์คํธ ์์ฑ: ํ๋ถํ ํ ์คํธ ํธ์ง ๊ธฐ๋ฅ
- ์์ฑ ์ธ์: ์์ฑ์ ํ ์คํธ๋ก ๋ณํํ์ฌ ๋น ๋ฅธ ์ผ๊ธฐ ์์ฑ
- ํ ์คํธ ์ธ์: ์ฌ์ง์ ํ ์คํธ๋ฅผ ์๋์ผ๋ก ์ธ์ํ์ฌ ์ผ๊ธฐ์ ์ถ๊ฐ
- ์ด๋ฏธ์ง ์ฒจ๋ถ: ์นด๋ฉ๋ผ ๋๋ ๊ฐค๋ฌ๋ฆฌ์์ ์ด๋ฏธ์ง ์ถ๊ฐ
- ์นดํ ๊ณ ๋ฆฌ ๊ด๋ฆฌ: ์ผ๊ธฐ๋ฅผ ์ฃผ์ ๋ณ๋ก ๋ถ๋ฅํ๊ณ ๊ด๋ฆฌ
- ๊ฒ์ ๊ธฐ๋ฅ: ๊ณผ๊ฑฐ ์ผ๊ธฐ๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ ๊ฒ์ ๊ธฐ๋ฅ
- ํต๊ณ ๋ฐ ๋ถ์: ์ผ๊ธฐ ์์ฑ ํจํด ๋ถ์ ๋ฐ ํต๊ณ ์ ๊ณต
- ์์ฒด ์ธ์ฆ: ์ง๋ฌธ/์ผ๊ตด ์ธ์์ ํตํ ๊ฐ์ธ์ ๋ณด ๋ณดํธ
- ํ๋ฆฌ๋ฏธ์ ๊ธฐ๋ฅ: ์ธ์ฑ ๊ตฌ๋งค๋ฅผ ํตํ ๊ณ ๊ธ ๊ธฐ๋ฅ ์ด์ฉ
์ด ํ๋ก์ ํธ๋ Clean Architecture ํจํด์ ๋ฐ๋ผ ๊ตฌ์ฑ๋์ด ์์ต๋๋ค:
lib/
โโโ core/ # ํต์ฌ ๊ธฐ๋ฅ ๋ฐ ๊ณตํต ์ปดํฌ๋ํธ
โ โโโ constants/ # ์ฑ ์์
โ โโโ errors/ # ์๋ฌ ์ฒ๋ฆฌ
โ โโโ network/ # ๋คํธ์ํฌ ํต์
โ โโโ utils/ # ์ ํธ๋ฆฌํฐ ํจ์
โ โโโ widgets/ # ๊ธฐ๋ณธ ์์ ฏ
โโโ features/ # ๊ธฐ๋ฅ๋ณ ๋ชจ๋
โ โโโ auth/ # ์ธ์ฆ ๊ธฐ๋ฅ
โ โโโ diary/ # ์ผ๊ธฐ ๊ด๋ฆฌ
โ โโโ profile/ # ํ๋กํ ๊ด๋ฆฌ
โโโ shared/ # ๊ณตํต ์ปดํฌ๋ํธ
โโโ models/ # ๋ฐ์ดํฐ ๋ชจ๋ธ
โโโ services/ # ๊ณตํต ์๋น์ค
โโโ widgets/ # ๊ณตํต ์์ ฏ
- ์ธ์ฆ ์์คํ : ์ฌ์ฉ์ ๋ฑ๋ก, ๋ก๊ทธ์ธ, ์๋ ๋ก๊ทธ์ธ, ํ ํฐ ๊ด๋ฆฌ
- ํ๋ก์ ํธ ๊ตฌ์กฐ: Clean Architecture ๊ธฐ๋ฐ ํด๋ ๊ตฌ์กฐ
- ์ฝ๋ ํ์ง: Linter ์ค๋ฅ ํด๊ฒฐ, ์ฑ๋ฅ ์ต์ ํ
- ํ ์คํธ: ๊ธฐ๋ณธ ํ ์คํธ ํต๊ณผ, ๋น๋ ์ฑ๊ณต
- ์ผ๊ธฐ ์์ฑ: ๊ธฐ๋ณธ UI ๋ฐ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ฐ์ดํฐ ์ ์ฅ: ๋ก์ปฌ ๋ฐ ์๋ฒ ์ ์ฅ์ ์ฐ๋
- ์์ฑ ์ธ์: ์ค์๊ฐ ์์ฑ-ํ ์คํธ ๋ณํ
- ํ ์คํธ ์ธ์: OCR ๊ธฐ๋ฅ
- ์ด๋ฏธ์ง ์ฒ๋ฆฌ: ์นด๋ฉ๋ผ ๋ฐ ๊ฐค๋ฌ๋ฆฌ ์ฐ๋
- ํต๊ณ ๋ฐ ๋ถ์: ์ฌ์ฉ ํจํด ๋ถ์
- ํ๋ฆฌ๋ฏธ์ ๊ธฐ๋ฅ: ์ธ์ฑ ๊ตฌ๋งค ์์คํ
- Flutter SDK (3.9.0 ์ด์)
- Dart SDK
- Android Studio / VS Code
- Android SDK (Android ๊ฐ๋ฐ์ฉ)
- Xcode (iOS ๊ฐ๋ฐ์ฉ, macOS๋ง)
-
์ ์ฅ์ ํด๋ก
git clone https://github.com/your-username/everydiary.git cd everydiary -
์์กด์ฑ ์ค์น
flutter pub get
-
์ฝ๋ ์์ฑ ์คํ (ํ์์)
flutter packages pub run build_runner build
-
์ฑ ์คํ
flutter run
-
VS Code ํ์ฅ ํ๋ก๊ทธ๋จ ์ค์น
- Dart
- Flutter
- Flutter Intl
- Bracket Pair Colorizer
-
ํ๊ฒฝ ๋ณ์ ์ค์
cp .env.example .env # .env ํ์ผ์ ํธ์งํ์ฌ ํ์ํ API ํค ์ค์
- Dart Analysis:
flutter analyze - ์ฝ๋ ํฌ๋งทํ
:
flutter format - ํ
์คํธ ์คํ:
flutter test
- Debug ๋น๋:
flutter build apk --debug - Release ๋น๋:
flutter build apk --release - iOS ๋น๋:
flutter build ios --release
- โ Android (API 21+)
- โ iOS (iOS 11.0+)
- โ Web
- โ Windows
- โ macOS
- โ Linux
# ๋จ์ ํ
์คํธ
flutter test
# ํตํฉ ํ
์คํธ
flutter test integration_test/
# ์ปค๋ฒ๋ฆฌ์ง ๋ฆฌํฌํธ
flutter test --coverageriverpod- ์ํ ๊ด๋ฆฌ ๋ฐ ์์กด์ฑ ์ฃผ์flutter_riverpod- Riverpod Flutter ํตํฉ
go_router- ์ ์ธ์ ๋ผ์ฐํ
sqflite- SQLite ๋ฐ์ดํฐ๋ฒ ์ด์คhive- NoSQL ๋ก์ปฌ ์ ์ฅ์shared_preferences- ๊ฐ๋จํ ์ค์ ์ ์ฅ
dio- HTTP ํด๋ผ์ด์ธํธhttp- ๊ธฐ๋ณธ HTTP ์์ฒญ
flutter_svg- SVG ์ด๋ฏธ์ง ์ง์lottie- ์ ๋๋ฉ์ด์ cached_network_image- ์ด๋ฏธ์ง ์บ์ฑ
speech_to_text- ์์ฑ ์ธ์google_mlkit_text_recognition- ํ ์คํธ ์ธ์image_picker- ์ด๋ฏธ์ง ์ ํlocal_auth- ์์ฒด ์ธ์ฆ
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
๋ฌธ์ ๊ฐ ์๊ฑฐ๋ ์ ์์ฌํญ์ด ์์ผ์๋ฉด Issues๋ฅผ ํตํด ์๋ ค์ฃผ์ธ์.
Everydiary๋ก ๋ ๋์ ์ผ๊ธฐ ์์ฑ ๊ฒฝํ์ ์์ํด๋ณด์ธ์! โจ