Skip to content
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

feat: 카카오 로그인 로직 구현 #98

Merged
merged 12 commits into from
Nov 26, 2023
Merged

feat: 카카오 로그인 로직 구현 #98

merged 12 commits into from
Nov 26, 2023

Conversation

loinsir
Copy link
Collaborator

@loinsir loinsir commented Nov 25, 2023

🧑‍🚀 PR 요약

  • 로그인 화면 UI 수정
  • 카카오 로그인 로직 구현
  • EndPoint 팩토리 구현
  • UserDefault 래퍼 구현 및 AuthManager에 로그인 여부 프로퍼티 설정

📌 변경 사항

Note

로그인 화면 UI를 변경했습니다.

  • 버튼위에 라벨과 이미지가 올려져 있어서, 터치가 안되는 버그가 있었습니다.
  • iOS 15.0부터 사용가능한 UIButton.Configuration을 사용해 버튼을 구현하여 해결했습니다.

Note

LoginEndPointFactory 를 선언했습니다.

  • 팩토리 메서드로 EndPoint를 찍어낼 수 있도록 했습니다.
  • 필요한 EndPoint들을 미리 설정해두고, Worker에서 사용하시면 될 것 같습니다.
  • 다만, Factory 객체 프로퍼티에 대해서는 프로토콜로 추상화해서 의존성 역전 법칙을 지키도록 해주세요.

Note

카카오 로그인 로직을 구현했습니다.

  • LoginInteractor에서는 큰 트랜잭션 로직을 수행하고, LoginWorker에게 세부적인 로직을 수행하게 하는 흐름입니다.
  • 회원가입 여부 판단 API를 제외하고 나머지 부분만 우선 구현했습니다.
  • 회원가입 여부에 따라 닉네임 수정 뷰, 로그인 수행 후 홈 뷰 routing으로 분기처리 메서드를 타도록 했습니다.
  • 회원가입 완료 까지 처리하려면 SignUpScene의 코드도 수정해야 하기에, 이후 부분은 이슈를 파서 처리하겠습니다.
  • 전에 CleanSwift 아키텍처에 대해 공부 할 때, 스레드 관리를 잘 해주어야 한다는 부분이 생각났습니다.
    • presenter 메서드를 호출 할 때와 카카오 SDK API 메서드를 호출 할 때, MainActor로 처리하면서 그런 부분에 대해 느꼈습니다.
    • Swift Concurrency 공부를 해야겠다는 생각이 강하게 드네요...
📸 ScreenShot

Simulator Screen Recording - iPhone 15 Pro - 2023-11-26 at 03 09 41

Linked Issue

close #85

@loinsir loinsir marked this pull request as ready for review November 25, 2023 18:14
@loinsir loinsir linked an issue Nov 25, 2023 that may be closed by this pull request
2 tasks
Copy link
Member

@anyukyung anyukyung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

로직상 문제되거나 하는 부분은 없는 것 같아 궁금한 부분 위주로 남겨놓았습니다!
수고하셨어요 😊

Copy link
Collaborator

@chopmozzi chopmozzi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

혹시 버튼 터치 interactive false줘도 안됐나요? 암튼 고생하셨습니당당~

bodyParameters.updateValue(socialToken, forKey: "accessToken")

return EndPoint(
path: "/oauth/kakao",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

얘네 다 static으로 관리하는건 별론가요?? 각종 상수 String들

Copy link
Collaborator Author

@loinsir loinsir Nov 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

음 static으로 선언하면 외부에 값을 노출시키게 되는데 다른 이점이 있나요?
재사용을 하지 말아야 할 값이라 생각되어서 우선 저렇게 선언했었습니다...!

@loinsir
Copy link
Collaborator Author

loinsir commented Nov 26, 2023

혹시 버튼 터치 interactive false줘도 안됐나요? 암튼 고생하셨습니당당~

아하...시도해보지는 못했는데, 버튼에 직접 설정하면 버튼 위에 설정되는 컴포넌트들의 Constraint 설정 코드를 없앨 수 있어서 바꾸었습니다 ㅠㅠ

@loinsir loinsir merged commit 886da71 into iOS/dev Nov 26, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: 카카오 로그인 구현
3 participants