CS/Android, Kotlin
10
[Android] BottomNavigationView Custom
1
2023.12.03
내가 커스텀해야 되는 것 상태와 관계 없이 아이콘 vector GNB background color 각 간격 설정 active, deactive 상태의 아이콘 색상 텍스트 색상 애니메이션 제거 아이콘 벡터 커스텀 → 그냥 menu 관련 xml file에서 설정해주면 됨. GNB Background Color? // 안에 넣어주어야 함. android:background="@color/Gray_1" app:itemBackground="@color/Gray_1" 둘 다 설정해주어야 됨. 아이템만 설정하면 빈 공간이 있는 경우 원치 않는 색상이 보이게 됨. 아이콘 & text 색상 커스텀? // 안에 넣어주어야 함. app:itemIconTint="@color/selector_menu_home_color" a..

[Android] Hilt
2023.05.09
Dependency 하나의 클래스가 다른 하나의 클래스에 의존하는 것을 의미함. A 클래스가 객체를 만들기 위해 B 클래스를 필요로 할 때 B는 A의 의존 대상이 됨. 예를 들어 샐러드를 만들기 위해 드레싱이 필요함. 샐러드는 드레싱에 의존하고 있음. 따라서 샐러드 ← 드레싱 관계가 됨. 여기서 드레싱이 의존의 대상, Dependency가 됨. Injection 위의 예를 계속 사용해서 생각해보면 샐러드 클래스, 드레싱 클래스가 있을 때 샐러드 객체를 만들기 위해서는 드레싱의 객체가 필요함. 하지만 이 드레싱 객체를 샐러드 클래스 내부에서 만드는 것이 아니라 외부에서 만들어서 건네주는 방법도 있음. 이렇게 외부에서 의존관계가 있는 대상을 가져오는 것을 의존성(Dependency)을 외부에서 주입(Inje..
[Android] Base Activity, Fragment
2023.04.16
백업용도로 작성 import android.os.Bundle import androidx.annotation.LayoutRes import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil import androidx.databinding.ViewDataBinding import androidx.lifecycle.ViewModel abstract class BaseActivity(@LayoutRes val layoutRes: Int) : AppCompatActivity() { /*@LayoutRes abstract fun getLayoutRes(): Int*/ abstract val viewModel: ..

[Android] OKHttp3를 사용한 헤더 추가, Retrofit2를 사용한 http 통신
2023.04.16
OKHttp3, Retrofit2 square사에서 개발한 오픈소스 라이브러리. http 클라이언트로 쉽게 request, response가 가능하게 함. Retrofit 특징 성능이 좋음. (Volley, AsyncTask에 비해) annotation을 사용해 HTTP 작업을 하는 메소드를 정의하기 때문에 개발자들이 행위를 손쉽게 알아볼 수 있음. (가독성 👍) 주고받는 데이터(JSON)를 자동으로 파싱해주기 때문에 유지보수가 편리함. 캐싱이 불가능함 image loading이 불가능하여 glide와 같은 라이브러리를 사용해야 함. OKHttp3 - 내가 사용한 부분 내가 사용한 부분은 클라이언트에서 request를 날릴 때 헤더를 넣어주도록 만들었음. // header 추가 private val ok..
[Android] Custom View
2023.04.15
면접기록용 Custom View 정리 커스텀 뷰 사용하는 목적 완전 맞춤 렌더링 된 뷰 유형을 만들 수 있음 기존 view 구성요소 그룹을 새로운 단일 구성요소로 만들 수 있음 키 누름과 같은 다른 이벤트를 확인하고 맞춤 방식으로 처리할 수 있음 재사용 가능 구현 방법 attrs.xml 정의 : 커스텀 뷰에서 사용하고자 하는 속성이 있다면 attrs.xml에 정의해줌 res > values 폴더에 attrs.xml 을 생성 declare-styleable 태그를 생성 후 name에는 커스텀뷰 클래스명을 입력 attr 태그를 생성해서 name에는 속성명, format에는 속성의 type을 입력해줌 // 예시 커스텀 뷰 클래스 생성 View 클래스를 상속 받는 클래스를 생성, 이때의 클래스명은 위 attrs..
[Android] Data Binding
2023.04.15
면접기록용 Data Binding 정리 Data Binding은 xml 파일에 data를 연결해서 사용할 수 있도록 도와주는 것으로 MVVM 패턴을 구현할 때 LiveData와 함께 거의 필수적으로 사용됨. 데이터 바인딩의 장점은 글루 코드를 줄일 수 있음. 레이아웃과 데이터를 연결하기 위한 코드들을 줄일 수 있음. 내가 사용했던 부분 // ... // ... 전체를 태그로 감싸주고 태그 사이에 태그로 데이터 바인딩에 필요한 변수를 선언해줌. 나는 viewmodel을 데이터 바인딩에 필요한 변수로 사용할 예정이어서 다음과 같이 해줌. class MainActivity : BaseActivity(R.layout.activity_main) { override val viewModel by viewModels..