Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
# 한줄 소개
러닝과 일상을 Connect하다! 데일리 러닝앱 서비스 Runnect 🏃

### 앱스토어 링크: [Appstore](https://apps.apple.com/kr/app/runnect-%EC%BD%94%EC%8A%A4%EB%A5%BC-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EA%B3%B5%EC%9C%A0%ED%95%98%EB%8A%94-%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%9F%AC%EB%8B%9D%EC%95%B1/id1663884202) v2.1.0
### 앱스토어 링크: [Appstore](https://apps.apple.com/kr/app/runnect-%EC%BD%94%EC%8A%A4%EB%A5%BC-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EA%B3%B5%EC%9C%A0%ED%95%98%EB%8A%94-%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%9F%AC%EB%8B%9D%EC%95%B1/id1663884202) v2.2.0

![1](https://github.com/thingineeer/Runnect-iOS/assets/88179341/937f9e65-61e5-4298-b703-bc2cf5022bf6)
![2](https://github.com/thingineeer/Runnect-iOS/assets/88179341/ad913367-65f2-4839-9658-e538bccf2d6c)

<br>

### iOS Developers <~ing>
## iOS Developers <~ing>
<img src = "https://github.com/Runnect/Runnect-iOS/assets/88179341/a3633fff-f50b-4afa-a54f-8bd0b3d8668c" width = "40%" height = "40%"> | <img src = "https://github.com/Runnect/Runnect-iOS/assets/88179341/f8884b2b-4cd6-4077-9d9f-683e62f8137f" width = "40%" height = "40%"> |
:---------:|:----------:
[이명진](https://github.com/thingineeer) | [이소진](https://github.com/513sojin) |
Expand Down
12 changes: 8 additions & 4 deletions Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1387,10 +1387,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runnect-iOS/Pods-Runnect-iOS-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runnect-iOS/Pods-Runnect-iOS-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runnect-iOS/Pods-Runnect-iOS-frameworks.sh\"\n";
Expand Down Expand Up @@ -1700,7 +1704,7 @@
CODE_SIGN_ENTITLEMENTS = "Runnect-iOS/Runnect-iOSDebug.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2024.1128.0304;
CURRENT_PROJECT_VERSION = 2025.0513.2138;
DEVELOPMENT_TEAM = 8Q4H7X3Q58;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = "Runnect-iOS/Info.plist";
Expand All @@ -1718,7 +1722,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.1.0;
MARKETING_VERSION = 2.2.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.runnect.Runnect-iOS";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand All @@ -1741,7 +1745,7 @@
CODE_SIGN_ENTITLEMENTS = "Runnect-iOS/Runnect-iOS.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2024.1128.0304;
CURRENT_PROJECT_VERSION = 2025.0513.2138;
DEVELOPMENT_TEAM = 8Q4H7X3Q58;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = "Runnect-iOS/Info.plist";
Expand All @@ -1759,7 +1763,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.1.0;
MARKETING_VERSION = 2.2.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.runnect.Runnect-iOS";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@ extension UIButton {

func press(vibrate: Bool = false,
animated: Bool = true,
for controlEvents: UIControl.Event = .touchUpInside, _ closure: @escaping() -> Void) {
for controlEvents: UIControl.Event = .touchUpInside, _ closure: @escaping () -> Void) {
if #available(iOS 14.0, *) {
self.addAction(UIAction { _ in closure()
if animated { self.clickedAnimation(vibrate: vibrate) }
}, for: controlEvents)
} else {
@objc class ClosureSleeve: NSObject {
let closure: () -> Void
init(_ closure: @escaping() -> Void) { self.closure = closure }
init(_ closure: @escaping () -> Void) { self.closure = closure }
@objc func invoke() { closure() }
}
let sleeve = ClosureSleeve(closure)
Expand Down
2 changes: 2 additions & 0 deletions Runnect-iOS/Runnect-iOS/Global/Supports/SceneDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
let window = UIWindow(windowScene: windowScene)
let navigationController = UINavigationController()

if UserManager.shared.userType != .registered { UserManager.shared.userType = .visitor }

switch courseType {
case .publicCourse:
let courseDetailVC = CourseDetailVC()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ final class UserManager {
@UserDefaultWrapper<String>(key: "refreshToken") public var refreshToken
@UserDefaultWrapper<Bool>(key: "isKakao") public var isKakao
var hasAccessToken: Bool { return self.accessToken != nil }
var userType: UserType = .registered
var userType: UserType = .visitor

private init() {}

Expand All @@ -38,7 +38,7 @@ final class UserManager {
self.isKakao = isKakao
}

func signIn(token: String, provider: String, completion: @escaping(Result<String, RNError>) -> Void) {
func signIn(token: String, provider: String, completion: @escaping (Result<String, RNError>) -> Void) {
authProvider.request(.signIn(token: token, provider: provider)) { [weak self] response in
guard let self = self else { return }
switch response {
Expand Down Expand Up @@ -79,7 +79,7 @@ final class UserManager {
}
}

func getNewToken(completion: @escaping(Result<Bool, RNError>) -> Void) {
func getNewToken(completion: @escaping (Result<Bool, RNError>) -> Void) {
authProvider.request(.getNewToken) { [weak self] response in
guard let self = self else { return }
switch response {
Expand Down
12 changes: 6 additions & 6 deletions Runnect-iOS/Runnect-iOS/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,14 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>CFBundleIconName</key>
<string>AppIcon</string>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>Runnect</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconName</key>
<string>AppIcon</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
Expand All @@ -21,7 +19,7 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>2.1.0</string>
<string>2.2.0</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
Expand All @@ -46,7 +44,9 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>2024.1128.0304</string>
<string>2025.0513.2138</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>kakaokompassauth</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Moya

class NetworkProvider<Provider: TargetType>: MoyaProvider<Provider> {
func request<Model: Codable>(target: Provider, instance: Model.Type, vc: UIViewController, completion: @escaping(Model) -> Void) {
func request<Model: Codable>(target: Provider, instance: Model.Type, vc: UIViewController, completion: @escaping (Model) -> Void) {
self.request(target) { result in
switch result {
/// 서버 통신 성공
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,8 @@ extension CourseDetailVC {
func setData(model: UploadedCourseDetailResponseDto) {
self.uploadedCourseDetailModel = model
self.userId = model.user.id
self.publicCourseId = model.publicCourse.id
self.courseId = model.publicCourse.courseId
self.mapImageView.setImage(with: model.publicCourse.image)
self.profileImageView.image = GoalRewardInfoModel.stampNameImageDictionary[model.user.image]
// 탈퇴 유저 처리
Expand Down Expand Up @@ -358,10 +360,18 @@ extension CourseDetailVC {
$0.centerY.equalTo(navibar)
}

shareButton.snp.makeConstraints {
$0.trailing.trailing.equalTo(moreButton).offset(-50)
$0.centerY.equalTo(navibar)
if UserManager.shared.userType == .visitor {
shareButton.snp.makeConstraints {
$0.trailing.equalTo(self.view.safeAreaLayoutGuide).inset(10)
$0.centerY.equalTo(navibar)
}
} else {
shareButton.snp.makeConstraints {
$0.trailing.equalTo(moreButton).offset(-50)
$0.centerY.equalTo(navibar)
}
}

}

private func setUI() {
Expand All @@ -372,6 +382,12 @@ extension CourseDetailVC {
firstHorizontalDivideLine.backgroundColor = .g3
secondHorizontalDivideLine.backgroundColor = .g5
thirdHorizontalDivideLine.backgroundColor = .g3

guard UserManager.shared.userType != .visitor else {
// 방문자일 경우 더보기 버튼 제거
moreButton.isHidden = true
return
}
}

private func setLayout() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ extension NickNameSetUpVC {
do {
let responseDto = try result.map(BaseResponse<BlankData>.self)
if responseDto.status == 200 {
UserManager.shared.userType = .registered
self.pushToTabBarController()
} else {
self.showToast(message: responseDto.message)
Expand Down