프로젝트에 데이터바인딩을 적용 후 다음과 같은 에러가 발생했다. Execution failed for task ':app:kaptDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction > java.lang.reflect.InvocationTargetException (no error message) 처음에는 gradle 문제인 줄 알고 gradle을 이것저것 바꿔보고, 구글링 해보니 room 문제라는 말도 있어서 room 파일들도 다시 한 번 살펴봤는데 오류가 해결되지 않았다. 그러다가 오류를 더 자세하게 확인해 아래 오..
프로젝트 리팩토링 진행 중 프래그먼트 연결 부분에서 다음과 같은 오류가 발생했다. java.lang.IllegalArgumentException: No view found for id 0x7f080056 for fragment MainFragment id=0x7f080056} at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:305) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1185) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1..
문제 안드로이드 액티비티에서 Toast message를 띄우고자 할 때 코드에 문제가 없는데도 메시지가 뜨지 않는 문제가 발생했다. Toast.makeText(this, "toast test", Toast.LENGTH_SHORT).show() 디버깅을 통해 해당 코드를 실행하는 것까지 확인했는데 에뮬레이터에 메시지가 뜨지 않아 검색해본 결과 다음 방법으로 해결할 수 있었다. 해결 방법 Tools > AVD Manager에 들어가서 사용 중인 에뮬레이터의 데이터를 삭제한다. (Wipe Data) 결과 toast 메시지가 정상적으로 뜨는 것을 확인할 수 있다. 어떤 게 문제인지 이것저것 바꿔보면서 시간을 많이 썼는데 간단한 방법으로 해결되어서 허무했다. 참고 https://www.youtube.com/wat..
1. 클린 아키텍처란? 클린 아키텍처는 의존성 규칙을 따라 관심사를 분리하고, 본질적으로 테스트하기 쉬운 시스템을 만들 수 있는 아키텍처 구조이다. 클린 아키텍처를 적용하면 변화의 위치가 명확하기 때문에 생산성을 증대시킬 수 있고 변화에 더 잘 대응할 수 있다. 레이어의 가장 바깥 쪽이 사용자와의 접점에 있는 Presentation이고 가장 안쪽의 Entities가 사용자가 실제로 생각하는 개념 단위이다. 클린 아키텍처에서는 서버 쪽 내용이지만 안드로이드에도 이 원리를 적용시켜 UI를 독립시키고, Database를 분리시키고, 외부적인 설정에 독립적인 구조를 적용하면 프레임워크에 의존적이지 않은 코드를 짤 수 있다. 각 레이어의 역할 1) Entities 애플리케이션에서 핵심적인 기능인 Business ..
MVVM 패턴의 ViewModel과 AAC의 ViewModel이 어떻게 다른지 알아보자. 1. MVVM 패턴의 ViewModel Model, View, ViewModel로 이루어진 MVVM 패턴에서 View에 연결할 데이터와 명령으로 구성되어 있으며 변경 알림을 통해 View에게 상태 변화를 전달하는 역할을 한다. ViewModel은 Model은 알지만 View는 알지 못한다. 이 ViewModel을 구현하는데 AAC의 ViewModel이 사용하는 것이 좋다. 2. AAC의 ViewModel ViewModel은 액티비티를 재생성할 때 UI 관련 데이터를 유지하기 위해 사용한다. ViewModel 클래스를 사용하면 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있다. 액티비티가 완전히 종료될 때..
앞서 살펴본 MVVM 패턴([Android] 아키텍처 패턴 - MVC, MVP, MVVM 글 참고)을 안드로이드 앱에 구현하기 위해 사용하는 Android Jetpack의 컴포넌트 중 하나인 LiveData에 대해 알아보자. 라이브 데이터란? 라이브 데이터는 데이터의 변경을 관찰할 수 있는 data holder 클래스로 activity, fragment, service 등 다른 컴포넌트의 생명주기를 인식해서 active 상태(STARTED, RESUMED)일 때만 데이터를 업데이트한다. MVVM 패턴에서 View가 ViewModel을 관찰할 때 그 관찰 대상이 되는 데이터 홀더 클래스이다. 🔍 Observer Pattern 라이브 데이터는 데이터의 변경을 어떻게 관찰하고 알리는 것일까? 라이브 데이터와 ..
발생한 문제 마지막으로 실행했을 때 이후로 코드를 수정한 부분이 전혀 없는데 갑자기 다음과 같은 오류가 발생했다. /Users/user/.gradle/caches/transforms-2/files-2.1/4fa6e55d833d1d339902e36b265b6c73/core-1.7.0-alpha02/res/values/values.xml:105:5-114:25: AAPT: error: resource android:attr/lStar not found. 해결방법 라이브러리의 버전을 명시하지 않고 +로 두는 경우 항상 최신버전으로 컴파일하게 되는데, androidx.core:core-ktx의 최신버전이 최소 SDK 31을 필요로 하기 때문에 위와 같은 충돌이 일어난다. 따라서 다음 두 가지의 해결방법이 있다...
안드로이드 앱 개발을 공부하면서 자주 접하게 되는 아키텍처 패턴인 MVC, MVP, MVVM 패턴에 대해 알아보자. (아키텍처 패턴의 개념을 잘 모른다면 [Android] 디자인 패턴, 아키텍처 패턴 이 글 참고) 1. MVC MVC 패턴은 Model, View, Controller로 구성되어 있다. Model(모델): 어플리케이션의 데이터를 저장하는 역할을 담당한다. SQLite, File, content provider가 이 영역에 속한다. View(뷰): 화면 구성을 담당하는 영역이다. 이 영역은 View 클래스를 상속하는 클래스를 사용해서 구성할 수 있다. Controller(컨트롤러): View와 Model을 서로 연결하고 제어하는 영역이다. 이 영역에는 activity, service, bro..
- Total
- Today
- Yesterday
- architectural pattern
- androidx.core
- Kotlin
- Naver AI Burning Day
- 힙
- java
- Android
- 백준
- 알고리즘
- 안드로이드
- 후기
- BAEKJOON ONLINE JUDGE
- 아키텍처 패턴
- gradle
- SCPC2021
- 라이브 데이터
- livedata
- programmers
- 뷰모델
- MutableLiveData
- Algorithm
- 변수
- hilt
- 코틀린
- 자바
- heap
- error
- viewmodel
- 프로그래머스
- 우선순위큐
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |