Deperecated 120

코틀린 - 고차함수와 람다식2 (고차함수, 람다식 사례)

고차함수와 람다식1에서는 개념적인 설명, 2에서는 사례를 써놓는다. 1. 동기화 관련 사례 동기화: 변경이 일어나면 안되는 특정 코드를 보호하기 위한 잠금 기법 임계 영역(Critical Section): 동기화로 보호되는 코드 -> 보통 try ~ finally 블록으로 많이 쓴다. -> try에서 뻑나도 finally는 실행되니까 공유자원에 대한 잠금은 막을 수 있음 특정 공유 자원을 쓰고싶을 때 공유자원에 아무나 접근하면 안되니까 1. 내가 쓸 동안 아무도 건들지마 -> Lock 라이브러리의 lock() 함수 호출 2. 임계 영역에 수행할 작업 코드 작성 -> 쓰는중.. 3. 다 썼으니 이제 너네 써 -> Lock 라이브러리의 unlock() 함수 호출 var sharable = 1 fun Lock..

Deperecated/Kotlin 2020.04.10

코틀린 기본 -2 (변수)

코틀린은 변수를 사용할 때 반드시 값이 할당되어 있어야 한다는 원칙이 있다. 1. NULL 코틀린이 NPE에서 자유로울 수 있는 이유는 위 원칙에 따라 변수에 아예 NULL을 허용하지 않기 때문이다. 코틀린에서는 NULL 상태인 변수를 허용하려면 물음표(?) 기호를 사용해 선언해야 한다. 이 변수를 사용하는 순간 NULL을 검사하고 처리하는 방법까지 고려해야 한다. 2. 세이프 콜과 NON-NULL 단정 기호를 활용하여 NULL 허용 변수 사용하기 2-1) 세이프 콜 -> ?. NULL이 할당되어 있을 가능성이 있는 변수를 검사하여 안전하게 호출하도록 도와주는 기법 println("str: $str1 length: ${str1?.length}") str1이 null이 아니면 멤버변수인 length에 접근..

Deperecated/Kotlin 2020.04.08

코틀린 프로젝트 구성

코틀린 프로젝트는 모듈, 패키지, 파일로 구성되어 있다. 프로젝트를 여행에 비교하자면 모듈 = 목적지 / 패키지 = 캐리어 / 파일 = 캐리어 속의 짐 1. 그들의 관계.. 프로젝트 안에는 n개의 모듈, n개의 패키지, n개의 파일이 들어있다. 큰 프로젝트에서는 대체로 기능을 모듈로 분리해서 사용한다. 파일안에는 n개의 클래스가 올 수 있으며, 2개 이상의 클래스가 포함되어있을 경우 IDE 파일 관리자 화면에 파일에 .kt확장자가 포함되서 나타나며 1개만 들어가있다면 그냥 클래스 이름만 보이게 된다. 패키지를 만들어야 하는 이유는 파일(클래스)이름이 같더라도 패키지가 다르다면 다르게 이식하기 때문에 대규모 프로젝트에선 클래스 이름이 같아서 일어나는 오류를 피하기위해 패키지를 만드는것이 좋다.

Deperecated/Kotlin 2020.04.07

<2020.04.06> Android_Weekly #408

안드로이드 위클리를 읽고 새로 알게된 개념에 대해 간단히 써놓는 카테고리 1. App Standby Buckets https://medium.com/mindorks/app-standby-buckets-in-android-ada2d2929350 App Standby Buckets In Android Google has been continuously making changes in every version of Android for better user experience. Battery(power) optimisation is among… medium.com 안드로이드 파이(Version 9 API LEVEL 28)에 소개된 Adaptive Battery를 위한 기능. 앱을 4가지 버킷으로 나눠서 관리한..

안드기본서

