Skip to content

About

Write to Jollyโœ๏ธ feel jolly๐ŸŽ€!

Resources

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Dear Jolly ํŽธ์ง€ ๋กœ๊ณ 

Dear Jolly ยท ๋””์–ด ์กธ๋ฆฌ

Write to Jolly, feel jolly

์˜ค๋Š˜์˜ ์ด์•ผ๊ธฐ๋ฅผ ์˜์–ด ํŽธ์ง€๋กœ ๋‚จ๊ธฐ๊ณ ,
์กธ๋ฆฌ์˜ ๊ต์ • ํ”ผ๋“œ๋ฐฑ๊ณผ ์šฐํ‘œ๋กœ ๋‚˜๋งŒ์˜ ๊ธฐ๋ก์„ ์Œ“์•„๊ฐ€๋Š” ๋ชจ๋ฐ”์ผ ์„œ๋น„์Šค

Flutter Dart iOS ยท Android ๋ชจ๋ฐ”์ผ ํ”„๋กœ์ ํŠธ

์„œ๋น„์Šค ์†Œ๊ฐœ ยท ์ฃผ์š” ํ™”๋ฉด ยท ์•„ํ‚คํ…์ฒ˜ ยท ๊ธฐ์ˆ  ์Šคํƒ ยท Contributors


์„œ๋น„์Šค ์†Œ๊ฐœ

Dear Jolly๋Š” ์ผ์ƒ์˜ ์˜์–ด ๊ธ€์“ฐ๊ธฐ๋ฅผ ํŽธ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒฝํ—˜์œผ๋กœ ํ’€์–ด๋‚ธ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ํ•˜๋ฃจ์˜ ์ž‘์€ ์‚ฌ๊ฑด์ด๋‚˜ ๋งˆ์Œ์— ๋‚จ์€ ์ด์•ผ๊ธฐ๋ฅผ ์กธ๋ฆฌ์—๊ฒŒ ๊ฑด๋„ค๊ณ , ์–ด์ƒ‰ํ•œ ๋ฌธ๋ฒ•๊ณผ ํ‘œํ˜„์„ ๋Œ์•„๋ณด๋ฉฐ ๋‹ค์Œ ํŽธ์ง€๋ฅผ ์ด์–ด๊ฐ‘๋‹ˆ๋‹ค.

Write Feedback Stamp
์˜์–ด๋กœ ์˜ค๋Š˜์˜ ์ด์•ผ๊ธฐ๋ฅผ ์ž‘์„ฑํ•ด์š”. ์›๋ฌธ๊ณผ ๊ต์ • ํ‘œํ˜„, ํ•™์Šต ํŒ์„ ํ•จ๊ป˜ ํ™•์ธํ•ด์š”. ํŽธ์ง€์— ์—ฐ๊ฒฐ๋œ ์šฐํ‘œ์™€ ๊ธฐ๋ก์„ ๋ชจ์•„๋ด์š”.

์•„์ด๋ณด๋ฆฌ ํŽธ์ง€์ง€, ๋ฒ„๊ฑด๋”” ํฌ์ธํŠธ, ์šฐํ‘œ์™€ ๋ด‰ํˆฌ ์ผ๋Ÿฌ์ŠคํŠธ๋กœ ํŽธ์ง€๋ฅผ ์“ฐ๋Š” ๋ถ„์œ„๊ธฐ๋ฅผ ๋‹ด์•˜์Šต๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” Flutter ๋ชจ๋ฐ”์ผ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋‹ค๋ฃจ๋ฉฐ, ํŽธ์ง€ยทํ”ผ๋“œ๋ฐฑยท์šฐํ‘œ ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„ API์™€ ์—ฐ๋™ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํ™”๋ฉด

