-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add SignUpFlows * Feat: Signup Flow - 자기소개까지 * Mod: ResizableTextView * Add LocationField * Add: Like * Feat LocationInput * Feat: Auth * Add: Kakao Service * Feat: SignUp, Auth * Update: Dim 색상 값 변경 * [#74]Feat: 경고창 클래스 커스텀 - ReportAction enum 커스텀 - title, message, contentView, 왼쪽, 오른쪽, dim action 추가 함수 구현 - UIViewController에서 경고창 표시하는 함수 구현 - Color -> Image로 변환 함수 구현 => button에 State에 따른 색상을 넣기 위함 - addAction Custom -> button 혹은 view에서 동작 구현을 위함 * [#74]Update: 디자인 변경 사항 반영 * [#74]Feat: TimerActiveAction 추가 -> 멈추는 이벤트에 따라 케이스를 나눔 - 프로필 더블 클릭, 다른 화면으로 이동할 때는 pauseView를 표시해야하고 - report 버튼을 클릭할 때는 pauseView를 표시하지 않아야 해서 - TimerActiveAction 케이스를 기준으로 Timer를 재개, 멈춤 구현 - info button tap, report button tap 합성 -> infoView를 hidden 시키는 두 가지 액션 처리 * [#74]Feat: report 버튼 클릭 시, 타이머를 멈추고 info view를 hidden하고 alert를 표시 - 현재는 차단하기를 했을 떄, 데이터 또는 dataSource에서 item을 삭제하지 않고, 0.5초 후에 scroll하는 방식으로 구현 - dimview를 클릭하면 타이머가 다시 시작되도록 이벤트 전달 - reject 버튼 이벤트는 애니메이션 1초여서 1초후에 다음 유저로 넘어가도록 구현 * Fix: Add MyPageRepository * [#74]Feat: 신고하기 팝업 커스텀 - ContentView 자체를 커스텀해서 content view를 파라미터로 받아서 팝업에 표시하도록 구현 - left, right -> top, bottom으로 수정 - withSeprator 플래그를 만들어서 구분선 유뮤 구현 - bottom button(마지막 버튼)은 무조건 separator 있음 * [#74]Feat: Toast 메시지 구현 - Toast-Swift 참고 - 디폴트 값 설정 * Update: 컴포넌트의 접근 지정 연산자 수정 및 이름 수정 * Update: 테스트 이미지로 임시 변경 - 서버 연동 전까지는 해당 이미지로 테스트하고자 함 * [#74]Feat: 차단, 신고 시, .none 상태로 업데이트 후, 다음 셀로 스크롤 구현 - user info box 팝업에서 report(느낌표) 버튼 클릭 시, 멈춤 화면 디자인 반영 - 차단 or 신고 팝업 표시 시, 멈춤 화면에서 이미지, 텍스트 히든 - 중지했을 때의 동작을 enum으로 나눠서 처리할 필요 없는 거 같아서 bool로 변경 - 차단 or 신고 시, 멈춤 화면 없애고 dim view 표시 후, none 상태로 설정 * Update: 그레디언트 색상 추가 * [#79]Feat: 좋아요 버튼 클릭 시, 원형 timer, progress 그레디언트 적용 * [#74]Feat: 마지막 더미 유저 Footer View 추가 - footer와 section의 제약조건 설정 * [#74]Feat: 좋아요 버튼 액션 구현 - TimeState에 none 케이스 생성 - 좋아요, 싫어요, 신고, 차단 시, 타이머, 프로그래스를 초기화하기 위함 - 13초에서 15초로 디자인 반영 - vc에서는 scroll만 처리하고 나머지는 cell에서 처리할 수 있도록 구현 * Mod: self capturing in closure * Add: Fastlane (#78) * Add: Fastlane fastlane * [#74]Feat: 신고하기 팝업 커스텀 - ContentView 자체를 커스텀해서 content view를 파라미터로 받아서 팝업에 표시하도록 구현 - left, right -> top, bottom으로 수정 - withSeprator 플래그를 만들어서 구분선 유뮤 구현 - bottom button(마지막 버튼)은 무조건 separator 있음 * [#74]Feat: Toast 메시지 구현 - Toast-Swift 참고 - 디폴트 값 설정 * Update: 컴포넌트의 접근 지정 연산자 수정 및 이름 수정 * Update: 테스트 이미지로 임시 변경 - 서버 연동 전까지는 해당 이미지로 테스트하고자 함 * [#74]Feat: 차단, 신고 시, .none 상태로 업데이트 후, 다음 셀로 스크롤 구현 - user info box 팝업에서 report(느낌표) 버튼 클릭 시, 멈춤 화면 디자인 반영 - 차단 or 신고 팝업 표시 시, 멈춤 화면에서 이미지, 텍스트 히든 - 중지했을 때의 동작을 enum으로 나눠서 처리할 필요 없는 거 같아서 bool로 변경 - 차단 or 신고 시, 멈춤 화면 없애고 dim view 표시 후, none 상태로 설정 * Update: 그레디언트 색상 추가 * [#79]Feat: 좋아요 버튼 클릭 시, 원형 timer, progress 그레디언트 적용 * [#74]Feat: 마지막 더미 유저 Footer View 추가 - footer와 section의 제약조건 설정 * [#74]Feat: 좋아요 버튼 액션 구현 - TimeState에 none 케이스 생성 - 좋아요, 싫어요, 신고, 차단 시, 타이머, 프로그래스를 초기화하기 위함 - 13초에서 15초로 디자인 반영 - vc에서는 scroll만 처리하고 나머지는 cell에서 처리할 수 있도록 구현 * CI_CD: add pkg extension to .gitignore and fastlane 인증 순서 변경 * CICD: TestFlight 수출 규정 암호화 규정 스킵 info plist에 추가 ITSAppUsesNonExemptEncryption --------- Co-authored-by: LeeSeungmin <[email protected]> * Update: layoutSubview() 호출될 때 layer의 frame 설정 및 mask path 설정 - borderWidth 삭제 - cgcolor로 설정 * Refactor: 좋아요, 싫어요 중복 클릭 방지 - 최근 클릭 후, 5초 딜레이 - 필요없는 코드 삭제 * Add: Interceptor * Fix: AuthRepository Init --------- Co-authored-by: LeeSeungmin <[email protected]>
- Loading branch information
Showing
209 changed files
with
11,130 additions
and
1,031 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -80,4 +80,4 @@ fastlane/*.env | |
# App Packaging | ||
*.ipa | ||
*.dSYM.zip | ||
*.dSYM | ||
*.dSYM |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
// | ||
// AppData.swift | ||
// Core | ||
// | ||
// Created by Kanghos on 2024/03/02. | ||
// | ||
|
||
import Foundation | ||
|
||
public struct AppData { | ||
private enum Key: String { | ||
case accessToken | ||
case phoneNumber | ||
case accessTokenExpiredIn | ||
} | ||
public struct Auth { | ||
@Storage<String>(key: Key.accessToken.rawValue, defaultValue: "") | ||
public static var accessToken | ||
|
||
@Storage<Int>(key: Key.accessTokenExpiredIn.rawValue, defaultValue: 0) | ||
public static var accessTokenExpiredIn | ||
|
||
public static var needAuth: Bool { | ||
accessToken.isEmpty | ||
} | ||
} | ||
|
||
public struct User { | ||
@Storage<String>(key: Key.phoneNumber.rawValue, defaultValue: "") | ||
public static var phoneNumber | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
// | ||
// JSONStorage.swift | ||
// Core | ||
// | ||
// Created by Kanghos on 5/14/24. | ||
// | ||
|
||
import Foundation | ||
|
||
extension UserDefaults { | ||
|
||
public func setCodableObject<Object>( | ||
_ object: Object, forKey: String | ||
) throws where Object: Encodable { | ||
|
||
let data = try JSONEncoder().encode(object) | ||
self.set(data, forKey: forKey) | ||
} | ||
|
||
public func getCodableObject<Object>( | ||
forKey: String, | ||
as type: Object.Type | ||
) throws -> Object where Object: Decodable { | ||
|
||
guard let data = self.data(forKey: forKey) else { | ||
throw NSError(domain: "UserDefaults", code: 0, userInfo: nil) | ||
} | ||
return try JSONDecoder().decode(type, from: data) | ||
} | ||
} | ||
|
||
@propertyWrapper | ||
public struct CodableStorage<T: Codable> { | ||
private let key: String | ||
private let defaultValue: T? | ||
|
||
public init(key: String, defaultValue: T? = nil) { | ||
self.key = key | ||
self.defaultValue = defaultValue | ||
} | ||
|
||
public var wrappedValue: T? { | ||
get { | ||
guard let object = try? UserDefaults.standard.getCodableObject(forKey: key, as: T.self) else { | ||
return defaultValue | ||
} | ||
return object | ||
} | ||
set { | ||
if newValue == nil { | ||
UserDefaults.standard.removeObject(forKey: key) | ||
} | ||
try? UserDefaults.standard.setCodableObject(newValue, forKey: key) | ||
} | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
// | ||
// Storage.swift | ||
// Core | ||
// | ||
// Created by Kanghos on 2024/03/02. | ||
// | ||
|
||
import Foundation | ||
|
||
@propertyWrapper | ||
public struct Storage<T> { | ||
private let key: String | ||
private let defaultValue: T | ||
|
||
public init(key: String, defaultValue: T) { | ||
self.key = key | ||
self.defaultValue = defaultValue | ||
} | ||
|
||
public var wrappedValue: T { | ||
get { | ||
return UserDefaults.standard.object(forKey: key) as? T ?? defaultValue | ||
} | ||
set { | ||
UserDefaults.standard.setValue(newValue, forKey: key) | ||
} | ||
} | ||
} |
Oops, something went wrong.