Retrofit 이란? REST API 통신을 위해 구현 OkHttp 라이브러리의 상위 구현체 Retrofit 구성요소 DTO 'Data Transfer Object' 형태의 모델(Model)/JSON 타입 변환에 사용 Interface 사용할 HTTP CRUD
RecyclerView Adapter View 객체를 재사용하기 위한 ViewHolder 객체 생성 해당 객체에 데이터 리스트를 주입 데이터 리스트의 변경을 UI에 반영 -> notifyDataSetChanged()를 사용 그런데 데이터가 변경되는 방식을 확인하고
완성 화면주요 기능Firebase Authentication을 사용해 회원가입 / 로그인 기능 구현회원 기반으로 중고 상품 등록Firebase Storage를 사용해 상품 등록 시 사진 업로드회원 기반으로 채팅창 구현Firebase Realtime Database 이용
네이버 맵 api를 이용해 지도를 메인으로 숙소 목록을 서버에서 받아와 마커로 나타내고 하단에 viewPager를 이용해 좌우로 스크롤이 가능한 페이저를 두어 숙소를 살필 수 있다.완성 화면주요 기능네이버 맵 api 사용해 지도 보여주기Mock api에서 예약 가능한
MVVM 패턴 Model, View, ViewModel을 구성하고 있는 패턴 View Activity나 Fragment가 View 역할을 함 사용자의 액션을 받음 (텍스트 입력, 버튼 터치 등) ViewModel의 데이터를 관찰하여 UI를 갱신 ViewMo
데이터 출처(로컬 DB인지 API응답인지 등)와 관계없이 동일 인터페이스로 데이터에 접속할 수 있도록 만드는 것을 Repository 패턴이라고 한다. Repository는 데이터 소스에 액세스하는 데 필요한 논리를 캡슐화하는 클래스 또는 구성요소이다.Presentat
Kotlin은 NullPointException을 예방하기 위해 프로퍼티(변수)에 무조건 값을 할당하도록 하였다. Java의 경우, 아래의 코드처럼 작성해도 에러가 발생하지 않는다. 하지만 Kotlin의 경우 var name: String 으로만 선언하면 에러가
> open 자바에서는 클래스에 final이 붙지 않으면 다른 클래스에서 상속이 가능하다. 하지만 코틀린에서의 클래스와 메서드는 기본적으로 final이다. 따라서 다른 클래스의 상속을 허용하려면 그 클래스 앞에 open 키워드를 붙여야 한다. 또한, overrid
https://firebase.google.com/docs/firestore/security/get-started위의 링크를 참고해서 각 조건에 맞게 규칙을 작성하면 된다.
예를 들어 RecyclerView에서 보여줄 리스트에서 10개의 노래 아이템이 들어있는 리스트를 새로고침 했을 때, 9개의 데이터는 그대로인데 1개만 노래 제목이 바뀌었다면 어떻게 될까? notifyDataSetChanged() 를 사용하면 되겠지만, 실질적으로 다시
공식문서컬렉션을 이터레이션하면서 주어진 람다에 각 원소를 넘겨서 람다가 true를 반환하는 원소만 모은다. Filter의 결과는 입력 컬렉션의 원소 중에서 주어진 조건문에 만족하는 원소만으로 이루어진 새로운 컬렉션이다.나이가 20살 이상인 사람만 뽑아내는 Person
let, run, with, apply, also 5가지로 객체 생성시 사용하는 함수들이다. 자체적인 scope를 갖는 코드블럭을 사용해서 scope function이라 불린다.공식문서 (https://kotlinlang.org/docs/scope-functi
DB나 서버의 값이 변경되는 것을 실시간으로 감지한 후 UI에 업데이트하기 위해 LiveData를 사용한다. LiveData를 관찰하기 위해서 observe()를 사용하고, observe()에 LifecyclerOwner라는 것을 전달한다.그렇다면 프래그먼트에서 obs
클린 아키텍처 빌드업 > Koin di/AppModule Application > Data 영역 entity/ProductEntity network/Url network/ProductApiService network/ProvideAPI response
MVVM 패턴ModelViewViewModelView는 ViewModel을 알지만, ViewModel은 View를 알지 못한다.ViewModel은 Model을 알지만, Model은 ViewModel을 알지 못한다.이런 구조를 통해 ViewModel과 Model이 Vie
> 기본 구성요소 Room에는 다음 3가지 주요 구성요소가 있다. 데이터베이스 클래스 데이터 항목 : 앱 데이터베이스의 테이블을 나타냄 DAO : 쿼리, 업데이트, 삽입, 삭제 메서드 제공 데이터베이스 클래스는 데이터베이스와 연결된 DAO인스턴스를 앱에 제공한다
완성화면 주요기능 Retrofit 을 이용해 서버에서 영상 목록을 받아와 보여주기 Motion Layout 을 이용해 영상 플레이어 화면 전환 애니메이션 구현 영상 목록을 클릭하여 ExoPlayer 를 이용해 영상 재생 사용 기술 MotionLayout ExoPla
> 완성 화면 주요 기능 Retrofit 을 이용해 서버에서 음악 받아와 재생 목록 구성 재생 목록을 클릭하여 ExoPlayer 를 이용해 음악을 재생 이전/다음 곡 재생, UI 업데이트 재생 목록 화면과 플레이 화면 간 전환 seekBar 를 커스텀 하여 원하
sealed class는 부모 클래스를 상속받는 자식 클래스의 종류를 제한하는 특성을 갖고 있는 클래스이다.어떠한 클래스를 상속받는 하위 클래스는 여러 파일에 존재할 수 있기 때문에 컴파일러는 얼마나 많은 하위 클래스들이 있는지 알지 못한다. 하지만 sealed cla
Retrofit란? 서버와 클라이언트 간 http 통신을 위한 라이브러리이다. REST 기반의 웹 서비스를 통해 JSON 구조의 데이터를 쉽게 가져오고 업로드할 수 있다.사용방법1\. 의존성 추가Gson Converter : JSON 타입의 응답결과를 객체로 매핑(변환