์˜์–ด ํŽธ์ง€ ์ž‘์„ฑ ํ™”๋ฉด์„ ์†Œ๊ฐœํ•˜๋Š” Figma ์ด๋ฏธ์ง€ ์›๋ฌธ ๊ต์ •๊ณผ ํ•™์Šต ํŒ์„ ์†Œ๊ฐœํ•˜๋Š” Figma ์ด๋ฏธ์ง€ ์šฐํ‘œ์™€ ํŽธ์ง€ ๋ชฉ๋ก์„ ์†Œ๊ฐœํ•˜๋Š” Figma ์ด๋ฏธ์ง€
01 ยท ํŽธ์ง€ ์ž‘์„ฑ
์กธ๋ฆฌ์—๊ฒŒ ์ „ํ•˜๋Š” ์˜ค๋Š˜์˜ ์˜์–ด ์ผ๊ธฐ
02 ยท ํ”ผ๋“œ๋ฐฑ
๊ณ ์นœ ํ‘œํ˜„๊ณผ ์ด์œ ๋ฅผ ํ•œ๋ˆˆ์—
03 ยท ํŽธ์ง€ํ•จ๊ณผ ์šฐํ‘œ
์Œ“์ด๋Š” ๊ธฐ๋ก์„ ๋‹ค์‹œ ์ฝ๋Š” ์ฆ๊ฑฐ์›€

์œ„ ์ด๋ฏธ์ง€๋Š” Figma์˜ ์•ฑ์Šคํ† ์–ด ์†Œ๊ฐœ ์‹œ์•ˆ์ž…๋‹ˆ๋‹ค. ์˜ˆ์‹œ ๋ฌธ๊ตฌยท๋‚ ์งœยท์šฐํ‘œ ์ˆ˜ยท๋ฐฐ์น˜๋Š” ์‹คํ–‰ ํ™”๋ฉด๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•„๋ž˜ ๊ธฐ๋Šฅ ์„ค๋ช…์€ ํ˜„์žฌ ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ์ถœ์ฒ˜

์‚ฌ์šฉ์ž ํ๋ฆ„

flowchart LR
  A["๋กœ๊ทธ์ธ"] --> B["์•ฝ๊ด€ ๋™์˜ ยท ๋‹‰๋„ค์ž„ ๋“ฑ๋ก"]
  B --> C["ํ™ˆ ยท ํŽธ์ง€ํ•จ"]
  C --> D["์˜์–ด ํŽธ์ง€ ์ž‘์„ฑ"]
  D --> E["์ „๋‹ฌ ์™„๋ฃŒ ยท ํ”ผ๋“œ๋ฐฑ ๋Œ€๊ธฐ"]
  E --> C
  C --> F["๊ต์ • ํ”ผ๋“œ๋ฐฑ ยท ํ•™์Šต ํŒ"]
  C --> G["์„ค์ • ยท ๊ณ„์ • ๊ด€๋ฆฌ"]
  style C fill:#F5EDE0,stroke:#7F011F,color:#262626
  style D fill:#F5EDE0,stroke:#7F011F,color:#262626
  style F fill:#CCF1E4,stroke:#007D58,color:#262626
