SharedPreferences : 저장하려는 키-값 컬렉션이 비교적 작은 경우 사용하는 API. 키-값 쌍이 포함된 파일을 가리키며, 키-값 쌍을 읽고 쓸 수 있는 간단한 메서드 제공, 프레임워크에서 관리하며 비공개, 공유 모두 가능하다.e.printStackTrac
setEnabled() : setEnabled를 알기 위해서는 먼저 isEnabled()를 알아야 한다. isEnabled()는 뷰를 활성/비활성화 상태로 만들어주는 메서드로, false로 설정하면 개발자가 설정해 둔 대로 모양이 바뀌고(아무것도 설정하지 않았다면 바뀌
MediaProjectionManager : 특정 유형의 MediaProjection 토큰 검색을 관리합니다. => MediaProjection을 이용하는 전체 API : https://developer.android.com/reference/android/media/
FileOutputStream : 데이터를 파일에 바이트 스트림으로 저장하기 위해 사용한다.FileOutputStream 생성자 :① FileOutputStream(File file) : 주어진 File 객체가 가리키는 파일을 쓰기 위한 객체를 생성. 기존의 파일이 존
BroadCastReceiver() : 4대 컴포넌트 중에 하나로, 단말기 안에서 이루어지는 수많은 일들을 대신해서 알려준다. (ex - 배터리부족, SMS문자메세지, 전화가 옴)onReceive() : BroadCastReceiver()를 상속받으며, intent-f
onBind() :① 서비스 바인딩이란(Service Bind) : startService() 메소드 대신 bindService() 메소드를 통해서 시작되는 서비스를 서비스 바인딩(Service Bind 혹은 Bound Bind) 라고 합니다.이 서비스는 마치 클라이언
TYPE_APPLICATION_OVERLAY : 터치 이벤트가 발생하지 않아서 View의 위치 이동 불가능.TYPE_PHONE : 일반 앱에서 사용되는 윈도우보다 위에 그려져야 할 때 사용한다.안드로이드에서 자주 사용되는 윈도우들① FIRST_APPLICATION_WI
TabFragment 하단에 RecyclerView를 넣어서 DataBinding으로 데이터들을 넣어주고, RecyclerView의 왼쪽부분에 checkbox가 있는 상황.그리고 이 전체 체크박스를 한꺼번에 클릭할 수 있는 전체클릭 버튼이 TabFragment에 위치함
1.Lifecycles(Easy handling lifecycles)2.LiveData(Lifecycle aware observable)3.ViewModel(Managing data in a lifecycle)4.Room(object Mapping for SQLite)
MVVM 패턴 구조View : UI 요소를 표시하며 사용자가 발생한 이벤트를 받는 역할을 합니다.ViewModel : UI 요소에 들어갈 데이터를 관리합니다. 그리고 Model과 View 사이의 다리 역할을 합니다.Model : 데이터 전반적인 것을 처리하는 역할을 합
코틀린은 IntelliJ를 만든 JetBrains에서 만들었다.IntelliJ는 Java 및 Kotlin을 이용한 프로젝트에서 널리 사용되는 통합개발환경(IDE)이다.Kotlin이라는 이름은 코틀린 섬에서 따왔는데 이는 JetBrains의 R&D 센터가 상트페테부르크에
Java에서 long과 final long의 차이는 이 변수가 가변인지, 불변인지(read-only)에 있다.이것을 코틀린 문법으로 바꾼다면..!자바스크립트 문법하고 비슷한데, 자바스크립트에서는 가변한 변수면 그냥 변수, 불변한 변수이면 상수로 구분하며, 가변변수는 v
위의 코드는 null 값을 갖고오면 NPE가 나기 때문에 안전한 코드가 아니다.따라서 자바에서 null을 체크하는 안전한 코드로 고치는 방법은,=> 위와 같이 str이 null일 경우 Exception을 내거나,=> 위와 같이 str이 null일 경우 null을 반환하
ByteShortIntLongFloatDouble부호 없는 정수들코틀린에서는 선언된 기본 값을 보고 타입을 추론한다.<Java와 다른 내용>Java : 기본 타입간의 변환은 암시적으로 이루어질 수 있다.Kotlin : 기본 타입간의 변환은 명시적으로 이루어져야 한
단항 연산자 : ++, --산술 연산자 : +, -, \*, /, %산술대입 연산자 : +=, -=, \*=, /=, %=비교 연산자 : >, <, >=, <=단, Java와 다르게 객체를 비교할 때 비교 연산자를 사용하면 자동으로 compareTo를 호출해
Java에서 if-else는 Statement 이지만, Kotlin에서는 Expression 입니다.Statement : 프로그램의 문장, 하나의 값으로 도출되지 않는다.Expression : 하나의 값으로 도출되는 문장.30 + 40 은 70이라는 하나의 결과가 나온
<자바 코드><코틀린 코드><자바 코드><코틀린 코드><자바 코드><코틀린 코드><자바 코드><코틀린 코드>1..3 : 1부터 3의 범위IntRange → IngProgressionProgression = 등차수열 :시작 값끝
<자바코드><코틀린코드>a. 기본타입간의 형변환은 toType()을 사용.b. 타입이 뒤에 위치함.c. new를 사용하지 않음.d. 포맷팅이 간결함.e. 그 외의 try~catch 구문은 같음.b. 주어진 문자열을 정수로 변경하는 예제, 실패하면 null 반
싱글톤(Singleton) 패턴이란, 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.싱글톤 패턴을 사용하는 이유는, 메모리 낭비를 방지할 수 있기 때문인데,최초 한 번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때
안드로이드에서는 테두리를 지정해주는 "border" 속성이 없다... (ㅠㅠ)그래서 밑이나 옆 구분선과 같은 테두리를 지정해줄 때 layer-list 를 이용해서 .xml을 만들어줘야 한다.귀찮지만 어쩔 수 없지...border.xml은 drawable 폴더 안에 만들
Room은 스마트폰 내장 DB에 데이터를 저장하기 위해 사용하는 라이브러리이다.과거에는 SQLite라는 데이터베이스 엔진을 사용해 데이터를 저장했으나, 현재는 사용하기 어려워 직접적으로 쓰지는 않는다.Room은 SQLite의 문제점을 자동으로 처리할 수 있도록 도와주는
xml에 데이터를 바인딩하여 불필요한 코드를 줄이는 방법으로, 보통 MVVM 패턴을 구현할 때 사용된다.data 내에 있는 user 변수는 이 레이아웃 내에서 사용할 수 있는 속성에 대한 설명이다.레이아웃 내에 있는 식은 “@{}” 구문을 사용하여 특성 속성에 기록된다
DiffUtil은 안드로이드 어댑터에서 현재 데이터 리스트와 교체될 데이터 리스트를 비교하여 무엇이 바뀌었는지 알아내는 클래스입니다.이를 통해 기존 데이터 리스트에서 아이템에 수정이 생겼을 때 전체 리스트를 갱신하는 게 아니라 바뀐 아이템에 대해서만 데이터를 바꿔주고,
Databinding과 함께 쓰면 찰떡궁합의 조합을 맛볼 수 있는, Android Jetpack 라이브러리의 기능 중 하나이다.Data의 변경을 관찰할 수 있는 Data Holder 클래스일반적인 Observable과는 달리 안드로이드의 생명주기(Life Cycle)를
MVP는 Model과 View, Presenter로 나누는 패턴이다.MVC와 비교하여 View와 Model이 서로 존재를 몰라 의존성이 줄어든다.이말은 쉽게 View와 Model 클래스를 변경, 수정할 수 있고 MVC에 비해 Model 클래스의 유닛 테스트를 쉽게 시도
View : UI 요소를 표시하며 사용자가 발생한 이벤트를 받는 역할을 합니다.ViewModel : UI 요소에 들어갈 데이터를 관리합니다. 그리고 Model과 View 사이의 다리 역할을 합니다.Model : 데이터 전반적인 것을 처리하는 역할을 합니다.여러 화면이
모든 뷰는 생성자에서 출발하게 됩니다.생성자에서 초기화되고, default 값을 설정합니다.뷰는 초기설정을 쉽게 세팅하기 위해서 AttributeSet 이라는 인터페이스를 지원합니다.attrs.xml 파일(res/values/attrs.xml)을 만들어 이것을 부름으로
MainActivity.java ViewHolder.java Adapter.java activity_main.xml item_list.xml
100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% — 6635% — 5930% — 4D25% — 4020% — 3315% — 2610% —