분류 전체보기 206

정산 화면용 컴포넌트 만들기 #2

👨🏻‍💻 오늘의 작업[ 1. 정산 완료/미완료 컴포넌트 만들기 ] 정산 완료일 때, 정산 미완료일 때 컴포넌트를 구현 완료 했다.정산 여부 Bool 값에 따라 다르게 컴포넌트가 표시된다.import UIKitimport SnapKitclass Incomplete: UIView { init(frame: CGRect = .zero, SettleUpStatus: Bool, title: String, location: String, meetingDate: String // ISO 8601 문자열 ) { super.init(frame: frame) configureUI(SettleUpStatus: ..

정산 화면용 컴포넌트 만들기 #1

👨🏻‍💻 오늘의 작업[ 1. 정산하기 카테고리 만들기 ] 정산 화면에서 사용 할 정산하기 카테고리를 만들어 보겠다.import UIKitimport SnapKitimport RxSwiftimport RxGestureclass SettleUpCategorySelectable: UILabel { private let disposeBag = DisposeBag() var isChecked: Bool = false { didSet { toggleStyle() } } /// Tabable 카테고리 컴포넌트입니다. override init(frame: CGRect) { super.init(frame: fram..

회원가입 마무리하기 #3

👨🏻‍💻 오늘의 작업[ 1. 코드리뷰 피드백 후 코드 수정하기 ] [Feat] 회원가입 기능 구현 by heopill · Pull Request #27 · Project-SoBunSoBun/iOS_SoBunSoBun📌 관련 이슈 closed: #11 📌 변경 사항 및 이유 회원가입 기능 구현, 카카오 로그인 기능 구현 위치 권한 요청 기능 및 사진 권한 요청 기능 구현 닉네임 중복 검사 및 닉네임 컴포넌트 구현 프로github.com 🎯 Trouble Shooting[ 1. 0.5 픽셀 표현하기 ]로그인 부분에서 화면을 구현하던 중 2개의 구분선의 두께가 달라 보이는 것을 확인하였다.피그마 상에서는 0.5 픽셀로 되어 있어서 두 개의 구분선의 높이를 0.5를 주었는데나중에 디자이너님과 ..

회원가입 마무리하기 #2

👨🏻‍💻 오늘의 작업[ 1. LoginView에서 isNewUser의 값으로 분기처리하기 ] 카카오로 로그인했을 때 서버에서 받아오는 값 중에서 newUser라는 값이 있다. 해당 값은 Bool로 되어 있는데, true인 경우 신규 가입의 유저를 뜻하고,false인 경우 이미 가입된 유저를 뜻한다. 따라서 newUser가 true 일 때는 이용약관 화면으로 이동시켜 회원가입을 진행시키고,newUser가 false 일때는 홈화면으로 사용자를 이동시켜야 한다. [ 1-1. LoginReactor 코드 변경 ]import ReactorKitimport Foundationimport RxSwiftimport RxKakaoSDKUserimport KakaoSDKUserimport KakaoSDKAuthcl..

이미지의 크기를 제한하기 & 회원가입 마무리하기 #1

👨🏻‍💻 오늘의 작업[ 1. 설정하는 이미지의 크기를 5MB 이하로 제한하기 ] [ 2. 회원가입을 완료한 뒤 보이는 View 구현 ] [ 2-1. 사용자의 정보를 받아오는 API 추가 ]AuthorizedAPI 코드import Foundationimport Moyaenum AuthorizedAPI { case myProfile}extension AuthorizedAPI: TargetType { var baseURL: URL { return URL(string: API_URL)! } var path: String { switch self { case .myProfile: return "/m..

사용자에게 사진 권한 요청하기 #1

👨🏻‍💻 오늘의 작업[ 1. 사용자에게 사진 권한 요청하기 ] [ 1-1. Info.plist에 Privacy - Photo Library Usage Description 추가 ] [ 1-2. InfoPlist.strings에 PhotoPermissionMessage 추가 ] Info.plist에서 Value에 사용하기 위해 InfoPlist.strings에 PhotoPermissionMessage를 작성하였다. [ 1-3. Photos 라이브러리를 사용하여 이미지 Picker를 구현 ] 우선 Photos 라이브러리를 사용하기 위해 import 추가import UIKitimport ReactorKitimport SnapKitimport RxSwiftimport RxCocoaimport Pho..

이용약관 동의 화면 만들기 #3, 닉네임 설정 화면 만들기

👨🏻‍💻 오늘의 작업[ 1. 이용약관 동의 화면에서 상세 보기 버튼을 눌렀을 때 화면 이동 ] 1. Service2. Privacy3. Location 현재 3개의 약관 화면은 임시의 title만 설정해 두었다.약관의 예시는 다음과 같다. 추후에 약관의 내용이 정해지면 수정 예정이다. [ 2. 초기 닉네임 설정 화면 구현 ] 미리 만들어둔 닉네임 유효서 검사 컴포넌트를 사용해서 닉네임과 프로필 이미지를 설정하는 화면을 구현했다.

이용약관 동의 화면 만들기 #2

👨🏻‍💻 오늘의 작업[ 1. CoreLoaction 추가해서 위치 사용 권한 받기 ] 해당 화면을 구현하기 위해 CoreLocation을 사용하려고 한다.해당 기능을 구현하기 위해 LocationManager를 작성하였다.//// LocationManager.swift// SoBunSoBun//// Created by 허성필 on 10/17/25.//import UIKitimport CoreLocationimport RxSwiftimport RxCocoaclass LocationManager: NSObject { static let shared = LocationManager() private let locationManager = CLLocationManager() ..

CoreLocation이란 뭘까?

📍 CoreLocationSwift의 CoreLocation은 iOS 기기의 위치 기반 서비스를 제공하는 프레임워크로, GPS, Wi-Fi, 셀룰러, 블루투스 등 기기의 내장 수신 장치들을 활용하여 지리적 위치, 고도, 방향, 속도 등의 위치 데이터를 수집하고 처리할 수 있다. Core Location | Apple Developer DocumentationObtain the geographic location and orientation of a device.developer.apple.com 🎯 CoreLocation의 주요기능[ 1. 위치 추적 ]GPS, Wi-Fi, 셀룰러, iBeacons 등을 통해 장치의 현재 위치 정보를 얻을 수 있다. 지정한 거리를 초과하여 움직였을 경우 위치 정..

iOS/Swift 2025.10.17