Loading
๋‹จ๊ณ„ ๊ตฌํ˜„๋œ ๊ฒฝํ—˜
์‹œ์ž‘ ยท ๋กœ๊ทธ์ธ ์•ฑ ๋ฒ„์ „๊ณผ ์ธ์ฆ ์ƒํƒœ ํ™•์ธ ํ›„ ์ง„์ž… ํ™”๋ฉด ๊ฒฐ์ •. ์นด์นด์˜ค ๋กœ๊ทธ์ธ๊ณผ iOS์˜ Apple ๋กœ๊ทธ์ธ ์ œ๊ณต
์˜จ๋ณด๋”ฉ ์•ฝ๊ด€ ๋™์˜ โ†’ ๋‹‰๋„ค์ž„ ๋“ฑ๋ก โ†’ ํ™˜์˜ ํ™”๋ฉด. ์™„๋ฃŒ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๋‹จ๊ณ„๋กœ ์ด๋™
ํŽธ์ง€ํ•จ ์šฐํ‘œ ์ˆ˜, ํŽธ์ง€ ๋ชฉ๋ก, ์ตœ์‹ ์ˆœยท์˜ค๋ž˜๋œ ์ˆœ ์ •๋ ฌ, ํŽ˜์ด์ง€ ์ด๋™, ์ƒˆ ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋Œ€๊ธฐ ์ƒํƒœ ํ‘œ์‹œ
ํŽธ์ง€ ์ž‘์„ฑ ์˜๋ฌธยท์ˆซ์žยท๊ธฐ๋ณธ ๊ธฐํ˜ธ ์ค‘์‹ฌ ์ž…๋ ฅ, ์ตœ๋Œ€ 500์ž, ์ „๋‹ฌ ์ „ ํ™•์ธ, ์ œ์ถœ ์‹คํŒจ ์•ˆ๋‚ด์™€ ์žฌ์‹œ๋„
๊ต์ • ํ™•์ธ ์ˆ˜์ • ์ „ ํ‘œํ˜„์€ ์ทจ์†Œ์„ , ๊ต์ • ํ‘œํ˜„์€ ์ดˆ๋ก์ƒ‰ ๊ฐ•์กฐ. ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ํ•™์Šต ํŒ ํ‘œ์‹œ
์„ค์ • ๋‹‰๋„ค์ž„ ๋ณ€๊ฒฝ, ์•ฝ๊ด€ยท๊ฐœ์ธ์ •๋ณด ์ฒ˜๋ฆฌ๋ฐฉ์นจ ํ™•์ธ, ๋ฌธ์˜, ๋กœ๊ทธ์•„์›ƒ, ํšŒ์› ํƒˆํ‡ด

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์™€ ์•„ํ‚คํ…์ฒ˜

๊ธฐ๋Šฅ๋ณ„ ํ™”๋ฉด์„ features์— ๋ชจ์œผ๊ณ , ๋„๋ฉ”์ธ ๊ทœ์น™๊ณผ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. Riverpod Provider๊ฐ€ ๋ฐ์ดํ„ฐ ์†Œ์Šคยท์ €์žฅ์†Œยท์œ ์Šค์ผ€์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ , ํ™”๋ฉด์€ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ํ†ตํ•ด ์ž‘์—…์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

