안드로이드 5

안드로이드 액티비티 생명주기

*참고 저서 코틀린 기본 구문을 익힌 후엔, 책에 따라 여러 실습을 하고 있다. 중요한 개념들을 많이 거쳐온 것 같아, 몇 가지를 정리해보려 한다. 8장에 있는 액티비티 생명주기이다. 어플리케이션의 하나의 화면, 즉 액티비티는 특정한 생명주기를 지니고 있다. 특정 시점에 특정 메서드가 호출되도록 되어 있으며, 개발자는 해당 시점에 어떻게 동작할 것인지에 따라 각 메서드를 오버라이딩하는 것이다. 이 메서드들을 콜백 메서드라고 할 수도 있다. 가장 먼저, 액티비티의 생성과 함께 실행되는 메서드가 onCreate()이다. 안드로이드 스튜디오에서 액티비티를 생성하면 기본적으로 작성되어있는 메서드이기도 하다. onCreate 내에 코드를 추가하면, 생성과 동시에 코드들이 실행된다. package com.examp..

코틀린 기본 구문 (컬렉션, 람다)

*참고저서 1. 컬렉션(Collection) 자바에서와 마찬가지로 컬렉션은 유용한 자료구조들을 제공한다. 1)리스트 (List) 배열처럼 자료형을 순서대로 가지고 있는 자료구조로, 추가, 삭제, 교체가 더욱 간편하다. val foods:List = listof("라면","갈비","밥") // val foods = listof("라면","갈비","밥")도 가능 val drinks = mutableListOf("콜라","물","마운틴듀") drinks.add("우유") // 추가 drinks.removeAt(0) // 삭제 drinks[1] = "녹차" // 교체 listOf를 사용하여 작성하고, 자료형을 생략할 수 있다. 추가,삭제,교체가 가능한 리스트를 만들 경우 mutableListOf를 사용한다. 2..

코틀린 기본 구문 (인터페이스, null 가능성)

*참고 저서 1. 인터페이스 (interface) 자바에서의 인터페이스와 같이 기능해, 다중 구현이 가능하다. 사용법 역시 거의 비슷하다. interface Runnable{ fun run() } class Human : Runnable { overrride fun run() { println("달린다") } } 자바의 인터페이스와는 다르게, abstract 키워드를 생략할 수 있다. 2. null 가능성 코딩을 하다 보면 nullExceptionError를 빈번히 마주하게 된다. 객체에 null이 할당되어 있을 때, 생기는 에러이다. 코틀린의 경우 null safety에 상당히 엄격하다. null을 기본적으로 불허하며, 별도의 연산자를 이용해 null을 허용해야 한다. 이 경우 변수를 호출할 때도 별도..

코틀린 기본 구문 (제어문, 클래스)

*참고저서 1. 제어문 1) if 자바의 if 문과 동일하다. val max = if (a>b) a else b 와 같이 식으로도 사용이 가능하다. 2) when 자바의 switch 문에 대응하는 제어문이다. 조건을 상수값 하나로 주는 것은 당연히 가능하고 in 키워드를 이용해 범위로 주는 것도, else와 같이 지정하는 것도 가능하다. 자바에서는 각 case마다 break문이 필요했으나, 코틀린은 그렇지 않다. '숫자..숫자'의 문법은 두 숫자간의 범위를 말한다. 뒤 쪽 숫자도 포함하는 범위이다. val x = 1 when (x) { 1 -> println("x==1") 2,3 -> println("x==2 or x==3") in 4..7 -> println("4~7") !in 8..10 -> prin..

코틀린 기본 구문 (변수/상수 , 함수, 자료형)

* 참고 저서 1. 변수와 상수 (var,val) 코틀린에서는 변수를 var, 상수는 val을 사용하여 선언한다. 이때 var은 값을 변경할 수 있으며, val은 값을 변경할 수 없다. 선언 이후 값을 변경하려할 시 에러가 발생하게 된다. Java의 final 키워드와 같다고 할 수 있다. 또 변수 선언 시 자료형을 적게 되어 있으나, 명시하지 않아도 파이썬처럼 형추론을 지원한다. var a: Int = 10 //변수 val b: Int = 20 //상수 // var a = 10 과 같이도 선언 가능 2. 함수 (function) 코틀린에서 함수를 선언하는 방식은 다음과 같다. fun 함수명(인수1:자료형, 인수2:자료형): 반환자료형 { // 함수 내용 } 반환값이 존재하지 않을 시에는 반환자료형 자리..