[TIL] 20210107

todo

What I learned


  • XML Preview 와 실제 앱의 visigility를 다르게 하고 싶을 때, tools:visibility 값을 지정한다.
    • Preview 에서는 visible, 실제 앱에서는 gone
<Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:visibility="gone"
  tools:visibility="visible" />
  • TextView 왼쪽에 이미지를 넣고 싶을때, app:drawableStartCompat 을 사용할 수 있다.
<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:drawablePadding="4dp"
  app:drawableStartCompat="@drawable/ic_star" />
  • 참고: https://developer.android.com/jetpack/androidx/releases/appcompat?hl=ko
Android Sutdio 버전 업데이트 방법
  • github 에서 받은 프로젝트를 빌드하려고 할 때, 내가 가지고 있는 Studio 버전이 낮다면 아래와 같은 에러 메세지를 만날 수 있다.
    • This version of Android Studio cannot open this project, please retry with Android Studio X.XX of newer
  • https://developer.android.com/studio/intro/update
  • Android Studio > Check for Updates…
BuildConfig 변수
  1. 언제 사용하면 좋을까?
  • BuildConfig는 빌드 타임에 생성되는 클래스로, 빌드 구성에 따라(productFlavor 등) 알맞은 값을 코드에서 사용할 수 있다.
    • 빌드 구성은 코드 상에서도 체크가 가능하기는 하지만, 값이 변경되었을 때 build.gradle 값만 수정하면 되기 때문에 가독성/유지보수측면에서 훨씬 좋을 것이다.
  • Manifest 와 코드 상에서 동일한 값을 사용해야할 때 (ex. FileProvider authority값)
  1. 변수 설정 방법 (build.gralde)
  • defaultConfig
defaultConfig {
  // ..
  buildConfigField "String", "API_KEY", "\"Key value\"'
}
  • buildTypes
buildTypes {
    debug {
      // ..
        buildConfigField "String", "API_KEY", "\"Key value for debug\""
    }
    release {
      // ..
        buildConfigField "String", "API_KEY", \""Key value for release\""
    }
}
  1. 변수 사용 방법
BuildConfig.API_KEY
  1. 참고
  • buildConfigField는 빌드 타임에 값이 대체되기 떄문에 디컴파일 시 문자열이 노출될 수 있다.
  • https://developer.android.com/studio/build/gradle-tips?hl=ko

Tags:

Categories:

Updated:

Leave a comment