lib/
โ”œโ”€โ”€ main.dart                 # ProviderScope์™€ ์•ฑ ์‹œ์ž‘์ 
โ”œโ”€โ”€ app/                      # ์•ฑ ๊ตฌ์„ฑ, GoRouter ๋ผ์šฐํŒ…๊ณผ ์ ‘๊ทผ ์ œ์–ด
โ”œโ”€โ”€ core/
โ”‚   โ”œโ”€โ”€ config/               # API ๋ฐ ์„œ๋น„์Šค ์„ค์ •
โ”‚   โ”œโ”€โ”€ di/                   # Riverpod ์˜์กด์„ฑ ์—ฐ๊ฒฐ
โ”‚   โ”œโ”€โ”€ network/              # Dio, ์ธ์ฆ ์ธํ„ฐ์…‰ํ„ฐ, API ์˜ˆ์™ธ
โ”‚   โ”œโ”€โ”€ platform/             # ์•ฑ ์ •๋ณด, ๊ธฐ๊ธฐ ์‹œ๊ฐ„๋Œ€ ๋“ฑ ํ”Œ๋žซํผ ๊ธฐ๋Šฅ
โ”‚   โ”œโ”€โ”€ storage/              # ์ธ์ฆ ์ •๋ณด ๋ณด๊ด€
โ”‚   โ”œโ”€โ”€ theme/                # ์ƒ‰์ƒยทํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผยทํ…Œ๋งˆ
โ”‚   โ”œโ”€โ”€ utils/                # ๋‹‰๋„ค์ž„ ๊ฒ€์ฆ ๋“ฑ ๊ณตํ†ต ๋„๊ตฌ
โ”‚   โ””โ”€โ”€ widgets/              # ๋ฒ„ํŠผยทํŽธ์ง€ ์นด๋“œยท๋‹ค์ด์–ผ๋กœ๊ทธ ๋“ฑ ๊ณตํ†ต UI
โ”œโ”€โ”€ features/
โ”‚   โ”œโ”€โ”€ splash/               # ์ดˆ๊ธฐ ๋ฒ„์ „ยท์„ธ์…˜ ํ™•์ธ
โ”‚   โ”œโ”€โ”€ login/                # ์†Œ์…œ ๋กœ๊ทธ์ธ๊ณผ ์ฝœ๋ฐฑ
โ”‚   โ”œโ”€โ”€ onboarding/           # ์•ฝ๊ด€ยท๋‹‰๋„ค์ž„ยทํ™˜์˜ ํ™”๋ฉด
โ”‚   โ”œโ”€โ”€ home/                 # ํŽธ์ง€ ๋ชฉ๋กยท์ •๋ ฌยทํ”ผ๋“œ๋ฐฑ ์ƒํƒœ ๊ฐฑ์‹ 
โ”‚   โ”œโ”€โ”€ write/                # ํŽธ์ง€ ์ž‘์„ฑยท์ œ์ถœยท์™„๋ฃŒ
โ”‚   โ”œโ”€โ”€ review/               # ๊ต์ • ๊ฒฐ๊ณผ์™€ ํ•™์Šต ํŒ
โ”‚   โ”œโ”€โ”€ settings/             # ์„ค์ •๊ณผ ๊ณ„์ • ๊ด€๋ฆฌ
โ”‚   โ””โ”€โ”€ update/               # ๊ฐ•์ œ ์—…๋ฐ์ดํŠธ ์•ˆ๋‚ด
โ”œโ”€โ”€ domain/
โ”‚   โ”œโ”€โ”€ entity/               # User, Letter, LetterReview ๋“ฑ
โ”‚   โ”œโ”€โ”€ model/                # Result: Success / Failure
โ”‚   โ”œโ”€โ”€ repository/           # ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์ธํ„ฐํŽ˜์ด์Šค
โ”‚   โ””โ”€โ”€ usecase/              # auth / letter / version ์ž‘์—…
โ””โ”€โ”€ data/
    โ”œโ”€โ”€ auth/                 # ์ธ์ฆ APIยทDTOยท์ €์žฅ์†Œ ๊ตฌํ˜„
    โ”œโ”€โ”€ letter/               # ํŽธ์ง€ APIยทDTOยท์ €์žฅ์†Œ ๊ตฌํ˜„
    โ””โ”€โ”€ version/              # ๋ฒ„์ „ APIยทDTOยท์ €์žฅ์†Œ ๊ตฌํ˜„

assets/                       # ์ด๋ฏธ์ง€ยทSVG ์•„์ด์ฝ˜ยทLottieยทPretendard
test/                         # ๋‹จ์œ„ยท์œ„์ ฏ ํ…Œ์ŠคํŠธ
android/ ยท ios/               # ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ ์„ค์ •
flowchart LR
  UI["features ยท ํ™”๋ฉด / ์ƒํƒœ"] --> UC["domain ยท UseCase"]
  UC --> RI["domain ยท Repository ์ธํ„ฐํŽ˜์ด์Šค"]
  IM["data ยท RepositoryImpl"] -.->|"๊ตฌํ˜„"| RI
  IM --> DS["data ยท RemoteDataSource / DTO"]
  DS --> NET["core ยท Dio / ์ธ์ฆ ์ธํ„ฐ์…‰ํ„ฐ"]
  NET --> API["์„œ๋ฒ„ API"]
  IM --> STORE["core ยท SecureStorage (์ธ์ฆ)"]
  style UC fill:#F5EDE0,stroke:#7F011F,color:#262626
  style RI fill:#F5EDE0,stroke:#7F011F,color:#262626
