100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% — 6635% — 5930% — 4D25% — 4020% — 3315% — 2610% —
.gradle.idealocal.properties/build예시)/test , /androidTest 등build.gradle(Module) 에서 아래 코드 signingConfigs 관련 코드 지우기library 종속성 추가 코드 지우기맨 하단에 아래 코드 추가LO
adb 명령어 강제실행 : adb root; adb remountadb shell 실행 : adb shelladb push 명령어 : adb push .\\FacePass.apk system/app/FacePassadb 리부팅 : adb reboot
MainActivity.java ViewHolder.java Adapter.java activity_main.xml item_list.xml
모든 뷰는 생성자에서 출발하게 됩니다.생성자에서 초기화되고, default 값을 설정합니다.뷰는 초기설정을 쉽게 세팅하기 위해서 AttributeSet 이라는 인터페이스를 지원합니다.attrs.xml 파일(res/values/attrs.xml)을 만들어 이것을 부름으로
View : UI 요소를 표시하며 사용자가 발생한 이벤트를 받는 역할을 합니다.ViewModel : UI 요소에 들어갈 데이터를 관리합니다. 그리고 Model과 View 사이의 다리 역할을 합니다.Model : 데이터 전반적인 것을 처리하는 역할을 합니다.여러 화면이
MVP는 Model과 View, Presenter로 나누는 패턴이다.MVC와 비교하여 View와 Model이 서로 존재를 몰라 의존성이 줄어든다.이말은 쉽게 View와 Model 클래스를 변경, 수정할 수 있고 MVC에 비해 Model 클래스의 유닛 테스트를 쉽게 시도
Databinding과 함께 쓰면 찰떡궁합의 조합을 맛볼 수 있는, Android Jetpack 라이브러리의 기능 중 하나이다.Data의 변경을 관찰할 수 있는 Data Holder 클래스일반적인 Observable과는 달리 안드로이드의 생명주기(Life Cycle)를
DiffUtil은 안드로이드 어댑터에서 현재 데이터 리스트와 교체될 데이터 리스트를 비교하여 무엇이 바뀌었는지 알아내는 클래스입니다.이를 통해 기존 데이터 리스트에서 아이템에 수정이 생겼을 때 전체 리스트를 갱신하는 게 아니라 바뀐 아이템에 대해서만 데이터를 바꿔주고,
xml에 데이터를 바인딩하여 불필요한 코드를 줄이는 방법으로, 보통 MVVM 패턴을 구현할 때 사용된다.data 내에 있는 user 변수는 이 레이아웃 내에서 사용할 수 있는 속성에 대한 설명이다.레이아웃 내에 있는 식은 “@{}” 구문을 사용하여 특성 속성에 기록된다
Room은 스마트폰 내장 DB에 데이터를 저장하기 위해 사용하는 라이브러리이다.과거에는 SQLite라는 데이터베이스 엔진을 사용해 데이터를 저장했으나, 현재는 사용하기 어려워 직접적으로 쓰지는 않는다.Room은 SQLite의 문제점을 자동으로 처리할 수 있도록 도와주는
안드로이드에서는 테두리를 지정해주는 "border" 속성이 없다... (ㅠㅠ)그래서 밑이나 옆 구분선과 같은 테두리를 지정해줄 때 layer-list 를 이용해서 .xml을 만들어줘야 한다.귀찮지만 어쩔 수 없지...border.xml은 drawable 폴더 안에 만들
싱글톤(Singleton) 패턴이란, 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.싱글톤 패턴을 사용하는 이유는, 메모리 낭비를 방지할 수 있기 때문인데,최초 한 번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때
<자바코드><코틀린코드>a. 기본타입간의 형변환은 toType()을 사용.b. 타입이 뒤에 위치함.c. new를 사용하지 않음.d. 포맷팅이 간결함.e. 그 외의 try~catch 구문은 같음.b. 주어진 문자열을 정수로 변경하는 예제, 실패하면 null 반
<자바 코드><코틀린 코드><자바 코드><코틀린 코드><자바 코드><코틀린 코드><자바 코드><코틀린 코드>1..3 : 1부터 3의 범위IntRange → IngProgressionProgression = 등차수열 :시작 값끝
Java에서 if-else는 Statement 이지만, Kotlin에서는 Expression 입니다.Statement : 프로그램의 문장, 하나의 값으로 도출되지 않는다.Expression : 하나의 값으로 도출되는 문장.30 + 40 은 70이라는 하나의 결과가 나온
단항 연산자 : ++, --산술 연산자 : +, -, \*, /, %산술대입 연산자 : +=, -=, \*=, /=, %=비교 연산자 : >, <, >=, <=단, Java와 다르게 객체를 비교할 때 비교 연산자를 사용하면 자동으로 compareTo를 호출해
ByteShortIntLongFloatDouble부호 없는 정수들코틀린에서는 선언된 기본 값을 보고 타입을 추론한다.<Java와 다른 내용>Java : 기본 타입간의 변환은 암시적으로 이루어질 수 있다.Kotlin : 기본 타입간의 변환은 명시적으로 이루어져야 한
위의 코드는 null 값을 갖고오면 NPE가 나기 때문에 안전한 코드가 아니다.따라서 자바에서 null을 체크하는 안전한 코드로 고치는 방법은,=> 위와 같이 str이 null일 경우 Exception을 내거나,=> 위와 같이 str이 null일 경우 null을 반환하