Skip to content

Commit

Permalink
Merge pull request #340 from boostcampwm2023/iOS/task/Package-Refactor
Browse files Browse the repository at this point in the history
[iOS] 패키지 구조 리팩토링
  • Loading branch information
SwiftyJunnos authored Jan 8, 2024
2 parents 56f06a2 + d890f2e commit 302ba8c
Show file tree
Hide file tree
Showing 41 changed files with 285 additions and 559 deletions.
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: ISSUE_TEMPLATE
about: 공통적으로 사용되는 이슈 템플릿
title: ''
labels: ''
assignees: ''

---

## 📋 설명

- 이슈에서 구현할 내용 작성

## ✅ 체크리스트

> 구현해야하는 이슈 체크리스트
- [ ] 구현되지 않은 내용
- [x] 구현 완료된 내용
67 changes: 57 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
<h2 align="center">
<img src="https://github.com/boostcampwm2023/iOS01-MusicSpot/assets/138548400/bfd918f2-5495-4b42-80a2-8612c8f4f524" width="200"> <br/>
<br>
🎶 MusicSpot
<br>
</h2>

<img src="https://github.com/boostcampwm2023/iOS01-MusicSpot/assets/138548400/90ec7022-ff90-4cfe-9486-44b42c95e5a9" width="1920">

***

<div align="center" style="color: gray;">
<i>당신의 여정을 음악과 함께 기억하다.</i> <br>
<i>네이버 부스트캠프 웹・모바일 8기 그룹 프로젝트</i> <br>
<i>2023.11.06 ~ 2023.12.15</i> <br>
</div>
Expand All @@ -15,26 +12,76 @@

<h2 align="center">
<br>
⭐️ 프로젝트 소개
⭐️ 프로젝트 소개
<br>
</h2>

<div align="center" style="color: gray;">
<b>Team.과열</b>은 지도에 관심을 갖고있는 사람들로 이루어져 있습니다.<br/>
지도를 활용해서 음악과 함께 여정을 기록하는 앱, <b>MusicSpot</b> 소개합니다.
여정동안 <b>사진과 음악</b>으로 지도에 흔적을 남기는 앱, <b>MusicSpot</b> 소개합니다.
</div>

<br/>

## 🔥 Team. 과열 🔥