Loading

์˜์กด์„ฑ ๊ตฌ์„ฑ์€ providers.dart, ๋ผ์šฐํŒ…์€ routes.dart์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. API ์‘๋‹ต์€ DTO์—์„œ Entity๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์ €์žฅ์†Œ ๊ตฌํ˜„์€ ์„ฑ๊ณตยท์‹คํŒจ๋ฅผ Result๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์ƒํƒœ ๊ด€๋ฆฌ๋Š” ํ™”๋ฉด๋ณ„๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Riverpod์„ ํ†ตํ•œ ์˜์กด์„ฑ ์ฃผ์ž…๊ณผ ํŽธ์ง€ ์ œ์ถœ์˜ AsyncNotifier, ์Šคํ”Œ๋ž˜์‹œ์˜ ChangeNotifier ๊ธฐ๋ฐ˜ ViewModel, ํ™ˆยท๋ฆฌ๋ทฐ ๋“ฑ์˜ ConsumerStatefulWidget ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์ˆ  ์Šคํƒ

๋ฒ„์ „์€ pubspec.yaml์˜ ์„ ์–ธ ๋ฒ”์œ„์ด๋ฉฐ, ํ•ด์„๋œ ์˜์กด์„ฑ ๋ฒ„์ „์€ pubspec.lock์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

์˜์—ญ ์‚ฌ์šฉ ๊ธฐ์ˆ  ์ ์šฉ ๋‚ด์šฉ
์•ฑ ยท ์–ธ์–ด Flutter ยท Dart ^3.10.1 iOSยทAndroid ๋ชจ๋ฐ”์ผ UI์™€ ์•ฑ ๋กœ์ง
์ƒํƒœ ยท ์˜์กด์„ฑ ์ฃผ์ž… flutter_riverpod ^3.3.2 Provider ๊ตฌ์„ฑ, ์œ ์Šค์ผ€์ด์Šค ์ฃผ์ž…, ํŽธ์ง€ ์ œ์ถœ ์ƒํƒœ
๋ผ์šฐํŒ… go_router ^15.1.2 ํ™”๋ฉด ์ด๋™, ๋กœ๊ทธ์ธยท์˜จ๋ณด๋”ฉ ์ƒํƒœ์— ๋”ฐ๋ฅธ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
๋„คํŠธ์›Œํฌ dio ^5.7.0 REST API ํ†ต์‹ , ์ธ์ฆ ํ—ค๋”, ํ† ํฐ ๊ฐฑ์‹ 
์ธ์ฆ ์ •๋ณด ์ €์žฅ flutter_secure_storage ^9.2.4 ์•ก์„ธ์Šคยท๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๊ณผ ์˜จ๋ณด๋”ฉ ์ƒํƒœ ๋ณด๊ด€
๋กœ๊ทธ์ธ ยท ์™ธ๋ถ€ ์—ฐ๊ฒฐ app_links ^7.0.0 ยท url_launcher ^6.3.2 ์†Œ์…œ ๋กœ๊ทธ์ธ ์ฝœ๋ฐฑ ์ˆ˜์‹ , ์™ธ๋ถ€ URL ์—ด๊ธฐ
ํ”Œ๋žซํผ ์ •๋ณด package_info_plus ^9.0.1 ยท flutter_timezone ^5.1.0 ์•ฑ ๋ฒ„์ „ ํ™•์ธ, ํŽธ์ง€ ์ž‘์„ฑ ์‹œ ๊ธฐ๊ธฐ ์‹œ๊ฐ„๋Œ€ ์ „๋‹ฌ
๊ทธ๋ž˜ํ”ฝ ยท ๋ชจ์…˜ flutter_svg ^2.3.0 ยท lottie ^3.3.3 SVG ์•„์ด์ฝ˜ยท์ผ๋Ÿฌ์ŠคํŠธ, ๋กœ๋”ฉ ์• ๋‹ˆ๋ฉ”์ด์…˜
ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ Pretendard Regular ยท Medium ยท SemiBold ยท Bold ํฐํŠธ
ํ’ˆ์งˆ ํ™•์ธ flutter_test ยท flutter_lints ^6.0.0 ๋‹จ์œ„ยท์œ„์ ฏ ํ…Œ์ŠคํŠธ์™€ ์ •์  ๋ถ„์„ ๊ทœ์น™

