전체 글 501

layout 설정하는 방법 (LinearLayout, match_parent, wrap_content)

1. LinearLayout이란? 반드시 Layout을 짤때는 여는괄호와 닫는괄호과 선언되어있는것이 동일해야 합니다. cf. LinearLayout은 겹겹히 층으로 배치가 된다는 뜻입니다. 그래서 LinearLayout만 선언을 하게 된다면, 가로로도 세로로도 겹겹이 쌓일 수 있기때문에 가로로 쌓이길 원한다면 vertical을 추가합니다. 2. match_parent란? 부모에게 맞추겠다라는 뜻입니다. 보시면 TextView의 상위 컴포넌트는 LinearLayout입니다. 그리고 그 상위 컴포넌트에 맞춰서 꽉꽉 채우겠다는 뜻입니다. 3. wrap_content TextView의 콘텐츠 높이 맞춰서 공간을 차지하겠다는 뜻입니다.

안드로이드 스튜디오(Android studio) 파일의 개념 (manifests, java, res, gradle scripts)

1. manifests 안드로이드 OS에 실제로 앱이 어떻게 동작하는지, 어떤 구조로 되어있는지에 대한 설명을 써놓은것입니다. 즉 얼굴입니다. 여기에는 나와있지 않지만, 권한 설정하는것도 여기서 설정할 수 있습니다. 2. java Java라는 폴더에 들어가면 소스코드를 확인 할 수 있습니다. 3. res res폴더에 들어가면 4가지 폴더를 볼 수 있습니다. drawable, layout, mipmap, values를 볼 수 있습니다. 각각 의미하는것을 하나씩 파헤쳐 봅시다. 1. drawable 이미지 리소스를 저장하고 있는 폴더 입니다. 2. layout 어떤구조로 그려질지 보여주는 도화지같은 역할을 합니다. 3. mipmap 이미지가 들어가 있는 폴더입니다. 4. values 안드로이드 스튜디오에서 ..

안드로이드 스튜디오(Android Studio)의 기본 개념 (Log cat, Project, Android)

Log cat이란? 로그라는것은 어떤 행위에 대한 기록을 말하는 것입니다. 그래서 만약에 연결되어있는것이 아무것도 없으면 log가 찍혀나오는것을 보실 수 없습니다. 보시면 에뮬레이터가 연결되었다는것, app_part1_chapter2라는 프로젝트에 연결, 그리고 밑에는 본인이 작업한 시간과 행위가 찍혀있는것을 보실 수 있습니다. 실제 프로젝트 파일의 존재를 실제 구조로 나타낸 것입니다. 안드로이드는 폴더의 복잡한 경로를 간단하게 표현이 되어있어서 편리하게 사용할 수 있습니다. 즉, 실행하는데 필요한 파일들만 간단하게 나와있는 것입니다.

Lambda expression