1. Inflation - XML 레이아웃에 정의된 정보를 메모리 상에서 객체로 만드는 객체화 과정 - 애플리케이션이 시작될 때 이 과정을 거쳐 메모리 상에 만들어진 객체들을 참조하기 위해 ID를 지정함. 2. 크기 표현 단위 단위 단위 표현 설명 dp or dpi 밀도 독립적 픽셀 (density independent pixel) 160dpi 화면을 기준으로 한 픽셀 ex) 1인치 당 160개의 점이 있는 디스플레이 화면에서 1dp는 1px와 같음. 1인치 당 320개의 점이 있는 디스플레이 화면에서 1dp는 2px와 같음. sp or spi 축척 독립적 픽셀 (scale independent pixel) 가변 글꼴을 기준으로 한 픽셀로 dp와 유사하나 글꼴의 설정에 따라 달라짐 3. 다양한 레이아웃 ..

안드로이드 - Context란

Context 계속 쓰는데 뭔지 모르겠다... 1. 안드로이드 Developers 설명 Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. 어플리케이션 환경에 관한..

안드로이드 - Content Provider

1. Content Provider란? - 안드로이드 4대 구성 요소 중 하나로 애플리케이션이 저장한 데이터를 다른 애플리케이션이 사용할 수 있도록 제공하는 개념이다. - 안드로이드OS가 B의 요청을 받고 A가 DB에 저장해놓은 데이터들을 제공하라고 A의 Content Provider를 동작시키고 안드로이드OS가 그 데이터를 받아 최종적으로 B가 받아가는 형식이다. 2. 예제 : APP2가 APP1의 데이터의 데이터를 받아와 SELECT/DELETE/UPDATE/DELETE하는 예제. 1. APP1에 ContentProvider()을 상속한 MyContentProvider 클래스를 생성한다. 2. SELECT(query), INSERT, DELETE, UPDATE 함수를 구현한다. lass MyConte..

안드로이드 - SQLite 데이터베이스(2)

1. 제공되는 클래스 - 안드로이드는 SQLite를 사용할 때 표준 SQL 쿼리문 사용 대신 사용할 수 있는 클래스를 제공하고 있다. - 클래스를 이용하는 방법 OR SQL문을 사용하는 방법 중 편한 방법을 사용한다. 1. INSERT // 5. DB 오픈 var helper = DBHelper(this) var db = helper.writableDatabase // 1. 클래스를 이용하는 방법 - INSERT var sdf = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()) var date = sdf.format(Date()) // (textData, intData, floatData, dataData) values (?, ?, ?, ?) -> 1:1 배치..

안드로이드 - SQLite 데이터베이스(1)

1. SQLite 데이터 베이스 - 안드로이드에서 사용하는 내장 데이터 베이스로 표준 SQL문을 사용하는 관계형 DB이다. - MySQL과 유사한 문법을 사용하고 있으며 일반적인 관계형 DB가 가지고 있는 기능을 갖고 있다. - 애플리케이션의 내부저장소에 생성된다. 2. DB 생성 1. SQLiteOpenHelper을 상속하는 DBHelper 클래스를 생성한다. // 1. 클래스 생성 // (부모 클래스 4개 생성자) // name : DB의 이름. // version : DB파일의 기록. (이전 데이터는 날아가면 안되니까) // 유지보수 단계에서 DB를 바꿀경우 version 숫자를 바꾸고, 바꾸면 onUpgrade()가 호출된다. class DBHelper(context : Context) : SQL..

안드로이드 - 데이터 관리 - 파일 입출력

1. 안드로이드 저장소 - 안드로이드는 애플리케이션이 데이터를 저장할 수 있는 저장소를 두 가지로 제공하고 있다. 1. 내부 저장소 : - 애플리케이션을 통해서만 접근이 가능하다. - 코드를 통해서 접근할 수 있는 저장소. - 각 애플리케이션 마다 내부 저장소를 갖고있으며 앱이 삭제되면 내부 저장소도 삭제된다. 2. 외부 저장소 : - 단말기 내부의 공유 영역으로 모든 애플리케이션이 접근 가능하다. - 단말기를 컴퓨터에 연결하면 탐색기를 통해 접근 할 수 있는 영역을 의미한다. - 용량 or 공유 목적으로 사용된다. 2. 파일 입출력 1. 내부 저장소 - openFileInput, openFileOutput 2. 외부 저장소 - FileInputStream, FileOutputStream - 외부 저장소..