Skip to content

Commit

Permalink
[BE] 메인 브랜치 merge 충돌 해결 (#285)
Browse files Browse the repository at this point in the history
* 🎨 Test 코드에서 Lint disable

* 🚚 MSUIComponent 파일 삭제

* [iOS] SpotScene (#114)

* 📝 RewindJourney 패키지 파일 생성 및 필요한 패키지 의존성 추가

* 📝 구현에 필요한 UIKit 가져오기

* 📝 경로 변경에 따른 package 파일 수정

* ✨ UI Scene 구현

* 📝 Package 파일 생성

* ✨ Scene UI 화면 구현

---------

Co-authored-by: mingun <[email protected]>

* 🎨 상수 변수 read-only로 변경

* 🎨 변수명 변경 isHighlight -> isHighlighted

* ✨ Preview 추가, album art 표지 변경 기능 추가

* 📦 앱 타겟에서 사용되지 않는 Package Dependency 제거

* Workspace 세팅 Cherry-Pick

* 👷 CI 적용

* 📦 Workspace 세팅, Feature 패키지 생성

* 📦 commit script에 추가된 패키지 추가

* 📦 SpotView 패키지 이름 Spot으로 수정

* 📦 RewindJourneyView ➡️ RewindJourney로 패키지 이름 변경

* 📦 흔적만 있는 패키지 새로 생성

* 🎨 빌드 가능하도록 수정

* 🚚 Workspace의 Feature들을 그룹화

* 📦 Dependency를 통한 패키지 관리

* 📦 Workspace에 Test 타겟 추가

* 📦 앱 타겟에서 Core, Foundation, UIKit 패키지 Dependency 제거

* 👷 test without build ➡️ test

* 📦 JourneyList에 MSData를 Dependency로 추가

* 🚚 각 Feature에 Demo 앱 프로젝트 생성

* 🚚 JourneyListDemo 앱 세팅

* 🎨 LaunchScreen 세팅

* 📦 MSFoundaiton에 Constants 타겟 추가

* ♻️ MSCache 리팩토링

* 📝 MSCacheStorage의 메서드들에 문서화 설명을 추가

* ✨ 카메라 기능 추가

* 🚚 Coordinator 패턴 구조 구현

* 🎨 Coordinator 관련 코드 Lint 적용하여 수정

* 🐛 캐싱 디렉토리를 생성하지 않아 실패하는 에러 수정

* ✨ 캐시를 삭제할 대상을 선택해서 삭제할 수 있도록 수정

* 🧪 MSCacheStorage 테스트 케이스 작성

* 🐛 iOS 16.0 미만 버전에서 캐싱이 동작하지 않는 문제 수정

* 🚚 MSDesignSystemTests 타겟 삭제

* 🎨 Layout group의 높이를 Cell에 상수로 정의된 값으로 변경

* 🎨 Subtitle를 상수들과 함께 관리

* ✨ 임시 캐싱 로직 구현

* ✨ 현재 위치에서 다시 검색을 위한 public API 함수 생성

* 🎨 비어있는 MSData 파일 삭제

* 🎨 컨벤션에 맞게 수정

* 🐛 Dependency 추가

* ♻️ Coordinator 구조에 Workspace 브랜치 dump

* 📦 패키지 삭제하고 다시 추가

* 🎨 AppCoordinator 내 extension 분리, 함수명 변경, 다중 pop 로직 변경

* 📝 CameraView 생성

* ✨ 카메라 UI 추가

* ✨ 카메라 로직 추가

* ♻️ 코드 정리 및 구조 리팩토링

* 📝 이미지 송출해주는 로직을 다룰 viewModel 파일 생성

* 🎨 Lint 컨밴션에 맞춘 코드 수정

* 🎨 Commit 파일 수정

* 🎨 Lint 규칙에 맞추어 코드 수정 + Demo App 셋팅

* 🎨 Lint 컨밴션 맞추어 수정

* 📝 Demo App 카메라 환경설정

* 🐛 전에 띄웠던 화면에서 벗어나지 못하는 현상 버그 픽스

* 🎨 여정 저장 Demo 앱 세팅

* 📝 Package MSNetworking, MSData 의존성 추가 및 패키지 관리 타입 프로퍼티 수정

* ✨ 여정 저장 화면 하단에 버튼 스택 추가

* ♻️ Tree 구조로 변경하여 Coordinator 구현

* 📦 여정 저장 패키지의 Dependency에 MSData 추가

* 📦 MSData 패키지 생성

# Conflicts:
#	iOS/Features/JourneyList/Package.swift
#	iOS/MSCoreKit/Sources/MSNetworking/MSNetworking.swift
#	iOS/MSData/Package.swift
#	iOS/MusicSpot.xcworkspace/contents.xcworkspacedata
#	iOS/MusicSpot/MusicSpot.xcodeproj/project.pbxproj

* 🚚 DTO 경로 수정

* 🎨 DTO에 public 추가

* ✨ Journey Mock 데이터 적용

# Conflicts:
#	iOS/Features/JourneyList/Package.swift
#	iOS/Features/JourneyList/Sources/JourneyList/File.swift
#	iOS/Features/JourneyList/Sources/JourneyList/Presentation/JourneyListViewModel.swift
#	iOS/Features/JourneyList/Sources/JourneyList/Song.swift
#	iOS/Features/JourneyList/Sources/JourneyList/Spot.swift
#	iOS/MSData/Resources/MockJourney.json
#	iOS/MSData/Sources/MSData/Repository/JourneyRepository.swift

* 🎨 MSNetworking 요소들에 public 추가

# Conflicts:
#	iOS/MSCoreKit/Sources/MSNetworking/MSNetworking.swift

* ♻️ MSNetworking URL 구조 변경 & Header 추가

# Conflicts:
#	iOS/MSCoreKit/Sources/MSNetworking/MSNetworking.swift

* 🎨 MSNetworking Error 이름 변경 & 코드 정리

* 🎨 MSNetworking에 timeout 추가

* 🧪 MSNetworking 테스트 케이스 수정

* ✨ Journey Router 추가

# Conflicts:
#	iOS/MSData/Sources/MSData/Repository/JourneyRepository.swift

* 🎨 함수명 변경, 누락된 popViewController 추가

* 🐛 여정 저장 Demo앱을 실행 가능한 상태로 수정

* 📝 MSNetworking 에 대한 의존성 추가

* 🎨 SpotDTO, 보내는 용과 받는 용으로 타입 분리

* 🎨 Spot에 대한 router case 추가

* 🎨 코딩 컨벤션에 맞게 수정

* 🎨 명시적 self 추가

* 🎨 SpotDTO 생성자 접근 제한 수정

* 🎨 SpotDTO에 필요한 코드 추가

* 🐛 SearchMusic에 대한 잘못된 흐름을 수정

* 🎨 여정 리스트 임시 수정

* 🎨 ResponsibleDTO 임시로 Codable 처리(회의 필요)

* 🎨 DTOConvertor 수정

* 🚚 누락된 파일 추가

* 📝 Workspace 문서 수정

* 🐛 JourneyList의 DTO 업데이트

* 🚚 HomeMapScene 패키지 삭제

* 🎨 Resolve conflict

* [iOS] HomeMapScene에 대한 UI 및 Polyline 드로잉 구현 (#94)

* 🚚 (HomeMapScene): HomeMapScene에 대한 UI 및 Polyline 드로잉 구현

* ♻️ Features 폴더 생성

Module 단위 구조로 인해 Lint를 모두 적용하기 위해 하나의 Features 폴더 생성

* 🎨 불필요한 중복 코드 및 미사용 파일 삭제

* 🚚 다른 Package들 추가

* 🎨 HomeMapScene Package 설정 변경

* 🚚 Workspace 수정

* [iOS] 여정 완료 Scene UI (#120)

* [iOS] MSButton 추가 (#73)

* ✨ MSFont 추가 (Pretendard font)

* ✨ MSColor 추가

* ✨ MSIcon 추가

* 🚚 임시 파일 삭제 & 앱 타겟에서 UI 모듈 제거

* ✨ MSButton & MSRectButton 추가

* [iOS] MSDesignSystem (#72)

* ✨ MSFont 추가 (Pretendard font)

* ✨ MSColor 추가

* ✨ MSIcon 추가

* 🚚 임시 파일 삭제 & 앱 타겟에서 UI 모듈 제거

* 📦 JourneyListScene 패키지 생성

* 👷 SwiftLint 수정

* ✨ JourneyListViewController의 기본적인 사항 구현

* ✨ JourneyList 헤더와 Cell 추가

* 🎨 쓰이지 않는 클로저 파라미터 제거

* ✨ JourneyListViewController 구현

* ✨ StackView에 사용할 Spacer 추가

* ✨ 누락된 Color 추가

* ✨ JourneyList UI 구현

* 🎨 매직 넘버 Constant화

* 🚚 테스트용 앱 타겟 코드 제거 & Dependency 해제

* ♻️ 여정 Cell을 리팩토링했습니다.

* 🎨 Lint 에러 대응

* ♻️ DataSource 구조와 Layout 변경

* ✨ 여정 저장 Spot Cell까지 UI 구현

* 🎨 Magic Number Constant로 관리

* ✨ 여정 저장 UI 구현

* 📦 테스트 앱 타겟 제거

* 🚚 MSDesignSystemTests 타겟 삭제

* 🚚 사용되지 않는 파일 삭제

* 🚚 중복 파일 삭제

* 🐛 패키지 세팅 해결

* 🚚 임시 ViewController들 삭제

* ✨ Home (NavigateMap & JourneyList) 코디네이터로 연결

* ✨ RewindJourney 코디네이터 연결

* 🚚 MSUIComponent 파일 삭제

* 🐛 여정 목록이 스크롤 되는 동안 BottomSheet는 동작하지 않도록 수정

* ✨ BottomSheet에 Resize Indicator 추가

* 🚚 사용되지 않는 Delegate 파일 삭제

* 📦 MSUIKit에 MSLogger Dependency를 추가하고 Bottom Sheet의 State를 기록하는 데 사용

* 🐛 BottomSheet 동작 오류 수정

* ✨ 여정 목록 UI 변경

* 🚚 사용되지 않는 파일들 삭제

* 📦 MSImageFetcher 라이브러리 추가

* ♻️ MSCacheStorage의 반환 값을 단순 enum에서 Result 타입과 MSCacheError를 사용해 반환

* 🧪 MSCacheStorage 수정에 따른 Test Case 수정

* ✨ MSImageFetcher 구현

* 📦 SelectSong 패키지 & 데모 앱 세팅

* ✨ 음악 검색 Cell 추가

* ✨ UITextField의 CombineCocoa 추가

* ✨ 음악 검색 화면 UI 구현

* ✨ 음악 검색 텍스트필드에 플레이스홀더 텍스트 추가

* 🚚 여정 저장 모델 파일 경로 수정

* 🎨 런치 스크린 수정

* 🐛 Logger 수정에 따른 에러 수정

* 🧪 디버깅용 임시 테스트 케이스 삭제

* 🐛 빌드 에러 수정

* ✨ Model 수정하고 Repository 연결

* ✨ 여정 저장 데이터 바인딩

* 🚚 Modal Background 컬러 추가

* ✨ MSAlertViewController 구현

* ✨ 텍스트필드 AlertViewController에서 분리하고 Feature에서 상속받아 추가

* 🎨 Alert의 버튼에 로직을 추가할 수 있도록 수정

* 🐛 AlertViewController의 빈 공간도 PanGesture가 동작하는 오류 수정

* ♻️ NavigateMap Model 구조 변경

* 🎨 일부 불필요한 코드 삭제 및 Lint 적용

* ✨ Home관련 버튼 기능 구현 및 임시 적용

* ✨ 헤더 텍스트 추가

* 🎨 Button 로직 연결 준비 & MediaPlayer 준비

* ♻️ 여정 완료 SpotCell UI & 데이터 수정

* 📝 TODO 삭제 & 추가

* 🎨 Home Scene에서 사용할 isRecording을 UserDefaults에 등록

* 🎨 RecordJourney 삭제

* ✨ Home Scene 내 버튼 delegate 적용 중

* ✨ MusicKit 사용한 음악 검색 기능 구현

* 🎨 데모앱 Bundle Identifier 수정

* 🐛 스팟 버튼이 탭 되지 않는 현상 수정

* 🎨 NavigateMapButtonStackView에서 private 제거

* 🐛 빌드 에러 수정

* ✨ Song 주입 받은 후 데이터 바인딩

* ✨ 여정 이름 화면 키보드 조정 & 이름 바인딩

* ✨ UITextField의 CombineCocoa 추가

# Conflicts:
#	iOS/Features/SelectSong/Package.swift

* ✨ 여정 완료 로직 구현 완료 (네트워킹 제외)

* 🐛 빌드 에러 수정

* 🎨 Swift lint 규칙에 맞춘 코드 정리

* 📦 NavigateMap에 MSData Dependency 추가

* 🎨 Swift lint 규칙에 맞춘 코드 정리

* 🎨 Swift lint 규칙에 맞춘 코드 정리

* 📦 MSData 경로 수정

* 🚚 모델 파일 삭제 & 컨벤션 수정

* 🎨 Resolve conflict

* 🎨 미사용 import문 임시 제거

* 🎨 구현하지 않은 CacheStorage 주석 처리

* 🐛 생성자 주석 처리 해제

* Update iOS/Features/RewindJourney/Sources/RewindJourney/MSProgressViewModel.swift

Co-authored-by: Junnos  <[email protected]>

* Update iOS/MSData/Sources/MSData/Router/Journey/JourneyRouter.swift

Co-authored-by: Junnos  <[email protected]>

* 🎨 주석 오타 수정

Co-authored-by: 전민건 <[email protected]>

* Delete iOS/MSCoreKit/Sources/MSNetworking/MSRouter.swift

* 📝 주석 오타 수정

* 🐛 빌드 에러 수정

* 🐛 MSLogCategory 컨플릭트 수정

* 🚚 프로젝트 파일 프레임워크 수정

* 📦 MSCoreKit 주석 처리

* 🚚 프로젝트 파일 빌드 에러 수정

* 🎨 빌드 에러 수정

* gitaction test

---------

Co-authored-by: Junnos  <[email protected]>
Co-authored-by: 전민건 <[email protected]>
Co-authored-by: mingun <[email protected]>
Co-authored-by: Xerath <[email protected]>
Co-authored-by: 윤동주 <[email protected]>
  • Loading branch information
6 people authored Dec 10, 2023
1 parent cfd2059 commit 97c585a
Show file tree
Hide file tree
Showing 345 changed files with 17,700 additions and 4 deletions.
124 changes: 124 additions & 0 deletions .github/workflows/Xcode_build_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Xcode_build_test

env:
WORKSPACE: iOS/MusicSpot.xcworkspace

on:
pull_request:
branches:
- 'iOS/release'
- 'iOS/epic/**'
types: [assigned, labeled, opened, synchronize, reopened]

jobs:
prepare-matrix:
runs-on: macos-13
outputs:
matrix: ${{ steps.generate-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4

- name: Setup Xcode
if: ${{ !env.ACT }}
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0.1'

- name: Generate matrix
id: generate-matrix
run: |
matrix="{\"include\":["
first_entry=true
for scheme in $(xcodebuild -workspace ${{ env.WORKSPACE }} -list | grep -A 100 "Schemes:" | grep -v "Schemes:" | sed '/^$/d' | sed 's/^[ \t]*//'); do
if [[ $scheme != *"-Package" ]] && [[ $scheme != *"Tests" ]]; then
if [ "$first_entry" = true ]; then
first_entry=false
else
matrix+=","
fi
matrix+="{\"scheme\":\"$scheme\"}"
fi
done
matrix+="]}"
echo "matrix=$matrix" >> $GITHUB_OUTPUT
xcode-build:
needs: prepare-matrix
runs-on: macos-13
strategy:
fail-fast: false
matrix: ${{fromJson(needs.prepare-matrix.outputs.matrix)}}
steps:
- uses: actions/checkout@v4

- name: Setup Xcode
if: ${{ !env.ACT }}
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0.1'

- name: 🛠️ Build ${{ matrix.scheme }}
run: |
echo "🛠️ Building ${{ matrix.scheme }}"
xcodebuild \
-workspace ${{ env.WORKSPACE }} \
-scheme ${{ matrix.scheme }} \
-sdk 'iphonesimulator' \
-destination 'platform=iOS Simulator,OS=17.0.1,name=iPhone 15 Pro' \
clean build
prepare-test-matrix:
runs-on: macos-13
outputs:
matrix: ${{ steps.generate-test-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4

- name: Setup Xcode
if: ${{ !env.ACT }}
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0.1'

- name: Generate test matrix
id: generate-test-matrix
run: |
matrix="{\"include\":["
first_entry=true
for scheme in $(xcodebuild -workspace ${{ env.WORKSPACE }} -list | grep -A 100 "Schemes:" | grep -v "Schemes:" | sed '/^$/d' | sed 's/^[ \t]*//'); do
if [[ $scheme == *"Tests" ]]; then
if [ "$first_entry" = true ]; then
first_entry=false
else
matrix+=","
fi
matrix+="{\"scheme\":\"$scheme\"}"
fi
done
matrix+="]}"
echo "matrix=$matrix" >> $GITHUB_OUTPUT
xcode-test:
needs: prepare-test-matrix
runs-on: macos-13
strategy:
fail-fast: false
matrix: ${{fromJson(needs.prepare-test-matrix.outputs.matrix)}}
steps:
- uses: actions/checkout@v4

- name: Setup Xcode
if: ${{ !env.ACT }}
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0.1'

- name: 🧪 Test ${{ matrix.scheme }}
run: |
echo "🧪 Testing ${{ matrix.scheme }}"
xcodebuild \
-workspace ${{ env.WORKSPACE }} \
-scheme ${{ matrix.scheme }} \
-sdk 'iphonesimulator' \
-destination 'platform=iOS Simulator,OS=17.0.1,name=iPhone 15 Pro' \
test
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Created by https://www.toptal.com/developers/gitignore/api/macos,windows,xcode,swift,swiftpackagemanager
# Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,xcode,swift,swiftpackagemanager
# Created by https://www.toptal.com/developers/gitignore/api/macos
# Edit at https://www.toptal.com/developers/gitignore?templates=macos

### macOS ###
# General
Expand Down Expand Up @@ -165,3 +165,4 @@ $RECYCLE.BIN/

# End of https://www.toptal.com/developers/gitignore/api/macos,windows,xcode,swift,swiftpackagemanager
node_modules
# End of https://www.toptal.com/developers/gitignore/api/macos
2 changes: 0 additions & 2 deletions iOS/.githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
#!/bin/sh

echo "iOS"
135 changes: 135 additions & 0 deletions iOS/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# Created by https://www.toptal.com/developers/gitignore/api/macos,xcode,swiftpackagemanager,swift
# Edit at https://www.toptal.com/developers/gitignore?templates=macos,xcode,swiftpackagemanager,swift

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
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

### macOS Patch ###
# iCloud generated files
*.icloud

### Swift ###
# 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

## Obj-C/Swift specific
*.hmap

## App packaging
*.ipa
*.dSYM.zip
*.dSYM

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
# Package.resolved
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
# .swiftpm

.build/

# CocoaPods
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
# Pods/
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace

# Carthage
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build/

# Accio dependency management
Dependencies/
.accio/

# fastlane
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output

# Code Injection
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/

### SwiftPackageManager ###
Packages
xcuserdata


### Xcode ###

## Xcode 8 and earlier

### Xcode Patch ###
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
/*.gcno
**/xcshareddata/WorkspaceSettings.xcsettings

# End of https://www.toptal.com/developers/gitignore/api/macos,xcode,swiftpackagemanager,swift
34 changes: 34 additions & 0 deletions iOS/.swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# 한 라인 길이 제한
line_length:
warning: 120 #default: 120
error: 200

# 강제 형변환
force_cast: error
force_try: error

# 의미없는 공백/줄 바꿈
trailing_newline: warning
trailing_whitespace:
severity: warning
ignores_empty_lines: true

# 함수 길이 제한
function_body_length:
warning: 50
error: 100

# 타입 지정 시, 이름 조건
type_name:
min_length:
warning: 3
error: 0
max_length:
warning: 40
error: 1000

# 중첩 타입
nesting:
type_level:
warning: 3
error: 4
8 changes: 8 additions & 0 deletions iOS/Features/Home/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.DS_Store
/.build
/Packages
xcuserdata/
DerivedData/
.swiftpm/configuration/registries.json
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
.netrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?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>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
Loading

0 comments on commit 97c585a

Please sign in to comment.