print("비난, 조롱 없이 내 팀과 선수를 응원하는 커뮤니티")
print("와블 iOS 레포지토리입니다 🚀")
Prefix | 설명 |
---|---|
Feat |
기능 구현 |
Add |
파일(이미지, 폰트 등 포함) 추가 |
Delete |
파일 삭제 |
Chore |
이외 자잘한 수정 |
Refactor |
코드의 비즈니스 로직 수정 |
Fix |
버그 등의 기능 전체 수정 |
Style |
UI 스타일(오토레이아웃 등) 설정 |
Setting |
프로젝트 설정 |
Docs |
문서 작성 |
[Prefix] #이슈번호 - 메세지 내용
[Feat] #1 - 로그인 기능 구현
Library | Description |
---|---|
Moya | 추상화된 네트워크 레이어를 보다 간편하게 사용하기 위함 |
CombineMoya | Combine을 활용한 네트워크 요청을 보다 효율적으로 처리하기 위함 |
Then | UI 구현 시, 클로저를 통해 인스턴스를 보다 간편하게 초기화하기 위함 |
Snapkit | UI 구현에서 오토레이아웃을 간편하게 적용하기 위함 |
Lottie | JSON 기반 애니메이션을 UI에 쉽게 적용하기 위함 |
Kingfisher | 이미지 캐싱 및 다운로드 최적화를 통해 UI 성능을 개선하기 위함 |
KakaoOpenSDK | 카카오 소셜 로그인 및 API 활용을 위함 |
Firebase | FCM을 이용한 푸시 알림 및 백엔드 기능 활용을 위함 |
Amplitude-Swift | 사용자 행동 분석을 위한 이벤트 트래킹을 위함 |
📁 Wable-iOS
├── 📁 App
│ ├── AppDelegate
│ ├── SceneDelegate
├── 📁 Resource
│ ├── 📁 Config
│ ├── 📁 Font
│ ├── 📁 Animation
│ ├── 📁 Info
│ ├── 📁 Assets
│ │ ├── 📁 Color
│ ├── LaunchScreen
│ ├── ViewController
├── 📁 Core
│ ├── 📁 DI
│ ├── 📁 Combine+
│ ├── 📁 Logger
├── 📁 Infra
│ ├── 📁 Token
│ ├── 📁 Keychain
│ ├── 📁 Network
│ │ ├── 📁 OAuth
│ │ ├── APIProvider
│ │ ├── NetworkError
│ │ ├── MoyaLoggingPlugin
│ │ ├── 📁 Bundle
│ │ ├── 📁 TargetType
│ │ ├── 📁 DTO
├── 📁 Data
│ ├── 📁 RepositoryImpl
│ ├── 📁 Mapper
├── 📁 Domain
│ ├── 📁 Error
│ ├── 📁 RepositoryInterface
│ ├── 📁 Entity
- 프로토콜의 네이밍: 구현하고자 하는 객체 이름 - 실 구현체의 네이밍: 프로토콜 네이밍 + `Impl`
protocol UserRepository {}
final class UserRepositoryImpl {}
func setupNavigationBar()
func setupView()
func setupConstraints()
func setupAction()
func setupDelegate()
func setupDataSource()
func setupBinding()
- **위, 아래로 한 줄 씩 공백**을 두고 작성합니다.
// MARK: - Property
// MARK: - Initializer
// MARK: - Life Cycle
// MARK: - Setup Method
// MARK: - UICollectionViewDelegate (ex)
// MARK: - Private Method
- 퍼스트 파티와 서드 파티를 분리
- 순서는 무조건 알파벳순
import Combine
import Foundation
import CombineMoya
import Moya