문제 안드로이드 액티비티에서 Toast message를 띄우고자 할 때 코드에 문제가 없는데도 메시지가 뜨지 않는 문제가 발생했다. Toast.makeText(this, "toast test", Toast.LENGTH_SHORT).show() 디버깅을 통해 해당 코드를 실행하는 것까지 확인했는데 에뮬레이터에 메시지가 뜨지 않아 검색해본 결과 다음 방법으로 해결할 수 있었다. 해결 방법 Tools > AVD Manager에 들어가서 사용 중인 에뮬레이터의 데이터를 삭제한다. (Wipe Data) 결과 toast 메시지가 정상적으로 뜨는 것을 확인할 수 있다. 어떤 게 문제인지 이것저것 바꿔보면서 시간을 많이 썼는데 간단한 방법으로 해결되어서 허무했다. 참고 https://www.youtube.com/wat..
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..
안드로이드 앱 개발을 공부하면서 디자인 패턴, 아키텍처 패턴이라는 단어를 많이 들어봤을 것이다. 대체 디자인 패턴, 아키텍처 패턴이란 게 무엇이고 이들을 알아야 하는 이유는 무엇인지 알아보자. 1. 디자인 패턴과 아키텍처 패턴의 개념 MVC, MVVM 패턴 등에 대한 검색을 했을 때 디자인 패턴이라고 하는 경우도 있고 아키텍처 패턴이라고 하는 경우도 있어서 둘의 차이가 무엇인지 궁금해서 알아보았다. 디자인 패턴: 소프트웨어 디자인에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책을 말한다. 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 템플릿을 의미한다. 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 패턴이다. 아키텍처 패턴:..
1. DI의 개념 DI란 Dependency Injection의 약자로 의존성 주입을 의미한다. 의존성 주입은 하나의 객체가 다른 객체의 의존성을 제공하는 기술이다. 비유하자면 '의존성'은 서비스로 사용할 수 있는 객체이고 '주입'은 의존성(서비스)을 사용하려는 객체로 전달하는 것을 의미한다. DI는 프로그래밍에 널리 사용되는 기법으로, DI의 원칙을 따르면 훌륭한 앱 아키텍처를 위한 토대를 마련할 수 있다. DI를 클래스들로 예를 들어 설명하자면, Car 클래스와 Engine 클래스가 있는 경우 Car 클래스가 실행되기 위해서는 Engine 클래스의 인스턴스가 있어야 한다. 이러한 필요한 클래스(Engine)를 종속 항목(=의존성)이라고 한다. 클래스들은 흔히 다른 클래스 객체가 필요하다(의존적이다)...
깃허브에서 프로젝트를 클론해받아온 후 앱이 실행되지 못하고 다음과 같은 오류가 발생했다. java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'ja..
- Total
- Today
- Yesterday
- 힙
- androidx.core
- Kotlin
- 백준
- architectural pattern
- 후기
- 안드로이드
- 우선순위큐
- 프로그래머스
- 자바
- gradle
- MutableLiveData
- java
- Algorithm
- programmers
- livedata
- Android
- BAEKJOON ONLINE JUDGE
- 변수
- 아키텍처 패턴
- hilt
- error
- 알고리즘
- 코틀린
- viewmodel
- SCPC2021
- 라이브 데이터
- 뷰모델
- Naver AI Burning Day
- heap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |