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

[DEV] Android Login UI 구성 및 Firebase Auth 연동 #15

Merged
merged 41 commits into from
Jan 27, 2024

Conversation

yymin1022
Copy link
Contributor

Summary

Android 애플리케이션에 LoginActivity UI를 구성하고 Firebase Auth를 연동하였습니다.

Description

  • LoginActivity의 View 및 VieWModel을 각각 생성하고 구성하였습니다.
  • LoginView의 경우, 기본 Column 위젯으로 App Icon과 Google Sign-In Button을 렌더링합니다. 이 때, Google Sign-In Button은 Google Branding Guide에서 제공하는 이미지 형식을 활용해 구성하였습니다. App Icon은 기본 Android 리소스를 활용해 임시로 구성하여 지정하였습니다.
  • LoginViewModel에서 Google Sign-In을 시작하는 로직을 처리하였습니다. 이 과정에서 Context가 필요한 부분을 Activity 메인 코드와 연동하여 구성하고자 Boolean 형식의 LiveData를 활용하였습니다. 또한, Activity 메인 코드에서 구성된 ActivityResultLauncher를 파라미터로 전달받아 Google Sign-In 로직 이후 연동해 호출하도록 하였습니다.
  • Firebase Auth 객체에 접근하고 실제 Google Sign-In을 구성하는 로직은 별도의 FirebaseAuthUtil 싱글톤클래스(Object)에 작성하였습니다.
  • LoginActivity의 onCreate 생명주기에서 Firebase Auth의 getCurrentUser()를 호출하도록 하여 자동로그인이 가능하도록 작성하였습니다.

좌 - Light / 우 - Dark

P/S. MVVM 아키텍쳐를 제대로 활용한 것이 맞는지 모르겠읍니다.. 맘에안드는 부분이 있다면 탈탈 털어주십쇼 ㅎㅎ;
그리고 Dark모드 상태에서 NavigationBar 색상 정의를 추가해야할 것 같습니다?

@yymin1022 yymin1022 added the dev Develop something new label Jan 26, 2024
@yymin1022 yymin1022 requested a review from ldh019 January 26, 2024 19:34
@yymin1022 yymin1022 self-assigned this Jan 26, 2024
This was linked to issues Jan 26, 2024
@yymin1022
Copy link
Contributor Author

Ktlint가 좀 많이 엄격한데요..
Composable 함수들을 죄다 소문자로 시작하라고 하는거랑 패키지명에 Underscore 넣지 말라고 하는건 비활성화하면 어떨까 싶습니다.

@ldh019
Copy link
Member

ldh019 commented Jan 27, 2024

컴포저블 소문자 시작은 오케바리로 하겠습니다만, 패키지는 underscore 대신 score를 쓰는게,, 아마 안드로이드 컨벤션이..지.. 싶은데..

@yymin1022
Copy link
Contributor Author

변경된 Ktlint 적용까지 완료되었습니다!

Copy link
Member

@ldh019 ldh019 left a comment

Choose a reason for hiding this comment

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

Screen 이름만 바꾸면 거의 뭐 GDE 저리가라 급;;


@AndroidEntryPoint
class LoginActivity : ComponentActivity() {
private val viewModel: LoginViewModel by viewModels()
Copy link
Member

Choose a reason for hiding this comment

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

잘보고 따라했군요 아주 멋져요

import com.gdsc_cau.vridge.R

@Composable
fun LoginView(onTryLogin: () -> Unit) {
Copy link
Member

Choose a reason for hiding this comment

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

컴포즈에서는 화면을 Screen으로 많이 쓰긴 해요! 한번 잡솨보시는거 어떨까요 하하하

Copy link
Contributor Author

Choose a reason for hiding this comment

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

수정완료했습니다~

import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

@HiltViewModel
Copy link
Member

Choose a reason for hiding this comment

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

바람직하네 아주 멋져

Comment on lines +15 to +17
@Inject
constructor() :
ViewModel() {
Copy link
Member

Choose a reason for hiding this comment

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

이거 다 ktlint의 계략인건가

Copy link
Contributor Author

Choose a reason for hiding this comment

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

워닝뜨길래 띄어쓰기 넣어줬지..

import com.google.firebase.auth.FirebaseUser
import com.google.firebase.auth.auth

object FirebaseAuthUtil {
Copy link
Member

Choose a reason for hiding this comment

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

솔직히 말해 당신 안드로이드 쌉고수지

@yymin1022 yymin1022 requested a review from ldh019 January 27, 2024 09:28
Copy link
Member

@ldh019 ldh019 left a comment

Choose a reason for hiding this comment

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

LGTM!

@ldh019 ldh019 merged commit 7872562 into GDSC-CAU:main Jan 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev Develop something new
Development

Successfully merging this pull request may close these issues.

[DEV] Android Firebase Auth 구성 [DEV] Android Login UI 구성
2 participants