음 우선 제목을 이렇게 지어도 되는지 모르겠지만 ,, 위의 동영상을 보시면 텍스트필드의 텍스트값이 변함에 따라 동시에 밑에 라인과 라벨이 생기는 걸 알 수 있습니다! 코드를 보면 (정규식도 사용을 해서 밑에 코드에 생략된 부분이 많습니다 ...) private func actionEmailTextField() { emailTextField.addTarget(self, action: #selector(SignUpFirstViewController.textFieldDidChange(_:)), for: UIControl.Event.allEditingEvents) } private func actionPasswordTextField() { passwordTextField.addTarget(self, action..
보통 회전목마 라고 많이 하는데 수평방향으로 스크롤되는 뷰이다. 스크롤뷰를 사용해서 구현하는 방법, 컬렉션뷰를 이용해서 구현하는 방법이 있는데 이번에는 컬렉션뷰를 이용해서 구현해보겠다. 모든 앱에서 흔히 쓰이는 기능이라 알아두면 좋을 것 같다! 순서를 차근차근 설명해보겠다 ! 내가 만드려고 하는 뷰는 요런 뷰이다! 가운데뷰 양옆 뷰에 알파값, 사이즈를 조절해야한다..! 이게 무슨 소리인지 모르겠으니,, 구현한 모습을 보겠다! 이런 모습이다..! 이것을 활용해서 만들 수 있는 것이 다양하니 알아두자..! // // MoodViewController+Carousel.swift // Mohaeng // // Created by 김승찬 on 2021/09/16. // import UIKit class Carou..

릴리즈를 준비하면서 카카오톡 소셜 로그인 뷰를 맡아서 미리 공부를 해보았다! 스터디하면서 구현을 했었던 적이 있었는데 그 때 엄청 꼬여서 애를 먹었었는데,, 이번에는 천천히 구현을 해보겠다..! 시작하기 전에 카카오 로그인은 사용자를 인증하고 토큰을 발급하는 기능이다. 토큰은 액세스 토큰(Access Token)과 리프레시 토큰(Refresh Token) 두 종류이다. 액세스 토큰은 사용자 정보 기반의 API를 호출하는 데 쓰이고, 리프레시 토큰은 일정 기간동안 사용자 인증 절차를 거치지 않고도 액세스 토큰을 갱신할 수 있도록 해 준다. 사용자의 카카오계정을 인증하는 방식에 따라, iOS SDK를 사용한 카카오 로그인 구현 방법은 두 가지로 나뉜다. 카카오톡으로 로그인 기본 웹 브라우저(Default B..

// UIView+Extension.swift // Journey import UIKit extension UIDevice { var hasNotch: Bool { let bottom = UIApplication.shared.keyWindow?.safeAreaInsets.bottom ?? 0 return bottom > 0 } } 디바이스가 노치가 있는 것인지 없는 것인지 판별하기 위해 Extension으로 따로 빼서 만듦. // ChallengeViewController.swift // Joureny notchCase 라는 함수를 만들어 주었고 (viewDidLoad에 넣어줌) 옆에 이미지에서 보이듯이 노치가 있을 때는 스탬프가 삼각형 구조로 배열되어 있고, 노치가 없을 때는 스탬프가 일렬로 배열되어 ..
Commit Type 1.feat 새로운 기능 추가 (new feature) 2.fix 버그 수정 (bug fix) 3.docs 문서 작성, 수정 (documentation) 4.style 코드 포맷팅, 세미콜론 누락 등 코드 변경이 없는 경우 5.refactor 코드 리팩토링 (refactoring) 6.test 테스트 코드, 리팩토링 테스트 코드 추가 7.chore 빌드 업무 수정, 패키지 매니저 수정 등 (production code 변경이 없는 경우) 8.perf 성능 개선 Issue Title [Commit Type] 이슈 제목 그리고 Commit Type 라벨, 각자 이름 라벨 추가 이슈 body는 체크리스트 타입으로 작성. 비워두진 말기 커밋 메세지 Description [#이슈번호] 해당 ..
Git-Flow main 제품으로 출시될 수 있는 브랜치, 배포 Release(Prod) 버전의 소스가 들어있는 branch 기본적으로 github 저장소를 생성하면 있는 branch이다. 배포이력을 관리하기 위한 용도로 사용한다. develop 다음 출시 버전을 개발하는 브랜치, 개발버전의 소스가 들어있는 branch 일반적으로 Master branch에 병합하기 전 최종 개발버전의 소스가 들어있다. 다음 Release될 버전의 소스라고 생각하면 된다. feature 기능을 개발하는 브랜치 개발자들이 기능개발을 위하여 생성/이용 하는 branch이다. 개발이 완료되면 develop와 병합하여 다른 사람들과 공유한다. release 이번 출시 버전을 준비하는 브랜치 hotfix 출시 버전에서 발생한 버그..
* 마크주석 **// MARK: - Properties** **// MARK: - @IBOutlet Properties** **// MARK: - @IBAction Properties** **// MARK: - View Life Cycle** viewDidLoad(), viewWillAppear()... **// MARK: - Functions** **// MARK: - Extensions** **// MARK: - UITableViewDataSource** **// MARK: - UITableViewDelegate** 프로토콜들 Extension 으로 빼기 * 함수 네이밍 서버통신 서비스함수명 + WithAPI IBAction 동사원형 + 목적어 ex) touchBackButton 뷰 전환 pop, p..