๊ฐœ๋ฐœ ํฌ์ธํŠธ

1. ์ธ์ฆ๋ถ€ํ„ฐ ์˜จ๋ณด๋”ฉ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ์ง„์ž… ์ œ์–ด

๋กœ๊ทธ์ธ ์ฝœ๋ฐฑ์œผ๋กœ ๋ฐ›์€ ์„ธ์…˜์„ ์ €์žฅํ•˜๊ณ , ํ† ํฐยท์•ฝ๊ด€ ๋™์˜ยท๋‹‰๋„ค์ž„ ๋“ฑ๋ก ์ƒํƒœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ™”๋ฉด ์ ‘๊ทผ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ์‹œ์ž‘ ์‹œ ์„œ๋ฒ„ ๋ฒ„์ „ ์ •์ฑ…์„ ํ™•์ธํ•ด ๊ฐ•์ œ ์—…๋ฐ์ดํŠธ ํ™”๋ฉด์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ํ๋ฆ„๋„ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

2. ๋™์‹œ์— ๋งŒ๋ฃŒ๋œ ์š”์ฒญ์˜ ํ† ํฐ ๊ฐฑ์‹  ์ฒ˜๋ฆฌ

AuthInterceptor๋Š” 401 ์‘๋‹ต์— ๋Œ€ํ•ด ํ† ํฐ์„ ๊ฐฑ์‹ ํ•˜๊ณ  ์›๋ž˜ ์š”์ฒญ์„ ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ค‘์ธ ๊ฐฑ์‹  Future๋ฅผ ๊ณต์œ ํ•ด ์ค‘๋ณต ๊ฐฑ์‹ ์„ ์ค„์ด๊ณ , ์žฌ์‹œ๋„ ํ‘œ์‹œ๋กœ ๊ฐ™์€ ์š”์ฒญ์ด ๋ฐ˜๋ณต ๊ฐฑ์‹ ๋˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

3. ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜

ํ™ˆ ํ™”๋ฉด์€ ์ œ์ถœยท๊ฒ€ํ†  ์ค‘ยท์™„๋ฃŒยท์‹คํŒจ ์ƒํƒœ๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๊ธฐ ํŽธ์ง€๊ฐ€ ์žˆ์„ ๋•Œ 10์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ , ์•ฑ์ด ๋น„ํ™œ์„ฑ ์ƒํƒœ์ด๊ฑฐ๋‚˜ ๋Œ€๊ธฐ ๋Œ€์ƒ์ด ์—†์œผ๋ฉด ํด๋ง์„ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. ์š”์ฒญ ์ œํ•œ ์˜ค๋ฅ˜์—๋Š” 1๋ถ„ ๋Œ€๊ธฐ๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์นด์šดํŠธ๋‹ค์šด ํ‘œ์‹œ์™€ ์„œ๋ฒ„์˜ ์‹ค์ œ ์™„๋ฃŒ ์ƒํƒœ๋ฅผ ๋ณ„๋„๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

4. ๊ต์ • ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ธฐ ์‰ฌ์šด ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜

๋ฆฌ๋ทฐ DTO์—์„œ ๊ต์ • ๊ตฌ๊ฐ„์„ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ฆฌํ•˜๊ณ , ๋ฆฌ๋ทฐ ํ™”๋ฉด์—์„œ ์›๋ฌธ ์ทจ์†Œ์„ ๊ณผ ๊ต์ • ๊ฐ•์กฐ๋ฅผ ์กฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ์ด ์—†๊ฑฐ๋‚˜ ์ƒ์„ฑ์— ์‹คํŒจํ•œ ๊ฒฝ์šฐ์˜ ํ™”๋ฉด๋„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

