Skip to content

gaeng2y/GoForAWalk

Repository files navigation

πŸ‘Ÿ κ±·λŠ”

μ‚°μ±…κ³Ό μš΄λ™μ„ μ¦κΈ°λŠ” μ‚¬λžŒλ“€μ„ μœ„ν•œ iOS μ•±μž…λ‹ˆλ‹€.

πŸ—οΈ μ•„ν‚€ν…μ²˜

이 ν”„λ‘œμ νŠΈλŠ” Tuistλ₯Ό ν™œμš©ν•œ λͺ¨λ“ˆν™” μ•„ν‚€ν…μ²˜μ™€ **SwiftUI + TCA(The Composable Architecture)**λ₯Ό 기반으둜 κ°œλ°œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“ˆ ꡬ쑰

πŸ“¦ GoForAWalk
β”œβ”€β”€ πŸ”„ Shared
β”‚   └── Extension
β”œβ”€β”€ βš™οΈ Core  
β”‚   β”œβ”€β”€ Network
β”‚   └── KeychainStore
β”œβ”€β”€ 🎯 Domain
β”‚   β”œβ”€β”€ AuthService
β”‚   β”œβ”€β”€ FeedService
β”‚   └── UserService
└── 🎨 Feature
    β”œβ”€β”€ SignInFeature
    β”œβ”€β”€ FeedFeature
    └── ProfileFeature

λ ˆμ΄μ–΄ μ„€λͺ…

πŸ”„ Shared

λͺ¨λ“  λ ˆμ΄μ–΄μ—μ„œ 곡용으둜 μž¬μ‚¬μš©λ˜λŠ” λͺ¨λ“ˆλ“€μ΄ μœ„μΉ˜ν•©λ‹ˆλ‹€.

  • Extension: 곡톡 ν™•μž₯ κΈ°λŠ₯

βš™οΈ Core

μ•±μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ ν¬ν•¨ν•˜μ§€ μ•ŠλŠ” 순수 κΈ°λŠ₯μ„± λͺ¨λ“ˆλ“€μ΄ μœ„μΉ˜ν•©λ‹ˆλ‹€.

  • Network: λ„€νŠΈμ›Œν‚Ή κ΄€λ ¨ κΈ°λŠ₯
  • KeychainStore: 킀체인 μ €μž₯μ†Œ 관리

🎯 Domain

도메인 둜직이 μ§„ν–‰λ˜λŠ” λ ˆμ΄μ–΄λ‘œ, λΉ„μ¦ˆλ‹ˆμŠ€ μ„œλΉ„μŠ€λ“€μ΄ μœ„μΉ˜ν•©λ‹ˆλ‹€.

  • AuthService: 인증 κ΄€λ ¨ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직
  • FeedService: ν”Όλ“œ κ΄€λ ¨ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직
  • UserService: μ‚¬μš©μž κ΄€λ ¨ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직

🎨 Feature

μ‚¬μš©μžμ˜ μ•‘μ…˜μ„ μ²˜λ¦¬ν•˜κ³  데이터λ₯Ό λ³΄μ—¬μ£ΌλŠ”, μ‚¬μš©μžμ™€ 직접 λ§žλ‹ΏλŠ” λ ˆμ΄μ–΄μž…λ‹ˆλ‹€.

  • SignInFeature: 둜그인 ν™”λ©΄ 및 κΈ°λŠ₯
  • FeedFeature: ν”Όλ“œ ν™”λ©΄ 및 κΈ°λŠ₯
  • ProfileFeature: ν”„λ‘œν•„ ν™”λ©΄ 및 κΈ°λŠ₯

πŸ› οΈ 기술 μŠ€νƒ

  • Language: Swift
  • UI Framework: SwiftUI
  • Architecture: TCA (The Composable Architecture)
  • Modularization: Tuist
  • Dependency Management: Tuist

πŸš€ μ‹œμž‘ν•˜κΈ°

μš”κ΅¬μ‚¬ν•­

  • Xcode: 16.0+
  • iOS: 18.0+
  • Tuist: μ„€μΉ˜ ν•„μš”

πŸ“‹ μ‚¬μš© κ°€λŠ₯ν•œ λͺ…λ Ήμ–΄

κΈ°λ³Έ λͺ…λ Ήμ–΄

λͺ…λ Ήμ–΄ μ„€λͺ…
make init ν”„λ‘œμ νŠΈ 이름과 organization을 μž…λ ₯ν•˜μ—¬ ν”„λ‘œμ νŠΈ κΈ°λ³Έ μ„ΈνŒ…
make signing ν”„λ‘œμ νŠΈ Team Signing
make generate μ™ΈλΆ€ λ””νŽœλ˜μ‹œ fetch 및 ν”„λ‘œμ νŠΈ generate
make clean 전체 xcodeproj, xcworkspace 파일 μ‚­μ œ
make reset tuist clean ν›„, 전체 xcodeproj, xcworkspace 파일 μ‚­μ œ

개발 도ꡬ

λͺ…λ Ήμ–΄ μ„€λͺ…
make module μƒˆλ‘œμš΄ λͺ¨λ“ˆ 생성
make dependency λ””νŽœλ˜μ‹œ μΆ”κ°€

CI/CD λͺ…λ Ήμ–΄

λͺ…λ Ήμ–΄ μ„€λͺ…
make ci_generate CI용 ν”„λ‘œμ νŠΈ generate (SwiftLint μ œμ™Έ)
make cd_generate CD용 ν”„λ‘œμ νŠΈ generate (SwiftLint μ œμ™Έ)

πŸ“ 개발 κ°€μ΄λ“œλΌμΈ

TCA νŒ¨ν„΄ μ‚¬μš©

λͺ¨λ“  Feature λͺ¨λ“ˆμ€ TCA(The Composable Architecture) νŒ¨ν„΄μ„ λ”°λ¦…λ‹ˆλ‹€:

  • State: ν™”λ©΄μ˜ μƒνƒœ
  • Action: μ‚¬μš©μž μ•‘μ…˜ 및 μ‹œμŠ€ν…œ 이벀트
  • Reducer: μƒνƒœ λ³€κ²½ 둜직
  • Environment: μ™ΈλΆ€ μ˜μ‘΄μ„±

λͺ¨λ“ˆ κ°„ μ˜μ‘΄μ„±

  • μƒμœ„ λ ˆμ΄μ–΄λŠ” ν•˜μœ„ λ ˆμ΄μ–΄μ—λ§Œ μ˜μ‘΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€
  • 같은 λ ˆμ΄μ–΄ λ‚΄ λͺ¨λ“ˆ κ°„ μ˜μ‘΄μ„±μ€ μ΅œμ†Œν™”ν•©λ‹ˆλ‹€
  • Core λ ˆμ΄μ–΄λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ ν¬ν•¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

πŸ“ž 문의

ν”„λ‘œμ νŠΈμ— λŒ€ν•œ μ§ˆλ¬Έμ΄λ‚˜ μ œμ•ˆμ‚¬ν•­μ΄ μžˆμœΌμ‹œλ©΄ Issuesλ₯Ό 톡해 μ—°λ½ν•΄μ£Όμ„Έμš”.

About

[πŸ‘Ÿ κ±·λŠ”]의 iOS μ €μž₯μ†Œμž…λ‹ˆλ‹€

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages