Skip to content

Commit

Permalink
Merge pull request #74 from Nexters/develop
Browse files Browse the repository at this point in the history
Release 1.0.0
  • Loading branch information
longlivedrgn authored Aug 29, 2024
2 parents f59b67f + ae9e685 commit 79246d7
Show file tree
Hide file tree
Showing 688 changed files with 16,024 additions and 0 deletions.
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/.build
2 changes: 2 additions & 0 deletions .mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[tools]
tuist = "4.20.0"
16 changes: 16 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
generate:
make clean
tuist install
tuist generate

clean:
killAll Xcode && rm -rf ~/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
tuist clean
rm -rf **/**/**/*.xcodeproj
rm -rf **/**/*.xcodeproj
rm -rf **/*.xcodeproj
rm -rf *.xcworkspace
rm -rf ./Tuist/.build

module:
swift Scripts/GenerateModule.swift
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")
80 changes: 80 additions & 0 deletions Plugins/DependencyPlugin/ProjectDescriptionHelpers/Modules.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import Foundation
import ProjectDescription

public enum ModulePath {
case feature(Feature)
case domain(Domain)
case core(Core)
case shared(Shared)
case data(Data)
}

// MARK: AppModule

public extension ModulePath {
enum App: String, CaseIterable {
case iOS
public static let name: String = "App"
}
}


// MARK: FeatureModule
public extension ModulePath {
enum Feature: String, CaseIterable {
case Setting
case Home
case PieceCreation
case Entrance
case Login
public static let name: String = "Feature"
}
}

// MARK: DomainModule

public extension ModulePath {
enum Domain: String, CaseIterable {
case Mission
case Competition
case Board
case Player
case User
case Auth

public static let name: String = "Domain"
}
}

// MARK: CoreModule

public extension ModulePath {
enum Core: String, CaseIterable {
case Keychain
case Network

public static let name: String = "Core"
}
}

// MARK: SharedModule

public extension ModulePath {
enum Shared: String, CaseIterable {
case Util
case DesignSystem
case ThirdPartyLib

public static let name: String = "Shared"
}
}

// MARK: DataModule

