안드로이드

    파이어베이스로 구글 소셜로그인

    파이어베이스로 구글 소셜로그인

    오늘 해볼 것은 파이어베이스와 구글 클라우드 플랫폼을 이용한 구글 소셜로그인 구현입니다. 총 3단계로 진행할 예정 파이어 베이스 프로젝트 생성 구글 클라우드 플랫폼 프로젝트 생성 액티비티에서 소셜 로그인 구현 진행과정은 파이어베이스 문서의 Google 로그인을 참고하고 있습니다. 문서를 펼치고 준비가 됬다면 시작합니다. 프로젝트 만드는 법은 아래 게시글에 나와있습니다. Firebase 시작하기 Firebase Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다. firebase.google.com 파이어베이스에 개인 프로젝트를 추가하는 방법에 대해 다뤄 huzit.tistory.com 구글 클라우드 플랫폼 프로젝트 생성 파이어베이스의 기본..

    Inflate

    Inflate

    Inflate란? 사전적 정의로 '부풀리다, 올리다'라는 의미를 가지고 있다. 그렇다면 무엇을 부풀린다는 걸까? 안드로이드에서 inflate는 xml에 표기된 레이아웃들을 메모리에 객체화시키는 행동이다. 쉽게 말해, xml코드들을 객체화해 소스코드에서 사용하기 위함이다. 기본적으로 안드로이드에서 화면(Activity 단위)을 만들면 소스코드, 레이아웃.xml 이렇게 2개가 생성된다. 이때 Activity에서 setContentView() 함수가 바로 xml을 객체화시키는 Inflate동작이다. class MainActivity : AppCompatActivity(){ override fun onCreate(savedInstanceState: Bundle?){ super.onCreate(savedInsta..

    뷰 바인딩(viewBInding)

    뷰 바인딩(viewBInding)

    소개말 안드로이드 프로젝트를 처음 생성해서 뷰에 데이터를 표현할 때 가장 많이 쓰는 함수는 "View.findViewById(id: Int)" 일 것입니다. 하지만 뷰에 쓰는 컴포넌트가 많아질수록 반복해서 호출해야 하고, 코드가 길어지는 문제를 야기합니다. 우리는 바인딩을 통해 이러한 문제를 해결해보려 합니다. 코틀린에선 findViewById를 쓰지 않고 컴포넌트의 id를 통해 바로 접근할 수 있었지만 androidStudio 4.1에서 kotlin-android-extensions 플러그인이 다양한 문제로 인해 기본적으로 제공되지 않으면서 id를 통해 접근할 수 없게 되었다. 1. 바인딩의 종류 바인딩에는 2가지 방법이 있습니다. 간단하게 뷰를 가져오기만 하는 뷰 바인딩, 바인딩 오브젝트를 통한 양방..

    Retrofit

    Retrofit

    소개 Retrofit2는 안드로이드 REST API 통신 라이브러리입니다. 통신 라이브러리 중 Volley와 함께 가장 많이 사용되는 라이브러리입니다. Retrofit을 사용한 이유는 성능과 간단한 구현, Type-Safe때문입니다. 소개는 여기까지 하고 바로 구현으로 들어가겠습니다. 구현 Retrofit을 사용하려면 세 가지 클래스가 필요합니다. JSON형태의 모델 클래스 HTTP 작업을 정의하는 (onSuccess/onFail) 인터페이스 Retrofit.Builder를 선언한 클래스(baseUrl과 Converter 등을 선언, Interceptor를 추가하여 응답을 가공할 수도 있다.) 1. Empty Activity생성. (API Level 30) 2. build.gradle 수정 Retrofi..

    RecyclerViewItemClickEvent

    RecyclerViewItemClickEvent

    1. 리사이클 러뷰(RecyclerView) 아이템 클릭 이전 글에선 리사이클러뷰를 기본 사용법과 예제를 살펴봤습니다. 이제 리사이클 러뷰 아이템 클릭 이벤트를 처리하는 방법을 알아보겠습니다. 리스트뷰를 써본 경험이 있다면 리스트뷰의 아이템 클릭을 setOnItemClickListener()를 통해 아이템 클릭 이벤트를 처리해보셨을 겁니다. 리사이클러뷰는 리스트뷰처럼 setOnItemClickListener()와 유사한 방법을 통해 아이템 클릭이벤트를 설정할 수 없습니다. 리사이클 러뷰에선 기본적으로 제공해주는 아이템 클릭 이벤트 메서드가 없습니다. 그렇다면 리사이클러뷰에서 아이템 클릭 이벤트를 처리하는 방법은 없는 걸까요? 2. 아이템 클릭 처리주체 리스트뷰는 유사한 형태와 크기의 아이템 뷰를 한 줄로..

    RecyclerView

    RecyclerView

    RecyclerView란? 1. 정의 안드로이드 공식문서에는 A flexible view for providing a limited window into a large data set.로 소개하고 있습니다. 번역하면 '대규모 데이터셋을 제한된 범위에 제공하기 위한 유연한 뷰'입니다. 조금 이해를 돕기 위해 설명을 덧붙이자면 사용자가 관리하는 데이터 셋을 아이템 단위로 구성하여 화면에 출력하는 뷰 그룹으로 제한된 화면에 제공하기 위해 스크롤 가능한 리스트로 표시해주는 위젯'이라 말할 수 있습니다. 이름으로 넘어가서 왜 리 사이클러 뷰(RecyclerView)라고 정했을까요? 그 이유는 리스트 뷰(ListView)와 다르게 매번 리스트 항목이 갱신될 때마다 기존에 사용했던 아이템 뷰를 재활용하기 때문입니다...

    BottomNav만들기

    BottomNav만들기

    소개 공식문서에 나와있는 내용을 참고하면서 하겠습니다. 구현 1. 의존성 주입 프로젝트를 생성하면 기본적인 의존성은 다 주입된 상태여서 따로 해줄 작업이 없지만 만약 의존성 주입이 안돼있다면 공식 사이트의 안내에 따라 주입해주면 됩니다. 프로젝트 레벨의 build.gradle allprojects { repositories { google() jcenter() } } 모듈 레벨의 build.gradle dependencies { // ... implementation 'com.google.android.material:material:' // ... } 2. 메뉴에 들어갈 item정의 우선 리소스 타입이 Menu인 레이아웃을 생성합니다. new -> androidResourceFile ResourceTy..

    Activity to Fragment, Fragment to Fragment

    Activity to Fragment, Fragment to Fragment

    Fragment란? 사전적 의미로 Fragment란 조각을 의미한다. 우리가 앱을 개발하다보면 액티비티에 부분적인 화면을 추가하고 싶을 때가 있다. 특히, 한 액티비티에서 여러 화면이 전환되게 만들고 싶을 때 이를 도와줄 수 있는 것이 Fragment이다. 특징 1. 프래그먼트의 특징 Fragment는 기본적으로 액티비티 위에서 동작하기 때문에 비슷한 구조와 특징을 갖고있다. 액티비티간 이동은 시스템에서 Intent로 하듯이, Fragment는 Fragment Manager를 통해 이동한다. 이때 Fragment는 Activity위에서 동작하기 때문에 Intent가 아닌 메소드 호출을 통해 이동하게된다. 2. 프래그먼트의 사용법 Fragment도 액티비티와 마찬가지로 xml파일과 class파일 쌍으로 구..