-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Team01][iOS] 로그인 기능 구현, SPM 적용 및 임시 달력 적용 #310
base: team01
Are you sure you want to change the base?
Conversation
임시데이터라 리팩토링 해야함
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고민하신 부분들을 잘 구현하신 것 같아서 좋네요!
테이블 뷰나, 컬렉션 뷰 셀을 눌러 다음 화면으로 이동 후 다시 뒤로가기 버튼을 누르면 기존에 눌렀던 셀이 해제되어있지 않더라구요.
제가 선택됐을때의 색을 지정해서 생긴 문제였고, 그 코드를 지워주니 원활하게 작동했습니다.
위의 부분에 대해서는 cell을 reuse하는 경우에는 이전에 설정한 값들이 남아있을 수 있다는 사실을 항상 기억해두면 좋습니다!
3주 동안 혼자 진행하시느라 힘드셨을텐데 고생 정말 많으셨습니다 :)
마지막 프로젝트도 화이팅하시길 바라요!
static let backButton: UIBarButtonItem = { | ||
let buttonItem = UIBarButtonItem(title: "뒤로", style: .plain, target: nil, action: nil) | ||
buttonItem.tintColor = .black | ||
return buttonItem | ||
}() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
View가 Static하게 선언된다면 해당 View를 사용하는 모든 곳에서 변경 사항의 영향을 받게될 것 같네요..!
View의 생성 코드를 줄이고 싶으신 의도라면 factory method를 작성하는 게 방법이 될 것 같습니다.
gitHubLoginButton.snp.makeConstraints { | ||
$0.centerX.equalToSuperview() | ||
$0.centerY.equalToSuperview().offset(-40) | ||
$0.width.equalTo(300) | ||
$0.height.equalTo(60) | ||
} | ||
|
||
googleLoginButton.snp.makeConstraints { | ||
$0.centerX.equalToSuperview() | ||
$0.centerY.equalToSuperview().offset(40) | ||
$0.width.equalTo(300) | ||
$0.height.equalTo(60) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이런 경우에는 StackView를 만들어서 묶어주는 것도 좋아 보입니다!
중복적인 constraints를 줄일 수 있고, 소셜로그인 같은 경우엔 종류가 늘어날 가능성이 높으니까요 :)
참고삼아 말씀드리자면 실제 앱을 배포하기 위해서는 소셜로그인을 구현한 경우엔 apple sign up 버튼도 필수적으로 구현이 되어야 합니다ㅎㅎ
searchResult = completer.results | ||
tableView.reloadData() | ||
let result = completer.results | ||
dataSource.didGetTheResults(result: result) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👏👏👏👏👏👏👏
class LoginManager { | ||
|
||
static let shared = LoginManager() | ||
|
||
private let clientId = "3cc980e29d87204c53ed" | ||
private let clientSecret = "" | ||
|
||
func requestCode() { | ||
let scope = "user,email" // 사용자의 깃헙에서 접근하려고 하는 위치. default는 empty list | ||
let urlString = "https://github.com/login/oauth/authorize?client_id=\(clientId)&scope=\(scope)" | ||
if let url = URL(string: urlString), UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url) } | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이번에는 github 로그인만 구현 시도하신 거죠?👀
LoginManager 같은 타입은 추상화하기에 아주 적합한 타입 같아 보입니다ㅎㅎ
여러 소셜로그인을 구현한다면 공통의 protocol을 사용하도록 할 수도 있겠네요.
super.viewWillDisappear(false) | ||
navigationController?.tabBarController?.tabBar.isHidden = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
animated는 무조건 false로 하는 걸까요?
그리고 viewWillDisappear에서 탭바를 나타내주는 동작이 있다면 혹시 사라져야하는 때도 있나요?
} | ||
|
||
calendarView.snp.makeConstraints { | ||
$0.top.leading.trailing.bottom.equalTo(view.safeAreaLayoutGuide) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이렇게 모든 변에 같은 constraint를 설정하는 경우에는 edges를 사용할 수 있습니다 :)
코멘트 확인하신 후에 직접 머지해주시면 되겠습니다 :) 화이팅! |
안녕하세여 롤로!
벌써 3주가 흘러.. 어느덧.. 마지막 PR이네염
3주간 감사했었습니다! 그럼 마지막 PR도 잘 부탁드립니다 :)
작업 내용
구현 상황
고민과 해결
이번 작업은 삽질의 연속이었습니다.
테이블 뷰나, 컬렉션 뷰 셀을 눌러 다음 화면으로 이동 후 다시 뒤로가기 버튼을 누르면 기존에 눌렀던 셀이 해제되어있지 않더라구요.
제가 선택됐을때의 색을 지정해서 생긴 문제였고, 그 코드를 지워주니 원활하게 작동했습니다.
또,
Alamofire
를 처음 사용해봐 학습을 하는데 시간이 꽤 소요되었습니다.OAuth의 기능은 학습 후 구현해보려 합니다!
Pod 파일을 지울 때에도, 기존에 설정해놨던 것들을 전부 제거해줘야하는데 그 부분을 몰라 계속 구글링 해 가면서 해결했습니다!
감사합니당 :)