5. ๋ฐ˜๋ณต๋˜๋Š” ๋ธŒ๋žœ๋“œ UI์˜ ๊ณตํ†ตํ™”

ํ…Œ๋งˆ์™€ ๊ณตํ†ต ์œ„์ ฏ์œผ๋กœ ์ƒ‰์ƒ, ๊ธ€๊ผด, ๋ฒ„ํŠผ, ํŽธ์ง€ ํ—ค๋”, ์šฐํ‘œ ์นด๋“œ์™€ ๋‹ค์ด์–ผ๋กœ๊ทธ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ํ™”๋ฉด์—์„œ๋„ ๊ฐ™์€ ํŽธ์ง€ ์„œ๋น„์Šค์˜ ์ธ์ƒ์ด ์ด์–ด์ง€๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

Contributors

YeonJeen GitHub ํ”„๋กœํ•„
YeonJeen
@yeonjeen

๋กœ์ปฌ ์‹คํ–‰

Dart ^3.10.1 ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” Flutter SDK์™€ Android ๋˜๋Š” iOS ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. iOS ์‹คํ–‰์—๋Š” macOS์™€ Xcode๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

flutter pub get
flutter run --dart-define=JOLLY_API_BASE_URL=https://YOUR_API_HOST/api/v1

YOUR_API_HOST๋Š” ์‚ฌ์šฉํ•  ๋ฐฑ์—”๋“œ ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”. ๋กœ๊ทธ์ธ๊ณผ ํŽธ์ง€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ์„œ๋ฒ„ ๋ฐ ์†Œ์…œ ๋กœ๊ทธ์ธ ์ฝœ๋ฐฑ ์„ค์ •์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์„ค์ •๊ณผ ๊ฒ€์ฆ ๋ช…๋ น

ApiConfig์˜ ์„ค์ •์€ --dart-define์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ์šฉ๋„
JOLLY_API_BASE_URL ๋ฐฑ์—”๋“œ API ๊ธฐ๋ณธ ์ฃผ์†Œ
JOLLY_AUTH_SCHEME ๋กœ๊ทธ์ธ ์ฝœ๋ฐฑ ์Šคํ‚ด, ๊ธฐ๋ณธ๊ฐ’ dearjolly. ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ์„ค์ •๊ณผ๋„ ์ผ์น˜ํ•ด์•ผ ํ•จ
JOLLY_APP_VERSION ํ”Œ๋žซํผ์—์„œ ์•ฑ ๋ฒ„์ „์„ ์ฝ์ง€ ๋ชปํ–ˆ์„ ๋•Œ์˜ ๋Œ€์ฒด๊ฐ’
JOLLY_IOS_STORE_URL ยท JOLLY_AOS_STORE_URL ์—…๋ฐ์ดํŠธ ์•ˆ๋‚ด์—์„œ ์—ด ์Šคํ† ์–ด ์ฃผ์†Œ
JOLLY_TIME_ZONE ๊ธฐ๊ธฐ ์‹œ๊ฐ„๋Œ€ ์กฐํšŒ ์‹คํŒจ ์‹œ ๋Œ€์ฒด๊ฐ’, ๊ธฐ๋ณธ๊ฐ’ Asia/Seoul
flutter analyze
flutter test

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” test/์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์˜ค๋Š˜์˜ ํ•œ ๋ฌธ์žฅ์ด, ๋‚ด์ผ์˜ ์กฐ๊ธˆ ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด ์˜์–ด๊ฐ€ ๋˜๋„๋ก.
Write to Jolly, feel jolly โœ‰๏ธ

About

Write to Jollyโœ๏ธ feel jolly๐ŸŽ€!

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages