본문 바로가기

목록83

Android MVVM Example 프로젝트 안녕하세요. 오랜만에 글을 쓰게 되었습니다! 첫 직장을 1년동안 다니다 얼마전 퇴사하고 다시 블로그에 글을 쓰게 되었네요ㅎㅎ 안드로이드에서 MVVM에 대한 예시가 많은데 모양이 조금씩 다릅니다. 이번 포스팅에서는 제가 MVVM을 기반으로 한 프로젝트를 소개하려 합니다. 서버통신과 로컬디비를 기반으로 프로젝트를 구현했고 BindingAdapter를 이용해 뷰와의 디펜던시를 없앴습니다. 코드는 깃허브에 올려놓았습니다. github.com/ckdrb7017/MVVMDemo ckdrb7017/MVVMDemo Contribute to ckdrb7017/MVVMDemo development by creating an account on GitHub. github.com 2021. 4. 1.
자바에서의 타입 목차 프리미티브 타입이란 프리미티브 타입과 레퍼런스 타입 리터럴 타입 변환, 캐스팅 그리고 타입 프로모션 타입 추론, var 1. 프리미티브 타입이란 자바에서 기본적으로 제공하는 자료형을 의미한다. 총 8개의 자료형이 기본적으로 제공된다. 2. 프리미티브 타입과 레퍼런스 타입 프리미티브 타입은 위 처럼 기본적으로 제공하는 자료형을 뜻하고 레퍼런스 타입은 주소값을 나타내는 타입이다. 배열, 클래스, 인터페이스로 선언된 것들이 레퍼런스 타입이다. 실제 값이 아닌 주소값을 가르키고 그 주소에 있는 값을 가져오는 것이 레퍼런스 타입이다. 3. 리터럴 리터럴이란 소스코드에서 사용된 직접 고정된 값을 의미한다. 10진수이면 10, 16진수이면 0x10, 문자이면 'C' 등과 같이 고정된 값을 나타내는 것이 리터럴이.. 2021. 2. 12.
JVM이란 목차 JVM이란 무엇인가 자바프로그램 실행과정 JVM 구성 요소 JDK와 JRE의 차이 1. JVM이란 JVM은 자바코드를 OS에 의존적이지 않고 실행시키기 위한 프로그램이다. 자바와 OS사이의 중간 역할을 한다. JVM은 다양한 역할을 수행하는데 자바 바이트 코드를 실행시키거나 메모리 관리를 하는 등 많은 역할을 담당하고 있다. 2. 자바프로그램 실행과정 1) 자바 프로그램이 실행되면 JVM은 OS로부터 이 프로그램을 위한 메모리를 할당받는다. 2) 자바 컴파일러(javac)가 자바 소스코드(.java)를 바이트코드(.class)로 변환한다. 3) Class Loader를 통해 class파일들을 Runtime Data Area에 로딩한다. 4) Runtime Data Area에 로딩된 class파일들은.. 2021. 2. 6.
Android VerticalSeekBar 소개 안녕하세요. 이번엔 VerticalSeekBar를 만들어 놨던걸 공개하려고 합니다. 안드로이드에서는 VerticalSeekBar 를 제공하지 않아서 아마 rotation을 이용하여 많이 노력을 하셧을텐데 이마저도 굉장히 불편한 점이 많았습니다. 그래서 VerticalSeekBar 를 만들어 배포하게 되었습니다. ProgreeBar와 Background의 컬러를 변경가능하게 해두었고 Radius를 줄수 있게 해놓았습니다. 이 SeekBar는 Rotation을 돌려서 설정하기 때문에 width와 height의 개념이 서로 뒤바껴서 적용이 됩니다. 그래서 SeekBar의 width를 설정하려면 maxHeight 이 아니라 maxWidth를 주어야 합니다. VerticalSeekBar는 아래와 같이 사용하시면 .. 2020. 12. 30.
안드로이드 Retrofit 통신시 null로 들어올때 안녕하세요. 이번 포스팅은 Retrofit 통신할때 결과값은 잘 들어오는데 data class가 null로 들어오는 현상의 해결방법에 대해 알려드리려고 합니다. 분명 서버에서 리턴을 잘 받아왔음에도 data class 자체가 null로 들어오는 현상이 있는데 이는 프로가드의 코드축소 때문에 일어난 현상입니다. 코드축소시 data class 까지 날려버려서 그런데 가장 쉬운 해결방법은 @Keep data class HeaderPageData(val id : Int, val pageUrl:String, val imageUrl :String) 이렇게 Keep 어노테이션을 붙이는 것입니다. 또는 proguard-rules.pro 파일로 가셔서 직접 세팅을 하면 되는데 그 방법은 이전 포스팅을 참고하시면 되겠습니.. 2020. 12. 13.
안드로이드 NoSuchMethodError: no static method 에러 발생시 안녕하세요. 이번 포스팅에서 NoSuchMethodError: no static method 가 일어난 하나의 사례와 관련해서 적어보겠습니다. 라이브러리가 분명히 존재하고 있음에도 메소드를 찾을 수 없다고 나오는 경우는 프로가드 때문일 가능성이 많습니다. gradle에서 minifyEnabled true 이 부분이 코드축소를 설정하는 부분인데요. 코드축소시 해당 라이브러리를 지워 찾을 수 없다는 에러를 가끔 접했습니다. 그래서 이 부분을 어떻게 해결하느냐 하면 안드로이드 스튜디오의 좌측에 앱 구조를 보시면 proguard-rules.pro 라는 파일이 있습니다. 이 파일을 여셔서 찾지 못하는 라이브러리의 패키지 명을 Keep 한다는 내용을 아래와 같이 적습니다. -keep class com.artheni.. 2020. 12. 13.