Skip to content

00306/Prelude-iOS

 
 

Repository files navigation

Safe for Two - iOS

 Author

iOS Developer
송지혁
00306
Product Designer
박민교
SONIA

🛠️ Development Environment


✨ Tech Stack

  • SwiftUI
  • Combine
  • Assistant API

🏛️ Architecture

MVVM + Clean Architecture

CleanArchitecture


🗂️ Folder Structure

📦Junction
 ┣ 📂Data
 ┃ ┣ 📂API
 ┃ ┃ ┣ 📜APIService.swift
 ┃ ┃ ┗ 📜EndPoint.swift
 ┃ ┣ 📂Facades
 ┃ ┃ ┗ 📜AssistantInteractionFacadeImpl.swift
 ┃ ┗ 📂Repositories
 ┃ ┃ ┣ 📜ImageRepositoryImpl.swift
 ┃ ┃ ┣ 📜MessageRepositoryImpl.swift
 ┃ ┃ ┣ 📜RunRepositoryImpl.swift
 ┃ ┃ ┣ 📜RunStepRepositoryImpl.swift
 ┃ ┃ ┗ 📜ThreadRepositoryImpl.swift
 ┣ 📂Domain
 ┃ ┣ 📂Entities
 ┃ ┃ ┣ 📂File
 ┃ ┃ ┃ ┗ 📜FileUploadResponse.swift
 ┃ ┃ ┣ 📂Health
 ┃ ┃ ┃ ┗ 📜HealthInfo.swift
 ┃ ┃ ┣ 📂Judgement
 ┃ ┃ ┃ ┗ 📜Judgement.swift
 ┃ ┃ ┣ 📂Message
 ┃ ┃ ┃ ┣ 📜CreateMessageResponse.swift
 ┃ ┃ ┃ ┣ 📜Message.swift
 ┃ ┃ ┃ ┣ 📜MessageBody.swift
 ┃ ┃ ┃ ┗ 📜RetrieveMessageResponse.swift
 ┃ ┃ ┣ 📂Run
 ┃ ┃ ┃ ┣ 📜RunRequest.swift
 ┃ ┃ ┃ ┗ 📜RunResponse.swift
 ┃ ┃ ┣ 📂RunStep
 ┃ ┃ ┃ ┗ 📜RunStepResponse.swift
 ┃ ┃ ┗ 📂Thread
 ┃ ┃ ┃ ┗ 📜ThreadResponse.swift
 ┃ ┣ 📂Interfaces
 ┃ ┃ ┣ 📂Facades
 ┃ ┃ ┃ ┗ 📜AssistantInteractionFacade.swift
 ┃ ┃ ┗ 📂Repositories
 ┃ ┃ ┃ ┣ 📜ImageRepository.swift
 ┃ ┃ ┃ ┣ 📜MessageRepository.swift
 ┃ ┃ ┃ ┣ 📜RunRepository.swift
 ┃ ┃ ┃ ┣ 📜RunStepRepository.swift
 ┃ ┃ ┃ ┗ 📜ThreadRepository.swift
 ┃ ┣ 📂UseCases
 ┃ ┃ ┣ 📜CreateMessageUseCase.swift
 ┃ ┃ ┣ 📜CreateRunUseCase.swift
 ┃ ┃ ┣ 📜CreateThreadUseCase.swift
 ┃ ┃ ┣ 📜ListRunStepUseCase.swift
 ┃ ┃ ┣ 📜RetrieveMessageUseCase.swift
 ┃ ┃ ┗ 📜UploadImageUseCase.swift
 ┃ ┗ 📜.DS_Store
 ┣ 📂Infrastructure
 ┃ ┣ 📜DIContainer.swift
 ┃ ┗ 📜NavigationManager.swift
 ┣ 📂Presentation
 ┃ ┣ 📂Extensions
 ┃ ┃ ┣ 📜Font+.swift
 ┃ ┃ ┗ 📜UIApplication+.swift
 ┃ ┣ 📂ViewModels
 ┃ ┃ ┣ 📜HealthSetUpViewModel.swift
 ┃ ┃ ┣ 📜MainViewModel.swift
 ┃ ┃ ┗ 📜ResultViewModel.swift
 ┃ ┗ 📂Views
 ┃ ┃ ┣ 📜ContentView.swift
 ┃ ┃ ┣ 📜HealthCheckView.swift
 ┃ ┃ ┣ 📜HealthInfoSetUpView.swift
 ┃ ┃ ┣ 📜ImagePicker.swift
 ┃ ┃ ┣ 📜LoadingView.swift
 ┃ ┃ ┣ 📜MainView.swift
 ┃ ┃ ┣ 📜OnboardingView.swift
 ┃ ┃ ┗ 📜ResultView.swift
 ┣ 📂Preview Content
 ┃ ┗ 📂Preview Assets.xcassets
 ┃ ┃ ┗ 📜Contents.json
 ┣ 📂Resources
 ┃ ┣ 📂Assets.xcassets
 ┃ ┃ ┣ 📂AccentColor.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂AppIcon.appiconset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂OnboardingGraphic.imageset
 ┃ ┃ ┃ ┣ 📜Contents.json
 ┃ ┃ ┃ ┗ 📜OnboardingGraphic.png
 ┃ ┃ ┣ 📂arrowDown.imageset
 ┃ ┃ ┃ ┣ 📜Contents.json
 ┃ ┃ ┃ ┗ 📜arrowDown.png
 ┃ ┃ ┣ 📂circleBubble.imageset
 ┃ ┃ ┃ ┣ 📜Contents.json
 ┃ ┃ ┃ ┗ 📜circleBubble.png
 ┃ ┃ ┣ 📂gray1.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂gray10.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂gray2.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂gray3.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂gray4.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂gray8.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂gray9.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂green1.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂offblack.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂offwhite.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂pink1.colorset
 ┃ ┃ ┃ ┗ 📜Contents.json
 ┃ ┃ ┣ 📂pinky.imageset
 ┃ ┃ ┃ ┣ 📜Contents.json
 ┃ ┃ ┃ ┗ 📜pinky.png
 ┃ ┃ ┣ 📂speechBubble.imageset
 ┃ ┃ ┃ ┣ 📜Contents.json
 ┃ ┃ ┃ ┗ 📜speechBubble.png
 ┃ ┃ ┣ 📂stitchBox.imageset
 ┃ ┃ ┃ ┣ 📜Contents.json
 ┃ ┃ ┃ ┗ 📜stitchBox.png
 ┃ ┃ ┣ 📂tree.imageset
 ┃ ┃ ┃ ┣ 📜Contents.json
 ┃ ┃ ┃ ┗ 📜tree.png
 ┃ ┃ ┣ 📂xBubble.imageset
 ┃ ┃ ┃ ┣ 📜Contents.json
 ┃ ┃ ┃ ┗ 📜xBubble.png
 ┃ ┃ ┣ 📜.DS_Store
 ┃ ┃ ┗ 📜Contents.json
 ┃ ┣ 📂Font
 ┃ ┃ ┣ 📜Pretendard-Bold.otf
 ┃ ┃ ┣ 📜Pretendard-Medium.otf
 ┃ ┃ ┣ 📜Pretendard-Regular.otf
 ┃ ┃ ┗ 📜Pretendard-SemiBold.otf
 ┃ ┗ 📜loadingAnimation.json
 ┣ 📜.DS_Store
 ┣ 📜Info.plist
 ┣ 📜Junction.entitlements
 ┣ 📜JunctionApp.swift
 ┗ 📜Secrets.xcconfig

