Skip to content

Commit

Permalink
프로젝트 세팅
Browse files Browse the repository at this point in the history
  • Loading branch information
juyeong525 committed Feb 15, 2024
1 parent faaebf1 commit afa3282
Show file tree
Hide file tree
Showing 103 changed files with 2,266 additions and 1 deletion.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.* @juyeong525 @parkdoyeon1
8 changes: 8 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## 개요
> <!-- 작업 목적 및 개요 작성 -->
## 작업사항
- [x] <!-- 작업 사항 작성 -->

## UI
<img src="<!-- 이미지 링크 작성 -->" width="150px"></img>
31 changes: 31 additions & 0 deletions .github/workflows/SwiftLint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: SwiftLint

on:
push:
paths:
- '.github/workflows/SwiftLint.yml'
- '.swiftlint.yml'
- '**/*.swift'
pull_request:
paths:
- '.github/workflows/SwiftLint.yml'
- '.swiftlint.yml'
- '**/*.swift'

jobs:
SwiftLint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: GitHub Action for SwiftLint
uses: norio-nomura/[email protected]
- name: GitHub Action for SwiftLint with --strict
uses: norio-nomura/[email protected]
with:
args: --strict
- name: GitHub Action for SwiftLint (Only files changed in the PR)
uses: norio-nomura/[email protected]
env:
DIFF_BASE: ${{ github.base_ref }}
- name: GitHub Action for SwiftLint (Different working directory)
uses: norio-nomura/[email protected]
70 changes: 70 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### Xcode ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3

### Xcode Patch ###
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata
/*.gcno

### Projects ###
*.xcodeproj
*.xcworkspace

### Tuist derived files ###
graph.dot
Derived/

### Tuist managed dependencies ###
Tuist/Dependencies
1 change: 1 addition & 0 deletions .tuist-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.23.1
15 changes: 15 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
generate:
tuist fetch
tuist generate

clean:
rm -rf **/*.xcodeproj
rm -rf *.xcworkspace

cache_clean:
rm -rf ~/Library/Developer/Xcode/DerivedData/*

reset:
tuist clean
rm -rf **/*.xcodeproj
rm -rf *.xcworkspace
3 changes: 3 additions & 0 deletions Plugins/DependencyPlugin/Plugin.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import ProjectDescription

let plugin = Plugin(name: "DependencyPlugin")
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import ProjectDescription

public extension TargetDependency {
struct Projects {}
struct Modules {}
}

public extension TargetDependency.Projects {
static let core = TargetDependency.project(
target: "Core",
path: .relativeToRoot("Projects/Core")
)
static let data = TargetDependency.project(
target: "Data",
path: .relativeToRoot("Projects/Data")
)
static let domain = TargetDependency.project(
target: "Domain",
path: .relativeToRoot("Projects/Domain")
)
static let flow = TargetDependency.project(
target: "Flow",
path: .relativeToRoot("Projects/Flow")
)
static let presentation = TargetDependency.project(
target: "Presentation",
path: .relativeToRoot("Projects/Presentation")
)
}

public extension TargetDependency.Modules {
static let thirdPartyLib = TargetDependency.project(
target: "ThirdPartyLib",
path: .relativeToRoot("Projects/Modules/ThirdPartyLib")
)
static let appNetwork = TargetDependency.project(
target: "AppNetwork",
path: .relativeToRoot("Projects/Modules/AppNetwork")
)
static let designSystem = TargetDependency.project(
target: "DesignSystem",
path: .relativeToRoot("Projects/Modules/DesignSystem")
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import ProjectDescription

public extension TargetDependency {
enum SPM {}
}

public extension TargetDependency.SPM {
static let RxSwift = TargetDependency.external(name: "RxSwift")
static let RxCocoa = TargetDependency.external(name: "RxCocoa")
static let SnapKit = TargetDependency.external(name: "SnapKit")
static let Then = TargetDependency.external(name: "Then")
static let RxFlow = TargetDependency.external(name: "RxFlow")
static let Swinject = TargetDependency.external(name: "Swinject")
static let Moya = TargetDependency.external(name: "Moya")
static let RxMoya = TargetDependency.external(name: "RxMoya")
static let kingfisher = TargetDependency.external(name: "Kingfisher")
static let KeychainSwift = TargetDependency.external(name: "KeychainSwift")
static let ReactorKit = TargetDependency.external(name: "ReactorKit")
static let RxGesture = TargetDependency.external(name: "RxGesture")
}
3 changes: 3 additions & 0 deletions Plugins/EnvironmentPlugin/Plugin.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import ProjectDescription

let plugin = Plugin(name: "EnvironmentPlugin")
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import ProjectDescription

public struct ProjectEnvironment {
public let appName: String
public let targetName: String
public let organizationName: String
public let deploymentTarget: DeploymentTarget
public let platform: Platform
public let baseSetting: SettingsDictionary
}

public let env = ProjectEnvironment(
appName: "Emoting-iOS",
targetName: "Emoting-iOS",
organizationName: "com.team.emoting",
deploymentTarget: .iOS(targetVersion: "16.0", devices: .iphone),
platform: .iOS,
baseSetting: [:]
)
30 changes: 30 additions & 0 deletions Projects/App/Project.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import ProjectDescriptionHelpers
import ProjectDescription
import DependencyPlugin
import EnvironmentPlugin
import Foundation

let targets: [Target] = [
.init(
name: env.targetName,
platform: env.platform,
product: .app,
bundleId: "\(env.organizationName)",
deploymentTarget: env.deploymentTarget,
infoPlist: .file(path: "Support/Info.plist"),
sources: .sources,
resources: .resources,
scripts: [],
dependencies: [
.Projects.flow
],
settings: .settings(base: env.baseSetting)
)
]

let project = Project(
name: env.targetName,
organizationName: env.organizationName,
settings: .settings(base: .codeSign),
targets: targets
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
6 changes: 6 additions & 0 deletions Projects/App/Resources/Assets.xcassets/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading

0 comments on commit afa3282

Please sign in to comment.