전체 글27 Android 에서 Google 소셜 로그인을 구현해보자 모바일 앱들을 보면 구글로 로그인!(혹은 카카오 / 네이버 등등) 과 같은 소셜 로그인을 지원하는 경우가 많은데오늘은 이 중 구글 로그인을 구현해볼겁니다. 일단 Firebase 에서 프로젝트를 만들고(로그인 기능을 넣을것이기 때문에 SHA -1 인증서가 필요합니다)앱과 프로젝트를 연동해줍니다. 그 후 google-services.json 을 app 수준의 디렉토리에 넣어주면 됩니다. 이제 종속성을 추가해줍시다.Project Level 의 build.gradle 에 아래 구문을 작성하고id("com.google.gms.google-services") version "4.4.1" apply false App Level 의 build.gradle 에 gms 를 추가해줍니다.//libs.versions.toml.. 2024. 6. 11. Jetpack Compose 에서 기존 View 를 사용하고자 한다면! Compose 는 분명 개발에 있어 편리한건 사실이지만 아직 Composable 로써 넘어오지 않은 UI 요소들도 분명 존재합니다.이런 부분들은 Compose 에서는 AndroidView 를 활용하여 사용할 수 있습니다.(기존의 XML View 와도 혼용해서 사용할 수 있는 이유입니다.)기본적인 틀은 다음과 같습니다.@Composable@UiComposablefun AndroidView( factory: (Context) -> T, modifier: Modifier = Modifier, update: (T) -> Unit = NoOpUpdate) { AndroidView( factory = factory, modifier = modifier, .. 2024. 5. 27. LiveData 의 postValue() vs setValue() 의 차이점, 언제 사용해야 할까? 프로젝트를 MVVM 형태로 구현하다 보면 ViewModel 에서 LiveData 를 쓰는 경우가 많습니다. 보통 private 로 선언된 MutableLiveData 의 value 를 변경하고 public 으로 선언된 LiveData 의 값을 관측하는 식으로 사용합니다. 그런데 이 과정에서 Coroutine 을 사용하다 보면 아래 상황에서 오류가 발생합니다. DB 작업을 하는 백그라운드 스레드에서 setValue 를 호출 그리고 이러한 오류를 마주치게 되죠 java.lang.IllegalStateException: Cannot invoke setValue on a background thread setValue 메서드는 백그라운드에서 호출할 수 없다고 합니다. 그래서 백그라운드에서는? postValue .. 2024. 3. 29. [Android Gradle] 버전 카탈로그로 Gradle 관리하기 작년 6월? 이후로 안드로이드 스튜디오 업데이트를 무시하고 있다가 이번에 업데이트를 하고 New Project 로 플젝을 만들었는데 Gradle 쪽이 뭔가 바뀌었더군요...? implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.too.. 2024. 3. 28. 이전 1 2 3 4 5 ··· 7 다음