📌 Git Convention & Strategy

Git Strategy

스크린샷 2024-07-11 오후 9 53 16

main : 개발이 완료된 산출물이 저장될 공간

develop : feature 브랜치에서 구현된 기능들이 merge될 브랜치

feature : 기능을 개발하는 브랜치, 이슈별/작업별로 브랜치를 생성하여 기능을 개발한다

release : 릴리즈를 준비하는 브랜치, 릴리즈 직전 QA 기간에 사용한다

hotfix : 버그를 수정하는 브랜치


Git Convention

  • 이슈

    1. 이슈를 등록할 때 맨 앞에 이슈 종류 쓰기 (예: feat: 홈 UI 구현)
    2. 템플릿 사용
    3. 이슈에 맞는 label 달기

    ex) 이슈 템플릿

설명을 작성하세요.

## To-do
- [ ] todo
- [ ] todo

  • 브랜치

브랜치명 = #이슈 번호/작업할 내용

ex) #3/HomeViewUI


  • 커밋

커밋 메시지 앞에 이슈: 넣기

ex) feat: 홈 UI 구현


  • 태그

hotfix : issue나, QA에서 급한 버그 수정에 사용

fix : 버그, 오류 해결

add : Feat 이외의 부수적인 코드 추가, 라이브러리 추가, 새로운 파일 생성 시

style : 코드 포맷팅, 코드 변경이 없는 경우

feat : 새로운 기능 구현

del : 쓸모없는 코드 삭제

docs : README나 WIKI 등의 문서 개정

chore : 코드 수정, 내부 파일 수정, 빌드 업무 수정, 패키지 매니저 수정

move : 프로젝트 내 파일이나 코드의 이동

rename : 파일 이름 변경이 있을 때 사용합니다.

refactor : 전면 수정이 있을 때 사용합니다

Code Convention

swift-style-guide �Sonic iOS 멤버는 아래 swift code convention을 참고해 코드를 작성한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%