button.setOnclickListener(new View.onClickListener(){ @Override public void onClick(View view){ ``` } }) 자바에서는 다음과 같이 이벤트리스너를 표현합니다. 코틀린에서는 간단하게 표현할 수 있습니다. 하나만 이벤트처리를 해야하는 경우에는 간단하게 할 수 있습니다. 그리고 코틀린은 파라미터가 하나이면 생략이 가능하기 때문에 더욱 간단한 코드가 만들어질 수 있습니다. button.setOnclickListener{v -> }

Android/Kotlin 2021.07.05

Data Class

코틀린은 자바와 다르게 Data Class를 제공하고 있습니다. public class JavaObject { private String s; JavaObject(String s){ this.s = s; } public String getS(){ return s; } public void setS(String s){ this.s = s; } } 다음은 자바코드 예시입니다. 자바코드를 보면 알 수 있듯이, getter와 setter로 값을 접근하여 지정해야하기 때문에 번거롭고 긴 코드가 되는것을 볼 수 있습니다. 말그대로 data class는 데이터를 저장하는 목적으로 만들어진 class입니다. 일반 자바코드와 다르게 다음과 같이 간단하게 표현할 수 있습니다. data class JavaObject(val..

Android/Kotlin 2021.07.05

With 함수 & Run 함수

val person = Person() with(person) { work() sleep() println(age) } Person person = new Person(); person.work(); person.sleep(); System.out.println(person.age); with함수의 결과값은 람다의 결과값이기 때문에 person의 객체나 값을 호출할 수 있습니다. val result = service.run { port = 8080 query() } service.port = 8080 Result result = service.query() run함수는 with함수와 비슷하게 함수의 결과값을 표현한다는것에 있지만, with함수는 확장함수로 사용하는것이 불가능합니다. run함수는 확장함수로..

Android/Kotlin 2021.07.05

타입추론과 함수

타입추론이란? 변수나 함수들을 선언할 때나 연산이 이루어질때 자료형을 코드에 명시하지 않아도 코틀린이 자동으로 자료형을 추론해주는 기능입니다. 이는 변수가 선언될 때 할당된 값의 형태로 해당 변수가 어떤 자료형을 가진지 추론이 가능하기 때문입니다. 따라서, 반드시 특정한 자료형으로 지정해야하는 상황이 아니라면 대부분은 코틀린의 타입추론을 이용하여 코드량을 줄일 수 있습니다. 함수란? 함수는 특정한 동작을 하거나 원하는 결과값을 연산하는데 사용합니다. 다음과 같이 add라는 함수를 반환하는 값의 형태가 Int이므로 Int를 선언해줍니다. 그런데 이 함수는 단순히 더하는 역할만 하는 함수이므로 단일표현식함수를 사용할 수 있습니다. 방금전에 만든 함수와 같은 기능의 함수를 간단하게 표현할수 있는데요, 반환하는..

Android/Kotlin 2021.07.02

형변환과 배열

형변환이란? 하나의 변수에 지정된 자료형을 호환되는 다른 자료형으로 변경하는 기능을 말합니다. 만약, 형변환 작업없이 바로 변한값을 값 재정의 해버리면 오류가 납니다. kotlin은 자료형 간의 형변환을 지원하기 위해 형변환 함수를 제공하고 있습니다. to뒤에 반환될 자료형을 입력하면 됩니다. ex) toByte(), toShort(), toInt(), toLong() 다음과 같이 형변환 함수를 사용해주어야지 오류가 생기지 않습니다. 이러한 방식은 명시적인 형변환이라고 합니다. 형변환시 발생할 수 있는 오류를 막기 위해 다른 언어들이 지원하는 '암시적 형변환'은 지원하지 않습니다. 명시적 형변환이란? 개발자들이 직접 지정하여 형변환하는 작업을 말하는것이고 암시적 형변환이란? 변수를 할당할 시 자료형을 지..

Android/Kotlin 2021.07.02

선언방식, null 값을 사용하는 방법에 대해서(feat. null pointer exception)

클래스 이름은 파스칼 표기법을 사용합니다. (모든 단어를 대문자로 시작) ex) ClassName 함수나 변수 이름은 카멜 표기법을 사용합니다. (첫단어만 소문자로 시작) ex) functionName var val 일반적으로 통용되는 변수 언제든지 읽기 쓰기가 가능함 선언시에만 초기화 가능. 중간에 값을 변경할 수 없음 runtime시 값이 변경되는걸 원치 않는다면 val을 이용합니다. 이 현상은 일반 고전언어와 가장 큰 차이점인데요, 고전적인 언어들은 변수가 선언된 후 초기화 되지 않으면 기본값으로 초기화 되거나 값이 할당되지 않았다는 표시로 null값을 가지게 됩니다. 하지만, kotlin은 기본변수에서 null을 허용하지 않으며, 또한 변수에 값을 할당하지 않은채로 사용하게 되면 문법에러를 표시하..

Android/Kotlin 2021.07.02