-
Notifications
You must be signed in to change notification settings - Fork 2
π#85 Readme μμ± #91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Changes from all commits
a93d65a
14c77ff
9f06e9a
a66944e
afc293d
10aa30b
e59c357
ba52aa2
8a8f5cd
0ffece1
83c8acb
73def00
876c1fc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,279 @@ | ||
| # 2025-C6-A6-HonestHouse | ||
| <div align="center"> | ||
|
|
||
|  | ||
|
|
||
|
|
||
| </div> | ||
|
|
||
| --- | ||
|
|
||
| ## π Overview | ||
|
|
||
| Bracketμ DSLR/λ―Έλ¬λ¦¬μ€ μΉ΄λ©λΌ μ¬μ©μλ₯Ό μν 촬μ 보쑰 μ±μ λλ€. | ||
|
|
||
| --- | ||
|
|
||
| ## β¨ μ£Όμ κΈ°λ₯ | ||
|
|
||
| <div align="center"> | ||
|
|
||
| <!-- TODO: GIFλ‘ μ΄λ―Έμ§ λ³κ²½ --> | ||
|
|
||
| ### πΈ Tri-Shot | ||
|
|
||
| |  |  |  | | ||
| |:---:|:---:|:---:| | ||
| | **Tri-Shot λ©μΈ** | **ν리μ μ μ** | **μΉ΄λ©λΌ UI** | | ||
|
|
||
| </div> | ||
|
|
||
| 미리 μ μ₯ν 3κ°μ§ ν리μ (촬μ λͺ¨λ, 쑰리κ°, μ ν°, ISO, μμ¨λ, ν΄νΈ, ν½μ²μ€νμΌ)μ μ ν°λ₯Ό λλ₯Όλλ§λ€ μ μ©ν©λλ€. | ||
|
|
||
| **κΈ°μ ꡬν** | ||
| - [ ] **κ°λ°μ μμ±**: ν리μ μν λ‘μ§ λ° μν κ΄λ¦¬ λ°©μ | ||
| - [ ] **κ°λ°μ μμ±**: Canon Camera Control API νΈμΆ ꡬ쑰 | ||
| - [ ] **κ°λ°μ μμ±**: λΉλκΈ° μ²λ¦¬ λ° λκΈ°ν λ©μ»€λμ¦ | ||
|
|
||
| ```swift | ||
| // ν΅μ¬ μ½λ μ€λν« (κ°λ°μ μμ±) | ||
| // μ: PresetCycleManager, CameraService λ± | ||
| ``` | ||
| --- | ||
|
|
||
| <div align="center"> | ||
|
|
||
| ### π€ μμΉ΄μ΄λΉ | ||
|
|
||
| <!-- TODO: GIFλ‘ μ΄λ―Έμ§ λ³κ²½ --> | ||
|
|
||
|  | ||
|
|
||
| </div> | ||
|
|
||
| Vision Frameworkλ₯Ό νμ©ν μ΄λ―Έμ§ μ μ¬λ λΆμκ³Ό μκ°λμ λ°λ₯Έ κ°μ€μΉ κ³μ°μΌλ‘ λΉμ·ν μ¬μ§λΌλ¦¬ κ·Έλ£Ήνν©λλ€. | ||
|
|
||
| **κΈ°μ ꡬν** | ||
| - [ ] **κ°λ°μ μμ±**: Vision Framework νΉμ§μ μΆμΆ λ°©μ | ||
| - [ ] **κ°λ°μ μμ±**: μ μ¬λ κ³μ° μκ³ λ¦¬μ¦ (거리 μΈ‘μ λ°©λ² λ±) | ||
| - [ ] **κ°λ°μ μμ±**: κ·Έλ£Ήν κΈ°μ€ λ° μ±λ₯ μ΅μ ν μ λ΅ | ||
|
|
||
| ```swift | ||
| // ν΅μ¬ μ½λ μ€λν« (κ°λ°μ μμ±) | ||
| // μ: ArchivingService, VisionAnalyzer λ± | ||
| ``` | ||
|
|
||
| **μ±λ₯ μ§ν** | ||
| - [ ] **κ°λ°μ μμ±**: μ΄λ―Έμ§ λΆμ μλ (nμ₯ κΈ°μ€ μ²λ¦¬ μκ°) | ||
| - [ ] **κ°λ°μ μμ±**: λ©λͺ¨λ¦¬ μ¬μ©λ λ° μ΅μ ν κ²°κ³Ό | ||
| - [ ] **κ°λ°μ μμ±**: κ·Έλ£Ήν μ νλ | ||
|
|
||
| --- | ||
|
|
||
| ## π κΈ°μ μ€ν | ||
|
|
||
| <div align="center"> | ||
|
|
||
| ### Core Technologies | ||
|
|
||
| <img src="https://img.shields.io/badge/SwiftUI-0D96F6?style=for-the-badge&logo=swift&logoColor=white" alt="SwiftUI" /> | ||
| <img src="https://img.shields.io/badge/Combine-FA7343?style=for-the-badge&logo=swift&logoColor=white" alt="Combine" /> | ||
| <img src="https://img.shields.io/badge/MVVM-orange?style=for-the-badge" alt="MVVM" /> | ||
|
|
||
| ### Frameworks & APIs | ||
|
|
||
| <img src="https://img.shields.io/badge/Vision-blue?style=for-the-badge&logo=apple&logoColor=white" alt="Vision" /> | ||
| <img src="https://img.shields.io/badge/Core_Bluetooth-007AFF?style=for-the-badge&logo=bluetooth&logoColor=white" alt="Core Bluetooth" /> | ||
| <img src="https://img.shields.io/badge/Core_Data-FA7343?style=for-the-badge&logo=apple&logoColor=white" alt="Core Data" /> | ||
|
|
||
| <img src="https://img.shields.io/badge/Canon_Camera_Control_API-CE0000?style=for-the-badge&logo=canon&logoColor=white" alt="Canon API" /> | ||
| <img src="https://img.shields.io/badge/RESTful_API-009688?style=for-the-badge" alt="RESTful API" /> | ||
| <img src="https://img.shields.io/badge/Digest_Auth-4CAF50?style=for-the-badge&logo=lock&logoColor=white" alt="Digest Auth" /> | ||
|
|
||
| </div> | ||
|
|
||
| <br/> | ||
|
|
||
| | κΈ°μ | μ¬μ© λͺ©μ | ν΅μ¬ ꡬν | | ||
| |------|----------|----------| | ||
| | **SwiftUI** | μ μΈν UI | [κ°λ°μ μμ±: MVVM ν¨ν΄, μν κ΄λ¦¬ λ°©μ λ±] | | ||
| | **Combine** | λ°μν νλ‘κ·Έλλ° | [κ°λ°μ μμ±: Publisher/Subscriber νμ© μ¬λ‘] | | ||
| | **Vision Framework** | μ΄λ―Έμ§ λΆμ | [κ°λ°μ μμ±: νΉμ§μ μΆμΆ, μ μ¬λ κ³μ° λ°©λ²] | | ||
| | **Core Bluetooth** | 무μ ν΅μ | [κ°λ°μ μμ±: WiFi μ°κ²° λ° λ°μ΄ν° μ μ‘ κ΅¬ν] | | ||
| | **Canon Camera Control API** | μΉ΄λ©λΌ μ μ΄ | [κ°λ°μ μμ±: HTTP ν΅μ , Digest Auth ꡬν] | | ||
| | **Core Data** | λ°μ΄ν° μμμ± | [κ°λ°μ μμ±: ν리μ μ μ₯, μ¬μ§ λ©νλ°μ΄ν° κ΄λ¦¬] | | ||
|
|
||
| --- | ||
|
|
||
| ## π μν€ν μ² | ||
|
|
||
| ### System Architecture | ||
|
|
||
| ``` | ||
| [κ°λ°μ μμ±: μν€ν μ² λ€μ΄μ΄κ·Έλ¨] | ||
| μμ ꡬ쑰: | ||
|
|
||
| βββββββββββββββββββββββββββββββββββββββββββ | ||
| β View (SwiftUI) β | ||
| β - Tri-shot UI β | ||
| β - Preset Management β | ||
| β - Archiving UI β | ||
| ββββββββββββββββ¬βββββββββββββββββββββββββββ | ||
| β @Published | ||
| β @StateObject | ||
| ββββββββββββββββΌβββββββββββββββββββββββββββ | ||
| β ViewModel (Combine) β | ||
| β - TrishotViewModel β | ||
| β - PresetViewModel β | ||
| β - ArchivingViewModel β | ||
| ββββββββββββββββ¬βββββββββββββββββββββββββββ | ||
| β Protocol | ||
| β Dependency Injection | ||
| ββββββββββββββββΌβββββββββββββββββββββββββββ | ||
| β Repository (Protocol-oriented) β | ||
| β - CameraRepository β | ||
| β - PresetRepository β | ||
| β - PhotoRepository β | ||
| βββββββ¬βββββββββββββββββββββββββ¬βββββββββββ | ||
| β β | ||
| βββββββΌβββββββββ ββββββββββΌβββββββββββ | ||
| β Service β β Core Data β | ||
| β - Camera β β - Preset Entity β | ||
| β - Vision β β - Photo Entity β | ||
| β - Bluetooth β β β | ||
| ββββββββββββββββ βββββββββββββββββββββ | ||
| ``` | ||
|
|
||
| ### λ°μ΄ν° νλ¦ | ||
|
|
||
| - [ ] **κ°λ°μ μμ±**: μ£Όμ κΈ°λ₯λ³ λ°μ΄ν° νλ¦ μ€λͺ | ||
| - [ ] **κ°λ°μ μμ±**: λΉλκΈ° μ²λ¦¬ λ° μλ¬ νΈλ€λ§ μ λ΅ | ||
|
|
||
| ``` | ||
| μμ: | ||
| User Tap Shutter | ||
| β | ||
| View.onTapGesture | ||
| β | ||
| ViewModel.captureWithTrishotMode() | ||
| β | ||
| CameraRepository.applyPreset() | ||
| β | ||
| CameraService.sendCommand() | ||
| β | ||
| Canon Camera (WiFi) | ||
| β | ||
| ViewModel.@Published μ λ°μ΄νΈ | ||
| β | ||
| View μλ 리λ λλ§ | ||
| ``` | ||
|
Comment on lines
+151
to
+168
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. λ°μ΄ν° νλ¦ μ½λ λΈλ‘μ μΈμ΄ μ§μ νμ νλ‘μ° μ°¨νΈλ₯Ό ν¬ν¨ν μ½λ λΈλ‘μ μΈμ΄λ₯Ό μ§μ νμΈμ. ### λ°μ΄ν° νλ¦
- [ ] **κ°λ°μ μμ±**: μ£Όμ κΈ°λ₯λ³ λ°μ΄ν° νλ¦ μ€λͺ
- [ ] **κ°λ°μ μμ±**: λΉλκΈ° μ²λ¦¬ λ° μλ¬ νΈλ€λ§ μ λ΅
-```
+```plaintext
μμ:
User Tap Shutter
-```
+```π§° Toolsπͺ markdownlint-cli2 (0.18.1)164-164: Fenced code blocks should have a language specified (MD040, fenced-code-language) π€ Prompt for AI Agents |
||
|
|
||
| --- | ||
|
|
||
| ## π κΈ°μ μ λμ κ³Ό ν΄κ²° | ||
|
|
||
| ### 1. [Challenge μ λͺ© - κ°λ°μ μμ±] | ||
|
|
||
| **λ¬Έμ μν©** | ||
| - [ ] **κ°λ°μ μμ±**: ꡬ체μ μΈ κΈ°μ μ λ¬Έμ μ€λͺ | ||
| - [ ] **κ°λ°μ μμ±**: μ μ΄ λ¬Έμ κ° λ°μνλμ§ | ||
| - [ ] **κ°λ°μ μμ±**: κΈ°μ‘΄ μ κ·Ό λ°©μμ νκ³ | ||
|
|
||
| **ν΄κ²° λ°©λ²** | ||
| - [ ] **κ°λ°μ μμ±**: μ±νν μ루μ λ° μ΄μ | ||
| - [ ] **κ°λ°μ μμ±**: ꡬν μΈλΆμ¬ν | ||
|
|
||
| ```swift | ||
| // ν΅μ¬ ν΄κ²° μ½λ (κ°λ°μ μμ±) | ||
| ``` | ||
|
|
||
| **κ²°κ³Ό** | ||
| - [ ] **κ°λ°μ μμ±**: μΈ‘μ κ°λ₯ν κ°μ κ²°κ³Ό (μ±λ₯, μμ μ± λ±) | ||
|
|
||
| --- | ||
|
|
||
| ### 2. [Challenge μ λͺ© - κ°λ°μ μμ±] | ||
|
|
||
| **λ¬Έμ μν©** | ||
| - [ ] **κ°λ°μ μμ±** | ||
|
|
||
| **ν΄κ²° λ°©λ²** | ||
| - [ ] **κ°λ°μ μμ±** | ||
|
|
||
| ```swift | ||
| // ν΅μ¬ ν΄κ²° μ½λ | ||
| ``` | ||
|
|
||
| **κ²°κ³Ό** | ||
| - [ ] **κ°λ°μ μμ±** | ||
|
|
||
| --- | ||
|
|
||
| ### 3. [Challenge μ λͺ© - κ°λ°μ μμ±] | ||
|
|
||
| **λ¬Έμ μν©** | ||
| - [ ] **κ°λ°μ μμ±** | ||
|
|
||
| **ν΄κ²° λ°©λ²** | ||
| - [ ] **κ°λ°μ μμ±** | ||
|
|
||
| ```swift | ||
| // ν΅μ¬ ν΄κ²° μ½λ | ||
| ``` | ||
|
|
||
| **κ²°κ³Ό** | ||
| - [ ] **κ°λ°μ μμ±** | ||
|
|
||
| --- | ||
|
|
||
| ## π μ±λ₯ λ° νμ§ μ§ν | ||
|
|
||
| ### μ±λ₯ μΈ‘μ | ||
|
|
||
| | νλͺ© | μΈ‘μ κ° | μΈ‘μ νκ²½ | | ||
| |------|--------|----------| | ||
| | [κ°λ°μ μμ±] | [κ°λ°μ μμ±] | [κ°λ°μ μμ±] | | ||
| | μ΄λ―Έμ§ κ·Έλ£Ήν μλ | [μΈ‘μ νμ] | 100μ₯ κΈ°μ€ | | ||
| | ν리μ μ ν μλ | [μΈ‘μ νμ] | μ°μ 촬μ μ | | ||
| | λ©λͺ¨λ¦¬ μ¬μ©λ | [μΈ‘μ νμ] | νΌν¬ μ | | ||
| | λ°°ν°λ¦¬ μλͺ¨ | [μΈ‘μ νμ] | 1μκ° μ¬μ© κΈ°μ€ | | ||
|
|
||
| ### μ½λ νμ§ | ||
|
|
||
| - [ ] **κ°λ°μ μμ±**: ν μ€νΈ 컀λ²λ¦¬μ§ | ||
| - [ ] **κ°λ°μ μμ±**: μ£Όμ ν μ€νΈ μ λ΅ (Unit Test, Integration Test λ±) | ||
| - [ ] **κ°λ°μ μμ±**: μ½λ 리뷰 νλ‘μΈμ€ | ||
|
|
||
| --- | ||
|
|
||
| ## π₯ ν | ||
|
|
||
| <div align="center"> | ||
|
|
||
| <!-- TODO: κ°μΈ μ΄λ―Έμ§, λ§ν¬ λ³κ²½ --> | ||
|
|
||
| |  |  |  |  |  |  | | ||
| |:---:|:---:|:---:|:---:|:---:|:---:| | ||
| | **μν¬μ€** | **μ€νμ ** | **μ΄νμ£Ό** | **μ΄λ³΄λ―Ό** | **λ¬Ένκ·Ό** | **νμλΉ** | | ||
| | **Sandeul** | **Hari** | **Ivy** | **Minbol** | **Rama** | **Soop** | | ||
| | π― PM | π¨ Design | π± iOS | π± iOS | π± iOS | π± iOS | | ||
|
Comment on lines
+254
to
+258
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ν μΉμ : μ΄λ―Έμ§μ alt ν μ€νΈ μΆκ° νμ ν λ©€λ² νλ‘ν μ΄λ―Έμ§ 6κ° λͺ¨λ alt ν μ€νΈκ° λλ½λμ΄ μμ΅λλ€. μ κ·Όμ± κ°μ μ μν΄ κ° μ΄λ―Έμ§μ μ€λͺ μ μΈ alt ν μ€νΈλ₯Ό μΆκ°νμΈμ. -|  |  |  |  |  |  |
+| |  |  |  |  |  |κ° μ΄λ―Έμ§ λ§ν¬λ€μ΄μ λκ΄νΈ μμ λ©€λ² μ΄λ¦κ³Ό μν μ ν¬ν¨ν μ€λͺ μ μΆκ°νμΈμ. π€ Prompt for AI Agents |
||
|
|
||
| **Apple Developer Academy @ POSTECH | Team A6 (HonestHouse)** | ||
|
|
||
| </div> | ||
| [](https://slime-shirt-140.notion.site/Bracket-2a202aff8b528063be0ff432c107e135) | ||
|
|
||
| --- | ||
|
|
||
| ## π Contact | ||
|
|
||
| π§ **honesthouse2025@gmail.com** | ||
|
|
||
| [](https://slime-shirt-140.notion.site/Bracket-2a202aff8b528063be0ff432c107e135) | ||
|
|
||
| --- | ||
|
|
||
| <div align="center"> | ||
|
|
||
| *Β© 2025 Team A6 (HonestHouse). Apple Developer Academy @ POSTECH* | ||
|
|
||
| </div> | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μν€ν μ² λ€μ΄μ΄κ·Έλ¨ μ½λ λΈλ‘μ μΈμ΄ μ§μ νμ
ASCII λ€μ΄μ΄κ·Έλ¨μ ν¬ν¨ν μ½λ λΈλ‘μ μΈμ΄λ₯Ό μ§μ νμΈμ.
π§° Tools
πͺ markdownlint-cli2 (0.18.1)
124-124: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
π€ Prompt for AI Agents