Skip to content

Clokey-dev/Clokey_iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Clokey_iOS

ClokeyClosetKey의 합성어로, 사용자의 옷장을 효율적으로 관리하고 활용할 수 있도록 도와주는 서비스입니다.

Clokey iOS 팀과 컨벤션 규칙을 소개합니다.

👥 팀원

이름 닉네임 역할 GitHub ID
황상환 에그 iOS 팀 리더 @Hrepay
한태빈 해태 iOS 개발자 @taebin2
한금준 누비 iOS 개발자 @Funital
소민준 쏘쏘 iOS 개발자 @sososominjun

🛠 프로젝트 컨벤션

🌿 브랜치 컨벤션

Git-Flow 구조

Git-Flow 방식을 따르며 브랜치 구조는 아래와 같습니다.

main
  ├── develop
        ├── feature/login
        ├── feature/calendar_view
        ├── feature/edit_profile
	├── refactor/login-token-refresh
	├── fix/profile 
        └── hotfix/critical_bug
  • main
    • 항상 배포 가능한 상태를 유지하며, 최종 릴리즈 버전의 코드가 포함됩니다.
  • develop
    • 개발 중인 모든 기능이 병합되는 브랜치로, 안정적인 상태를 유지합니다.
  • feature/
    • 새로운 기능 개발을 위한 브랜치입니다.
    • 작업 완료 후 develop 브랜치에 병합합니다.
  • release/
    • 배포 준비를 위한 브랜치입니다.
    • 버그를 수정하고 최종 테스트를 거친 뒤, main에 병합합니다.
  • fix/
    • devleop에서 발견된 버그를 수정하기 위한 브랜치입니다.
    • 수정 완료 후 develop에 병합합니다.
  • refactor/
    • devleop에서 리팩토링을 위한 브랜치입니다.
    • 작업 완료 후 develop에 병합합니다.
  • hotfix/
    • main에서 발견된 긴급한 버그를 수정하기 위한 브랜치입니다.
    • 수정 완료 후 main과 develop에 병합합니다.

🔧 브랜치 생성 및 작업 흐름

  1. develop 브랜치에서 작업할 브랜치를 생성

    git checkout -b feature/<기능명>
    • 예시: feature/login, feature/sign-up
  2. 작업 후, 변경사항을 커밋

    git add . 
    git commit -m "feat: 로그인 화면 UI 구현"
  3. 원격 저장소에 푸시

    git push origin feature/<기능명>
  4. 푸시 후, PR을 생성

    • PR 생성 시 develop 브랜치를 타겟으로 지정
    • 리뷰어를 지정하고 작업 내용 작성

💬 커밋 컨벤션

커밋 메시지 컨벤션

모든 커밋 메시지는 아래 형식을 따라 작성해주세요:

[#이슈번호] 커밋 내용

예시:

[#123] 로그인 오류 수정 
[#98] README 구성 정리 
[#45] 홈 화면 새로고침 기능 구현

🔖 커밋 메시지 관련 참고

  • 커밋은 이슈 번호와 연동되어야 하며, 꼭 관련 이슈를 먼저 생성해주세요.

  • 자동으로 PR 제목에도 반영되므로, 이슈 제목과 통일성 있는 메시지가 좋습니다.


🧹 코드 스타일 컨벤션

코드 스타일은 스타일쉐어에서 오픈소스로 배포하는 코딩 컨벤션 가이드를 활용합니다.
코드 작성 전에 꼭 읽어주세요!
https://github.com/StyleShare/swift-style-guide


📂 디렉터리 구조 컨벤션

Clokey/
├── Application/        # 앱 초기화 관련 파일
│   ├── AppDelegate.swift
│   └── SceneDelegate.swift
├── Resources/          # 정적 리소스 (이미지, 폰트 등)
│   ├── Assets.xcassets
│   └── Fonts/
├── Sources/            # 앱 주요 소스
│   ├── Common/        # 공통적으로 사용되는 뷰, 컴포넌트, 확장 기능
│   ├── Feature/        # 주요 기능 관련 코드
│   │   ├── Login/      # 로그인 화면 및 로직
│   │   ├── Main/       # 메인 화면 및 로직
│   │   ├── Home/       # 홈 화면 및 로직
│   │   ├── Calendar/   # 캘린더 화면 및 로직
│   │   ├── AddCloth/   # 옷 추가 화면 및 로직
│   │   ├── Closet/     # 옷장 화면 및 로직
│   │   ├── Profile/    # 프로필 화면 및 로직
│   │   └── Services/   # 기능별 서비스 로직
│   └── Network/         # 네트워크 요청 및 응답 처리
└── Supporting Files/   # 프로젝트 설정 파일
    └── Info.plist

이 디렉터리 구조는 프로젝트 요구사항에 따라 변경될 수 있습니다.
Signing & Capabilities에서 자신의 Apple ID로 Team을 변경해주세요.
Bundle Identifier를 자신의 것으로 수정해주세요.


⚠️ 이슈 & PR 컨벤션

  • 이슈와 PR은 템플릿을 참고해서 작성해주세요!
  • 리뷰어와 태그는 꼭 해주세요!

⚙️ 사용 프레임워크

  1. Then (필수): 초기화 설정을 간결하게 도와주는 유틸리티 라이브러리
  2. SnapKit (필수): 코드 기반으로 Auto Layout을 작성할 수 있는 DSL 기반 라이브러리
  3. Moya (필수): HTTP 네트워크 요청과 응답 처리를 더 구조화하고 효율적으로 만들어주는 네트워크 추상화 라이브러리
  4. RxSwift (선택): 반응형 프로그래밍을 지원하며, 데이터와 이벤트 스트림을 처리하는 라이브러리

필수 프레임워크는 모든 팀원이 반드시 설치 및 활용해야 합니다.
선택 프레임워크는 필요에 따라 사용할 수 있으며, 사용 시 커밋과 이슈를 통해 공지하도록 합니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •