일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 앱바
- textview
- Kotlin
- Compose
- viewmodel
- Dialog
- data
- Button
- 계측
- binding
- DART
- 테스트
- activity
- livedata
- textfield
- 앱
- tabbar
- ScrollView
- Flutter
- Coroutines
- appbar
- CustomScrollView
- drift
- scroll
- android
- Navigation
- TEST
- intent
- 안드로이드
- LifeCycle
- Today
- Total
목록안드로이드/Kotlin (17)
Study Record
😶 data class (데이터 클래스) 데이터 클래스는 데이터를 보유하는 것이 주된 목적의 클래스이다. data class User(val name: String, val age: Int) 데이터 클래스 주의점 데이터 클래스에는 생성자에 매개변수가 하나 이상 있어야 하며 모든 생성자 매개변수는 val, var 로 표시되어야 한다. 또한, 데이터 클래스는 abstract 또는 open, sealed, inner 일 수 없다. 데이터 클래스는 .componentN(), copy() 함수에 대한 명시적인 구현은 허용되지 않는다. 데이터 클래스는 자동으로 componentN() 함수를 생성해 주기 때문에 Destruction declaration 이 가능하다. 😶 Destructuring declaration..
😶 Extensions 살펴보기 상속하거나 데코레이터와 같은 디자인 패턴을 사용할 필요 없이 새로운 기능을 가진 인터페이스를 확장할 수 있는 기능을 Extensions 을 통해 수행할 수 있다. 수정할 수 없는 클래스 혹은 타사 라이브러리 인터페이스에 대해 새로운 함수를 작성할 수 있다. Extensions Function(확장 함수)의 예시는 다음과 같다. 예시 테스트 클래스의 확장 함수는 이름 앞에 테스트 클래스의 이름을 적고 점(.)으로 확장 함수의 이름으로 나머지 함수를 정의하면 된다. this 키워드로 확장하는 클래스를 참조할 수 있다. class TestClass(val member: T) { fun printLine() { println("TestList Class 의 printLine() ..
😶 Enum Class 개요 enum class TestEnum { PLUS, TIME, MIN; } fun main() { for(value in TestEnum.values()) println(value.name) // kotlin 1.9.0 일 경우 for(value in TestEnum.entries) println(value.toString()) } 코틀린에서 enum 은 상수 집합을 보유할 수 있는 데이터 타입이다. class 앞에 enum 키워드를 추가하는 것으로 enum class 를 정의할 수 있고 클래스 내 열거 상수를 쉽표로 구분한다. enum class Direction { NORTH, SOUTH, WEST, EAST } 예시 코드의 NORTH, SOUTH 등의 열거 상수들은 전부 ..
코틀린의 모든 Exception class 는 Thrwoable 클래스를 상속받는다. 모든 Exception(예외)는 메시지, 스택추적, 선택적 원인을 가지고 있다. 😶 예외 발생시키기 예외를 발생시키는 것은 throw 표현을 사용한다. throw Exception("Hi There!") 😶 예외 잡기 예외가 발생하여 프로그램이 종료되는 것을 막으려면 try...catch 표현을 사용한다. try { // some code } catch (e: Exception) { // handler } finally { // optional finally block } try 에 예외가 발생할 가능성이 있는 코드를 적는다. try 문을 실행하는 동안 catch 의 Exception 종류에 따라 예외가 발생했을 때 처..
😶 Thread 와 Android 개요 앱을 만들면서 서버와의 통신(네트워킹), 데이터베이스 작업과 같은 고급 기능을 추가하면서 작업 수행 시간이 길어지면 앱의 UI가 끊겨서 보이거나 버튼을 클릭했을 때 실행되지 않은 것처럼 보이기도 한다. 작업 수행이 길면 왜 이런 문제점이 생기느냐를 논하기에 앞서, 스레드의 개념을 알고 있어야 한다. 스레드는 프로그램이 실행되는 가장 작은 코드 단위이며 단순하게 스레드를 앱에서 코드를 실행하는 단일 경로라고 생각할 수 있다. 코드 한 줄이 실행이 끝나야 다음줄로 넘어갈 수 있다. 같은 블록에 작성된 코드는 동일한 스레드에서 순차적으로 실행된다. 모든 앱은 메인 스레드(UI 스레드)가 하나씩 있고 개발자가 코드로 스레드를 생성/시작시킬 수 있다. 이렇게 실행 중인 앱에..
Property 선언하기 코틀린 클래스에서 Property는 var, val 키워드를 사용하여 선언할 수 있다. val 키워드가 붙으면 읽기만 가능하며 var 키워드가 붙으면 수정가능하다. class Address { var name: String = "Holmes, Sherlock" var street: String = "Baker" var city: String = "London" var state: String? = null var zip: String = "123456" } Getters and Setter Property 에 Getter와 Setter를 선언할 수 있다. 선택적이기 때문에 반드시 구현할 필요는 없다. 구현하지 않으면 자동으로 Kotlin이 기본 Getter와 Setter를 선언해..
😶 Object 새 하위 클래스를 명시적으로 선언하지 않고 일부 클래스를 약간 수정한 객체를 만들어야 할 때가 있다. Kotlin 은 Object 선언과 Object expression 으로 이를 처리한다. 😶 Object expression Object expression 은 클래스 선언으로 명시적으로 선언되지 않은 익명 클래스의 개체를 만든다. 이러한 클래스는 일회용으로 객체 선언과 동시에 정의되거나 기존 클래스에서 상속하거나 인터페이스를 구현할 수 있다. 이렇게 정의된 인스턴스는 클래스 이름을 가지지 않으므로 익명 객체라고도 불린다. 1. 익명 객체 만들기 val helloWorld = object { val hello = "Hello" val world = "world" fun getString(..
😶 람다식 peopleAges.forEach { print("${it.key} is ${it.value}") } 매개 변수가 있는 함수 이름뒤에 괄호가 오는 대신 {} 중괄호 안에 일부 코드가 표시되는 것을 람다식이라고 부른다. 중괄호 안에 함수를 작성했지만 함수 이름이 없는 것과 같다. 😶 함수 유형 Kotlin 에는 입력 매개 변수 및 반환 값을 기반으로 특정 유형의 함수를 정의할 수 있는 함수 유형이 있다. val triple: (Int) -> Int = { a: Int -> a * 7 } // 42 println(triple(6)) 예시의 triple 은 Int 형식의 매개 변수를 가지며 Int 형식의 값을 리턴해야 한다. triple(6) 이렇게 선언하면 6 이라는 Int 매개 변수를 가지며 리..