μ£μΉλ μ¨μ΄λ¬λΈ κΈ°κΈ°(μ νμμΉ)μμ μμ§ν μ¬μ©μμ νλ ν¨ν΄μ AIλ‘ λΆμν΄ μΉλ§€ νλ₯ μ κ³μ°νκ³ μΉλ§€ μ΄κΈ°μ λ³μμ λ°©λ¬Έν μ μλλ‘ λμμ£Όλ μΉλ§€ μλ°© μ ν리μΌμ΄μ μ λλ€.
μ¬μ©μμ μ§μ μ μΌλ‘ μνΈμμ©νλ μ± νκ²μ λλ€.
- Presentation
View
: SwiftUIλ‘ κ΅¬μ±λ νλ©΄μ λλ€.ViewModel
: Viewμ μνλ₯Ό κ΄λ¦¬νκ³ μ¬μ©μ μ λ ₯μ λ°λ₯Έ Serviceλ₯Ό νΈμΆν©λλ€.Service
: λ€νΈμνΉ λ° κ³μ° λ± λΉμ¦λμ€ λ‘μ§ κ°μ§ μ»΄ν¬λνΈμ λλ€.Helper
: κΆν μΈμ¦ νλ‘μΈμ€, λ μ§ κ³μ°, κ·Έ μΈ iOS λ€μ΄ν°λΈ API(Push Notification, Haptic)μ¬μ©μ λμμ£Όλ μ»΄ν¬λνΈμ λλ€.
ν¬μ€ν· κ΄λ ¨ λ‘μ§μ λ°λ‘ λΆλ¦¬νμ΅λλ€. (μΆν ν¨ν€μ§ν)
Provider
: HKStoreμ HKQueryλ₯Ό μ΄μ©ν΄ κ±΄κ° μ 보λ₯Ό κ°μ Έμ€λ λ‘μ§μ μΆμνν©λλ€.Service
: Providerλ₯Ό μ΄μ©ν΄ κ°μ Έμ¨ 건κ°μ 보λ₯Ό κ°κ³΅ν΄ μ± λ΄μμ μ¬μ©ν μ μλ ννλ‘ λ°νν©λλ€.
.
βββ AtchI
βΒ Β βββ Info.plist
βΒ Β βββ AppDelegate.swift
βΒ Β βββ AtchIApp.swift
βΒ Β βββ Resource
βΒ Β βββ HealthKit
βΒ Β βΒ Β βββ Error
βΒ Β βΒ Β βββ Provider
βΒ Β βΒ Β βββ Service
βΒ Β βββ Helper
βΒ Β βββ Presentation
βΒ Β βΒ Β βββ Feature..
β β βββ View
βΒ Β βΒ Β βββ ViewModel
βΒ Β βββ Service
βΒ Β βΒ Β βββ Domain..
β β βββ Model
β β βββ Error
β β βββ Mock
β βΒ Β Β Β βββ API
βΒ Β βββ Util
βΒ Β βββ Constant
βΒ Β βββ Extension
βΒ Β βββ PropertyWrapper
βΒ Β βββ Structure
βΒ Β βββ UI
βββ AtchIServiceTests
βΒ Β βββ Target
βΒ Β βββ Mock
βββ AtchIViewModelTests
βΒ Β βββ Target
βΒ Β βββ Mock
βββ README.md
βββ Secrets.xcconfig
Presentation
: κΈ°λ₯λ³λ‘ Viewμ ViewModelμ ν¬ν¨ν©λλ€.Service
: λλ©μΈλ³λ‘ Model(DTO), Error, Mock, API(MoyaClient)λ₯Ό ν¬ν¨ν©λλ€.Util
: μ± μ μμ μ μ¬μ©λλ ꡬ쑰체, μ΄κ±°ν, Extension λ±μ ν¬ν¨ν©λλ€.Resource
: .plistνμΌκ³Ό .rtf νμΌμ ν¬ν¨ν©λλ€.Tests
: κ° νκ² ν΄λμ€μ λν TestsνμΌμ νλμ© μμ±ν©λλ€. Mockμ ν
μ€νΈ νκ² λ£¨νΈ νλ¨ ν΄λμμ κ΄λ¦¬ν©λλ€.λΌμ΄λΈλ¬λ¦¬λͺ | μ©λ | κΉνλΈ |
---|---|---|
SwiftUI | UI | - |
Combine | 리μ‘ν°λΈ νλ‘κ·Έλλ° | - |
CombineMoya | λ€νΈμνΉ | https://github.com/Moya/Moya |
MarkdownUI | λ§ν¬λ€μ΄ λ·° | https://github.com/gonzalezreal/swift-markdown-ui |
Factory | 컨ν μ΄λν DI | https://github.com/hmlongco/Factory |
κ°λ―Όκ· | κΉκ°μ | κΉλ―Όμ | μ΄λμ° | μ΄λ΄μ΄ |
---|---|---|---|---|
iOS | BACKEND | AI | iOS | iOS |
@KoreaMango | @13wjdgk | @minjjait | @dodo849 | @spring |