public extension ModulePath {
enum Data: String, CaseIterable {
case Remote

public static let name: String = "Data"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import Foundation
import ProjectDescription

// MARK: ProjectDescription.Path + App

public extension ProjectDescription.Path {
static var app: Self {
return .relativeToRoot("Projects/\(ModulePath.App.name)")
}
}

// MARK: ProjectDescription.Path + Feature

public extension ProjectDescription.Path {
static var feature: Self {
return .relativeToRoot("Projects/\(ModulePath.Feature.name)")
}

static func feature(implementation module: ModulePath.Feature) -> Self {
return .relativeToRoot("Projects/\(ModulePath.Feature.name)/\(module.rawValue)")
}
}

// MARK: ProjectDescription.Path + Domain

public extension ProjectDescription.Path {
static var domain: Self {
return .relativeToRoot("Projects/\(ModulePath.Domain.name)")
}

static func domain(implementation module: ModulePath.Domain) -> Self {
return .relativeToRoot("Projects/\(ModulePath.Domain.name)/\(module.rawValue)")
}
}

// MARK: ProjectDescription.Path + Core

public extension ProjectDescription.Path {
static var core: Self {
return .relativeToRoot("Projects/\(ModulePath.Core.name)")
}

static func core(implementation module: ModulePath.Core) -> Self {
return .relativeToRoot("Projects/\(ModulePath.Core.name)/\(module.rawValue)")
}
}

// MARK: ProjectDescription.Path + Shared

public extension ProjectDescription.Path {
static var shared: Self {
return .relativeToRoot("Projects/\(ModulePath.Shared.name)")
}

static func shared(implementation module: ModulePath.Shared) -> Self {
return .relativeToRoot("Projects/\(ModulePath.Shared.name)/\(module.rawValue)")
}
}


// MARK: ProjectDescription.Path + Data

public extension ProjectDescription.Path {
static var data: Self {
return .relativeToRoot("Projects/\(ModulePath.Data.name)")
}

static func data(implementation module: ModulePath.Data) -> Self {
return .relativeToRoot("Projects/\(ModulePath.Data.name)/\(module.rawValue)")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import Foundation
import ProjectDescription

public extension Project {
enum Environment {
public static let appName = "MissionMate"
public static let deploymentTarget = DeploymentTargets.iOS("17.0")
public static let bundlePrefix = "com.goalpanzi.missionmate"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
import Foundation
import ProjectDescription

// MARK: TargetDependency + App

public extension TargetDependency {
static var app: Self {
return .project(target: ModulePath.App.name, path: .app)
}

static func app(implements module: ModulePath.App) -> Self {
return .target(name: ModulePath.App.name + module.rawValue)
}
}

// MARK: TargetDependency + Feature

public extension TargetDependency {
static var feature: Self {
return .project(target: ModulePath.Feature.name, path: .feature)
}

static func feature(implements module: ModulePath.Feature) -> Self {
return .project(target: ModulePath.Feature.name + module.rawValue, path: .feature(implementation: module))
}

static func feature(interface module: ModulePath.Feature) -> Self {
return .project(target: ModulePath.Feature.name + module.rawValue + "Interface", path: .feature(implementation: module))
}

static func feature(tests module: ModulePath.Feature) -> Self {
return .project(target: ModulePath.Feature.name + module.rawValue + "Tests", path: .feature(implementation: module))
}

static func feature(testing module: ModulePath.Feature) -> Self {
return .project(target: ModulePath.Feature.name + module.rawValue + "Testing", path: .feature(implementation: module))
}

}

// MARK: TargetDependency + Domain

public extension TargetDependency {
static var domain: Self {
return .project(target: ModulePath.Domain.name, path: .domain)
}

static func domain(implements module: ModulePath.Domain) -> Self {
return .project(target: ModulePath.Domain.name + module.rawValue, path: .domain(implementation: module))
}

static func domain(interface module: ModulePath.Domain) -> Self {
return .project(target: ModulePath.Domain.name + module.rawValue + "Interface", path: .domain(implementation: module))
}

static func domain(tests module: ModulePath.Domain) -> Self {
return .project(target: ModulePath.Domain.name + module.rawValue + "Tests", path: .domain(implementation: module))
}

static func domain(testing module: ModulePath.Domain) -> Self {
return .project(target: ModulePath.Domain.name + module.rawValue + "Testing", path: .domain(implementation: module))
}
}

// MARK: TargetDependency + Core

public extension TargetDependency {
static var core: Self {
return .project(target: ModulePath.Core.name, path: .core)
}

static func core(implements module: ModulePath.Core) -> Self {
return .project(target: ModulePath.Core.name + module.rawValue, path: .core(implementation: module))
}

static func core(interface module: ModulePath.Core) -> Self {
return .project(target: ModulePath.Core.name + module.rawValue + "Interface", path: .core(implementation: module))
}

static func core(tests module: ModulePath.Core) -> Self {
return .project(target: ModulePath.Core.name + module.rawValue + "Tests", path: .core(implementation: module))
}

static func core(testing module: ModulePath.Core) -> Self {
return .project(target: ModulePath.Core.name + module.rawValue + "Testing", path: .core(implementation: module))
}
}

// MARK: TargetDependency + Shared

public extension TargetDependency {
static var shared: Self {
return .project(target: ModulePath.Shared.name, path: .shared)
}

static func shared(implements module: ModulePath.Shared) -> Self {
return .project(target: ModulePath.Shared.name + module.rawValue, path: .shared(implementation: module))
}

static func shared(interface module: ModulePath.Shared) -> Self {
return .project(target: ModulePath.Shared.name + module.rawValue + "Interface", path: .shared(implementation: module))
}
}

// MARK: TargetDependency + Data

public extension TargetDependency {
static var data: Self {
return .project(target: ModulePath.Data.name, path: .data)
}

static func data(implements module: ModulePath.Data) -> Self {
return .project(target: ModulePath.Data.name + module.rawValue, path: .data(implementation: module))
}

static func data(interface module: ModulePath.Data) -> Self {
return .project(target: ModulePath.Data.name + module.rawValue + "Interface", path: .data(implementation: module))
}

static func data(tests module: ModulePath.Data) -> Self {
return .project(target: ModulePath.Data.name + module.rawValue + "Tests", path: .data(implementation: module))
}

static func data(testing module: ModulePath.Data) -> Self {
return .project(target: ModulePath.Data.name + module.rawValue + "Testing", path: .data(implementation: module))
}
}

10 changes: 10 additions & 0 deletions Projects/App/MissionMate.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
</dict>
</plist>
Loading

0 comments on commit 79246d7

Please sign in to comment.