- 안드로이드/kotlin(18)
-
안드로이드 코틀린 구글 로그인으로 authCode 받아오기
중요데이터 1.sha-1 지문 (구글클라우드 콘솔 안드 유형에 등록할 키) 2.안드 프로젝트 패키지 (구글클라우드 콘솔 안드 유형에 등록할 패키지) 3.클라이언트ID (구글클라우드 콘솔 웹 유형 등록후 받아올 클라이언트 ID) 이번에 소개할 구글 로그인은 파이어베이스를 사용하지 않고 자체 서버에서 회원정보를 관리 하는 환경에서 구글로그인을 사용하는 방식입니다. 자체 서버에서 구글 로그인 정보를 받아와야 하기 때문에 안드에서는 구글서버로 부터 authCode 값을 받아 서버로 넘겨 주어야 하는데요. 이 포스팅에서는 구글 서버로 부터 authCode를 받아오는 과정을 진행해보겠습니다. 코드를 받아온후 부터는 서버 api를 사용하여 서버에 요청을 보내고 응답 받아 로그인 완료 처리를 진행하면 되겠습니다. 의존..
2024.03.09 -
의존성 주입과 hilt
- 인터페이스 사용시 bind module - 빌더 패턴 사용시 provide module 의존 관계란 무엇인가? 객체지향에서 의존관계라는 것은 클래스들이 서로를 알고 있는지를 말하는 것입니다. 위의 코드를 보면 클래스 ViewModel에서 FirebaseRepository객체를 생성해서 사용하고 있습니다. 이렇게 ViewModel이 FirebaseRepository를 알고 있을때 ViewModel이 FirebaseRepository에 의존한다고 할수 있습니다. 위의 같은 경우는 FirebaseRepository는 ViewModel을 알고 있지 못합니다. FirebaseRepository는 ViewModel을 의존 하지 않습니다. 여기서 FirebaseRepository는 파이어베이스에서 언어목록을 가져..
2024.02.19 -
Android kotlin jitpack로 라이브러리 사용하기
jitpack은 깃허브에 올라온 오픈소스 라이브러리를 사용, 배포할수 있게 해주는 플랫폼입니다. 라이브러리 추가하기 settings.gradle.kts 에 아래와 같이 추가 해줍니다. dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven("https://jitpack.io")// jitpack 추가 } }
2024.01.18 -
코틀린 안드로이드 스튜디오 다크모드 비활성화
디바이스 기기의 설정이 다크모드로 되어 있을때 앱을 실행하면 다크모드 화면으로 변경되는데 그렇게 되면 다크모드 일때와 아닐때 두가지 모드에 맞춰 개발을 해야 합니다. 이럴때 그냥 기기 설정이 다크모드 여도 앱에서는 다크모드를 비활성화 할수가 있는데요 간단히 한줄만 변경해주면 됩니다. res > values > themes > themes.xml (night) 파일을 수정합니다. parent="Theme.Material3.DayNight.NoActionBar" 의 DayNight을 Light 으로 바꿔주면 다크모드가 비활성화 됩니다.
2024.01.10 -
코틀린 retrofit2 레트로핏2 사용하기
retrofit2 라이브러리 retrofit2는 무엇인가? REST API 통신을 위해 구현된 OkHTTP HTTP 통신을 간편하게 만들어주는 라이브러리를 말합니다. 동일 Squareup사의 OkHttp 라이브러리의 상위 구현체라고 보시면 되겠습니다. retrofit2의 장점 3가지 1. OkHTTP 사용 시에 AsyncTask를 통해 비동기로 실행하여 속도가 느립니다. 하지만 retrofit2에서는 자체적 비동기 실행과 스레드 관리가 가능하여 속도가 빠릅니다. (AsyncTask의 3~10배 성능 차이가남) 2. 함수 호출 시에 파라미터를 넘겨주어 작업량이 감소 합니다. 3. Interface 내에서 어노테이션을 사용하여 호출 함수를 미리 지정. 구현 없이 해당 함수를 호출만 해주면 retrofit2이..
2024.01.04 -
코틀린 fragment 화면 전환시 이전 화면 유지하기
fragment를 사용한 바텀 네비게이션에서 화면을 전환하고 다시 원래 화면으로 돌아오면 화면이 유지 되지 않고 초기화 되는 문제점이 발견되었습니다. 이번 포스팅에서 화면 전환을 해도 fragment가 유지 되도록 코드를 짜보겠습니다. 먼저 fragment xml을 만들어 줍니다. fragment_monitoring.xml MonitoringFragment.class class MonitoringFragment : Fragment() { private var mBinding: FragmentMonitoringBinding? = null private val binding get() = mBinding!! override fun onCreateView( inflater: LayoutInflater, con..
2023.12.17