안드로이드
-
[안드로이드] 화면 켜짐 상태 유지 및 해제안드로이드 2023. 3. 8. 10:54
개요 안드로이드에서 앱 개발 시 화면을 켜짐 상태로 유지해야하는 경우가 있다. 그럴 경우 아래와 같이 flag를 추가 및 제거해준다. 켜짐 상태 유지 아래와 같이 window.addFlags에 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 을 추가해준다. class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } } 또 다른 ..
-
[안드로이드] Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8안드로이드 2023. 2. 13. 16:18
개요 안드로이드에서 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8 에러가 발생하였다. 원인 원인은 gradle의 버전을 올리면서 Java 11을 써야한다는 것이다. 해결방법 Gradle의 Java 버전을 11로 변경해줘야한다. 변경하는 방법은 아래와 같다. 1. Preferences를 눌러 Preferences 창을 띄운다. 2. Build, Execution, Deplyment > Build Tools > Gradle을 누른다 3. Gradle JDK에서 Java 11로 변경을 해준다. 4. Apply 또는 OK를 눌러 적용을 한다. 마치며 위와 같은 방법으로 JDK의 버전을 변경할 수 있다. 앞으로 Gra..
-
[안드로이드] Compose architectural layering안드로이드 2021. 9. 16. 02:57
개요 이번에는 Compose의 아키텍처 레이어링에 대해 알아보자. 내용은 안드로이드 개발자 사이트를 기반으로 작성하였다. Jetpack Compose 아키텍처 레이어링 Jetpack Compose는 모놀리식 프로젝트가 아닌 완전한 스택을 만들기 위한 여러가지 모듈의 조합으로 만들어졌다. Jetpack Compose를 구성하는 모듈을 이해한다면 아래와 같은 기능을 개발하는데 용이하다. 적절한 수준의 추상화를 사용하여 앱 및 라이브러리를 빌드 할 수 있다. 보다 세부적인 제어나 맞춤 설정을 위한 낮은 수준으로 드롭다운 할 수 있는 경우를 파악할 수 있다. 종속 항목을 최소화 할 수 있다. 레이어 각 레이어는 하위 수준 기반으로 상위수준의 구성요소를 만들기 위해 기능을 결합한다. 각 레이어는 하위 레이어의 공..
-
[Android] Compose Side Effect안드로이드 2021. 8. 20. 17:09
개요 Compose에서 Side Effect를 어떻게 사용하는지 알아보자 Side Effect란 Composable 외부에서 발생하는 앱의 상태 변경사항을 말한다. Effect란 UI에 방출하지 않으며 Composition이 완료될 때 Side Effect를 실행하는 Composable 함수이다. State 및 Effect 사용 사례 Composable은 Side Effect에 Free 해야한다. 앱의 상태 변경이 필요할 때 Composable의 생명주기를 알고 있는 제어되는 환경으로 부터 호출해야 한다. Compose에서 가능성 있는 Effect들을 열어두기 때문에 쉽게 과하게 사용할 수있다. 그래서 UI와 관련되고 단방향 데이터 플로우를 중단시켜서는 안된다. LaunchedEffect Launched..
-
[Android] 앱 실행 시 빈 화면 보이는 현상 방지안드로이드 2021. 8. 10. 15:50
개요 앱을 개발하면서 앱을 실행하면 빈 화면(하얀화면 또는 까만화면)이 보였다 ApplicationManifest에서 설정된 첫 Activity가 보이는 현상이 있다. 이 현상을 없애고 첫 화면이 바로 보이도록 하는 방법을 알아보자. 원인 안드로이드는 Activity의 theme에 따라 view가 완전이 불려지기 전에 preview window를 보여준다. 그렇기 때문에 Light 또는 Dark 테마에 따라 흰 화면 또는 까만 화면이 잠시 보여지게 되는 것이다. 해결 방법 AppTheme의 Style에 아무 설정도 안해준다면 앱을 처음 실행했을 경우 빈 화면이 처음에 보였다가 첫 Activity의 화면이 보이게 된다. 핸드폰의 성능이 짧은 순간 스쳐가 인식을 못할 경우도 있지만 모든 사용자가 좋은 성능의..
-
[Android] ViewHolder getAdapterPosition Deprecated안드로이드 2021. 8. 4. 16:30
개요 RecyclerView의 ViewHolder의 getAdapterPosition() 함수가 Deprecated 됐다. 어떻게 변경하면 되는지 알아보자. 안드로이드 개발자 사이트 설명 getAdapterPosition() 메소드는 Adapter가 다른 Adapter를 중첩하는 경우 어느 adapter의 위치인지 혼란스러워 아래의 두가지 방법으로 호출하도록 하고 있습니다. getBindingAdapterPosition() - Adapter내의 위치를 반환 getAbsoluteAdapterPosition() - RecyclerView에서의 위치를 반환 한 Adapter를 사용하여 RecyclerView를 이용한다면 위 두 메소드는 같은 값을 반환한다. 하지만 ConcatAdapter로 여러 Adapter..
-
[Android] kotlin-android-extensions deprecated안드로이드 2021. 8. 4. 11:59
개요 kotlin plugin extension이 deprecated 됐다. 그래서 다른 방법으로 처리를 해야한다. 안드로이드 개발자 사이트에 의하면 viewBinding을 통해 마이그레이션을 하라고 하고 있다. Gradle 수정 android > buildFeatures > viewBinding을 true로 설정해준다. android { ... buildFeatures { viewBinding = true } } 아래의 kotlin-android-extensions plugin 구문을 삭제해준다. plugins { kotlin("android.extensions") } 또는 plugins { id "kotlin-android-extensions" } 그리고 아래와 같이 kotlin-parcelize를 ..
-
[Android] Compose Lifecycle(안드로이드 개발자 사이트 번역)안드로이드 2021. 8. 3. 17:08
개요 Composable의 생명주기와 Recomposition이 필요한 Composable을 Compose가 어떻게 결정하는지 알아보자. Lifecycle State 관리에서 본것 처럼 Composition은 UI를 설명하고 Composable 실행에 의해 생성된다. Composition은 UI를 설명하는 Composable의 트리구조로 되어있다. Jetpacke Compose가 Composable들을 처음 실행할 때(Initial composition동안) Composition에서 UI를 설명하기 위해 호출하는 Composable을 추적한다. 그러고나서 앱의 State가 변경될때 Jetpack Compose는 Recomposition을 예약한다. Recomposition은 Jetpack Compose가..