|S023 윤동주|S034 전민건|S045 이창준|J037 김태우|J131 임정훈|
| S023 윤동주 | S034 전민건 | S045 이창준 | J037 김태우 | J131 임정훈 |
|:-:|:-:|:-:|:-:|:-:|
|<img src="https://avatars.githubusercontent.com/u/54929503?v=4" width=100>|<img src="https://avatars.githubusercontent.com/u/111111595?v=4" width=100>|<img src="https://avatars.githubusercontent.com/u/138548400?v=4" width=100>|<img src="https://avatars.githubusercontent.com/u/125804293?v=4" width=100>|<img src="https://avatars.githubusercontent.com/u/83702560?v=4" width=100>|
|[@yoondj98](https://github.com/yoondj98)|[@PushedGun](https://github.com/PushedGun)|[@SwiftyJunnos](https://github.com/SwiftyJunnos)|[@twoo1999](https://github.com/twoo1999)|[@vvans](https://github.com/vvans)|

<br/>

## 🗺️ 주요 기능
### 🏃‍♂️ 여정 기록
![MusicSpot 앱 소개 001](https://github.com/boostcampwm2023/iOS01-MusicSpot/assets/138548400/d8e6663e-ed95-4757-858c-2cead6dfa02c)

### 📸 스팟!
![MusicSpot 앱 소개 002](https://github.com/boostcampwm2023/iOS01-MusicSpot/assets/138548400/f9deb9f5-49c1-4f24-b692-0ea3016bf910)

### 🎶 음악 추가
![MusicSpot 앱 소개 003](https://github.com/boostcampwm2023/iOS01-MusicSpot/assets/138548400/22766d78-380d-4d9d-b3ab-a105b7835854)

### 🌠 지난 여정
![MusicSpot 앱 소개 004](https://github.com/boostcampwm2023/iOS01-MusicSpot/assets/138548400/06e129ea-7883-4c98-a39f-41867df2bb0f)

## 🧰 기술 스택

### iOS

<img src="https://github.com/boostcampwm2023/iOS01-MusicSpot/assets/138548400/2d6be807-117f-40a3-9007-84fdd2c3f6e8" width="750">

### BE

<img src="https://github.com/boostcampwm2023/iOS01-MusicSpot/assets/138548400/534eb35b-fff1-4146-a3e6-dff40acc1dce" width="750">

## 🚀 기술적 도전기

### 🍎 iOS
| 키워드 | 제목 |
| :-: | :- |
| XCFramework, Package | [📦 라이브러리-프레임워크-패키지 무슨 차이인데?](https://www.nomatterjun.vision/blog/Swift/22.Library_Framework_Package) |
| `URLProtocol` | [🌐 네트워킹이 테스트가 된다고!?](https://www.nomatterjun.vision/blog/Swift/23.URLProtocol) |
| GitHub Actions, matrix | [🏭 모듈로 나뉜 구조에서 CI는 어떤 형태이면 좋을까?](https://www.nomatterjun.vision/blog/Swift/24.MusicSpot_CI) |
| Boundary Model, Domain Layer | [🎫 데이터 입국심사가 너무 어려워요!](https://www.nomatterjun.vision/blog/Swift/25.DomainLayer) |
| `*codingContainer`, `Codable` | [🕺 인코딩, 디코딩 예민하네~ 화났네~](https://www.nomatterjun.vision/blog/Swift/26.DecodingContainer) |
| 추상화 | [🧑‍🔧 추상화로 협업하기](https://www.nomatterjun.vision/blog/Swift/27.Abstraction_Coop) |

### 💾 BE
| 키워드 | 제목 |
| :-: | :- |
| `NoSQL` | [ NoSQL이 뭐야?](https://www.notion.so/musicspot/NoSQL-16c8fa4b1ff84f86a321c87aa66e1504) |
| `DocumentDB`, `MongoDB` | [ 너무 자유로운 구조는 초보 개발자를 불안하게 해요!](https://www.notion.so/musicspot/03e6b9a70d7f4097b3256c19b8098b85) |
| `CI/CD`, `Docker` | [ Docker(???: 이미지 저장하는거 아니야?) ](https://www.notion.so/musicspot/Docker-121ba909e2e240dc94f25ac88c38a516) |
| `CI/CD`,`Docker` | [ Docker와 친해지기 ](https://www.notion.so/musicspot/Docker-6a845439466f431ea4281fc09d938648) |
| `SSH 연결`, '트러블 슈팅' | [ SSH연결이 안 돼요(근데 잘 돼요 ](https://www.notion.so/musicspot/ssh-fb93c27023e0406bb9bde19d661a6f4c) |
| `HTTP`, `HTTPS`, `CA` | [ HTTPS(선택이 아닌 필수…!) ](https://www.notion.so/musicspot/HTTPS-244427527b894f85938ab6f1d3a19bc9) |
| `Domain`, `가비아` | [ 도메인 사기(전세 사기의 그 사기 아님) ](https://www.notion.so/musicspot/8dd48b218be042fcbb9237aff9bc32fe) |
| `HTTPS`, `NGINX`, `프록시` | [ Nginx를 통한 HTTPS연결 ](https://www.notion.so/musicspot/Nginx-HTTPS-bcf75adc83bb414089c697ddf9d6e97b) |
| `CI/CD`, `github action` | [ github action 시작합니다. ](https://www.notion.so/musicspot/github-action-687b4b951adf4e83a1564d06a366ffbb) |



## 📔 문서

| 그라운드 룰 | 기획/디자인 | 템플릿 | 회의록 |
Expand Down
6 changes: 0 additions & 6 deletions iOS/Features/Home/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ private enum Dependency {
static let msDomain = "MSDomain"
static let msData = "MSData"
static let msUIKit = "MSUIKit"
static let msKeychainStorage = "MSKeychainStorage"
static let msCoreKit = "MSCoreKit"
static let msUserDefaults = "MSUserDefaults"
static let msLogger = "MSLogger"
static let msFoundation = "MSFoundation"
Expand Down Expand Up @@ -62,8 +60,6 @@ let package = Package(
path: Dependency.msData.fromRootPath),
.package(name: Dependency.msUIKit,
path: Dependency.msUIKit.fromRootPath),
.package(name: Dependency.msCoreKit,
path: Dependency.msCoreKit.fromRootPath),
.package(name: Dependency.msFoundation,
path: Dependency.msFoundation.fromRootPath)
],
Expand All @@ -77,8 +73,6 @@ let package = Package(
package: Dependency.msDomain),
.product(name: Dependency.msData,
package: Dependency.msData),
.product(name: Dependency.msKeychainStorage,
package: Dependency.msCoreKit),
.product(name: Dependency.msUserDefaults,
package: Dependency.msFoundation),
.product(name: Dependency.msLogger,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@ import MSConstants
import MSData
import MSDomain
import MSImageFetcher
#if DEBUG
import MSKeychainStorage
#endif
import MSLogger
import MSUserDefaults

Expand Down Expand Up @@ -48,10 +45,6 @@ public final class HomeViewModel {
private var journeyRepository: JourneyRepository
private let userRepository: UserRepository

#if DEBUG
private let keychain = MSKeychainStorage()
#endif

@UserDefaultsWrapped(UserDefaultsKey.isFirstLaunch, defaultValue: false)
private var isFirstLaunch: Bool

Expand Down
17 changes: 5 additions & 12 deletions iOS/Features/JourneyList/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,10 @@ private enum Target {

private enum Dependency {

static let msCacheStorage = "MSCacheStorage"
static let msImageFetcher = "MSImageFetcher"
static let msCoreKit = "MSCoreKit"
static let msUIKit = "MSUIKit"
static let msData = "MSData"

static let msUIKit = "MSUIKit"

static let msLogger = "MSLogger"
static let msFoundation = "MSFoundation"

Expand All @@ -45,22 +44,16 @@ let package = Package(
targets: [Target.journeyList])
],
dependencies: [
.package(name: Dependency.msUIKit,
path: Dependency.msUIKit.fromRootPath),
.package(name: Dependency.msCoreKit,
path: Dependency.msCoreKit.fromRootPath),
.package(name: Dependency.msData,
path: Dependency.msData.fromRootPath),
.package(name: Dependency.msUIKit,
path: Dependency.msUIKit.fromRootPath),
.package(name: Dependency.msFoundation,
path: Dependency.msFoundation.fromRootPath)
],
targets: [
.target(name: Target.journeyList,
dependencies: [
.product(name: Dependency.msCacheStorage,
package: Dependency.msCoreKit),
.product(name: Dependency.msImageFetcher,
package: Dependency.msCoreKit),
.product(name: Dependency.msUIKit,
package: Dependency.msUIKit),
.product(name: Dependency.msData,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import Combine
import UIKit

import MSCacheStorage
import MSData
import MSDomain
import MSUIKit
Expand Down Expand Up @@ -42,8 +41,6 @@ public final class JourneyListViewController: BaseViewController {

public weak var navigationDelegate: JourneyListNavigationDelegate?

private let cache: MSCacheStorage

private(set) var viewModel: JourneyListViewModel

private var dataSource: JourneyListDataSource?
Expand All @@ -67,11 +64,9 @@ public final class JourneyListViewController: BaseViewController {
// MARK: - Initializer

public init(viewModel: JourneyListViewModel,
cache: MSCacheStorage = MSCacheStorage(),
nibName nibNameOrNil: String? = nil,
bundle nibBundleOrNil: Bundle? = nil) {
self.viewModel = viewModel
self.cache = cache
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}

Expand Down
17 changes: 6 additions & 11 deletions iOS/Features/RewindJourney/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ private enum Dependency {

static let msDomain = "MSDomain"
static let msData = "MSData"

static let combineCocoa = "CombineCocoa"
static let msDesignsystem = "MSDesignSystem"
static let msUIKit = "MSUIKit"
static let msNetworking = "MSNetworking"
static let msCoreKit = "MSCoreKit"

static let msExtension = "MSExtension"
static let msLogger = "MSLogger"
static let msFoundation = "MSFoundation"
Expand All @@ -57,8 +58,6 @@ let package = Package(
path: Dependency.msData.fromRootPath),
.package(name: Dependency.msUIKit,
path: Dependency.msUIKit.fromRootPath),
.package(name: Dependency.msCoreKit,
path: Dependency.msCoreKit.fromRootPath),
.package(name: Dependency.msFoundation,
path: Dependency.msFoundation.fromRootPath)
],
Expand All @@ -67,18 +66,14 @@ let package = Package(
dependencies: [
.product(name: Dependency.msDomain,
package: Dependency.msDomain),
.product(name: Dependency.msData,
package: Dependency.msData),
.product(name: Dependency.msUIKit,
package: Dependency.msUIKit),
.product(name: Dependency.msDesignsystem,
package: Dependency.msUIKit),
.product(name: Dependency.msLogger,
package: Dependency.msFoundation),
.product(name: Dependency.msExtension,
package: Dependency.msFoundation),
.product(name: Dependency.msNetworking,
package: Dependency.msCoreKit),
.product(name: Dependency.msData,
package: Dependency.msData)
package: Dependency.msFoundation)
])
]
)
15 changes: 2 additions & 13 deletions iOS/Features/SaveJourney/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,8 @@ private enum Dependency {
static let msDomain = "MSDomain"
static let msData = "MSData"

static let combineCocoa = "CombineCocoa"
static let msDesignsystem = "MSDesignSystem"
static let msUIKit = "MSUIKit"

static let msImageFetcher = "MSImageFetcher"
static let msCoreKit = "MSCoreKit"

static let msExtension = "MSExtension"
static let msLogger = "MSLogger"
static let msFoundation = "MSFoundation"
Expand All @@ -57,12 +52,10 @@ let package = Package(
dependencies: [
.package(name: Dependency.msDomain,
path: Dependency.msDomain.fromRootPath),
.package(name: Dependency.msUIKit,
path: Dependency.msUIKit.fromRootPath),
.package(name: Dependency.msData,
path: Dependency.msData.fromRootPath),
.package(name: Dependency.msCoreKit,
path: Dependency.msCoreKit.fromRootPath),
.package(name: Dependency.msUIKit,
path: Dependency.msUIKit.fromRootPath),
.package(name: Dependency.msFoundation,
path: Dependency.msFoundation.fromRootPath)
],
Expand All @@ -75,10 +68,6 @@ let package = Package(
package: Dependency.msData),
.product(name: Dependency.msUIKit,
package: Dependency.msUIKit),
.product(name: Dependency.combineCocoa,
package: Dependency.msUIKit),
.product(name: Dependency.msImageFetcher,
package: Dependency.msCoreKit),
.product(name: Dependency.msExtension,
package: Dependency.msFoundation),
.product(name: Dependency.msLogger,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import Combine
import Foundation
import MusicKit

import MSData
import MSDomain
import MSLogger

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import UIKit

import MSDesignSystem
import MSDomain
import MSImageFetcher

final class SaveJourneyMusicCell: UICollectionViewCell {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import UIKit

import MSDesignSystem
import MSExtension
import MSImageFetcher

final class SpotCell: UICollectionViewCell {

Expand Down
9 changes: 0 additions & 9 deletions iOS/Features/SelectSong/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,6 @@ private enum Dependency {
static let msDomain = "MSDomain"
static let msData = "MSData"

static let msImageFetcher = "MSImageFetcher"
static let msCoreKit = "MSCoreKit"

static let combineCocoa = "CombineCocoa"
static let msDesignsystem = "MSDesignSystem"
static let msUIKit = "MSUIKit"
Expand All @@ -58,8 +55,6 @@ let package = Package(
path: Dependency.msDomain.fromRootPath),
.package(name: Dependency.msData,
path: Dependency.msData.fromRootPath),
.package(name: Dependency.msCoreKit,
path: Dependency.msCoreKit.fromRootPath),
.package(name: Dependency.msUIKit,
path: Dependency.msUIKit.fromRootPath),
.package(name: Dependency.msFoundation,
Expand All @@ -72,12 +67,8 @@ let package = Package(
package: Dependency.msDomain),
.product(name: Dependency.msData,
package: Dependency.msData),
.product(name: Dependency.msImageFetcher,
package: Dependency.msCoreKit),
.product(name: Dependency.msUIKit,
package: Dependency.msUIKit),
.product(name: Dependency.combineCocoa,
package: Dependency.msUIKit),
.product(name: Dependency.msLogger,
package: Dependency.msFoundation)
])
Expand Down
Loading

0 comments on commit 302ba8c

Please sign in to comment.