본문 바로가기

안드로이드/Kotlin

(7)
[Kotlin] ActivityMainBinding 에러 갑자기 ActivityMainBinding에 빨간줄이 뜨면서 사용하지 못하는 현상이 발생했다. 우리의 GPT에게 질문해봤다.  운이 좋게도 가장 먼저 눈에 띈 Gradle Sync를 하니 해결되었다.Gradle file을 건드린 적은 없었는데 왜 발생했나 하니...  라고 답변해줬다. AI가 무섭게 발전하고 있다.
[Kotlin] 조건문 학습 내용비교 연산자, >=, ==, ===, != !====과 ===은 Java의 equal()과 ==의 차이.Kotlin의 ==는 값을 비교, ===은 주소를 비교한다.논리 연산자||, &&, !ifif (조건식) {}의 구조if, else if, else로 구성when대부분의 언어에서의 switch분기가 많은 경우, 가독성이 좋다.예제 코드 package com.kangwlgns.myapplicationimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.util.Logimport com.kangwlgns.myapplication.databinding.ActivityMainBindingclass Ma..
[Kotlin] 변수와 상수 학습 내용 선언 var(val) [변수 이름] = [값] 타입 추론이 가능한 언어이지만, 타입을 명시해주는 것이 좋다. 값을 할당하지 않는다면 반드시 타입을 명시해야 한다. 선언된 변수의 타입을 바꿀 수 없다. 기본 타입 실수 Double (ex. 1.2) Float (ex. 1.2F) 정수 Int (ex. 10) Long (ex. 10) → 기존에는 정수 뒤에 L을 붙여야 했지만, 최신 버전 Android Studio에서는 L을 붙이지 않아도 된다. Short Byte 문자 Char (ex. 'a') 불린 Boolean (ex. true) 변수와 상수 변수 var로 선언한 경우 수정 가능 naming convention은 camelCase를 따른다. 상수 val로 선언한 경우 수정 불가능 naming ..
[Kotlin] 문법 기초 학습 내용 변수와 상수 변수 var로 선언한 경우 수정 가능 naming convention은 camelCase를 따른다. 상수 val로 선언한 경우 수정 불가능 naming convention은 SNAKE_CASE를 따른다. if 분기를 위한 구문 style은 Java와 동일하다. for 반복을 위한 구문 style은 Rust와 동일하나, 루프 제어문을 소괄호로 감싼다. Code 변수와 상수 package com.kangwlgns.myapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import com.kangwlgns.myapplication.databind..
[Kotlin] Log 사용하기 로그를 사용해 볼 것이다. Log.d 파라미터로 tag, msg를 받는다. tag는 많은 앱들의 로그 중에서 어떤 로그인지 식별하기 위한 용도 msg는 실제 로그에 띄울 메시지 위와 같이 Log.d를 작성해 주고 에뮬레이터를 실행해 보자. 하단의 Logcat을 눌러서 로그를 확인해 보자. 벌써부터 수많은 로그가 날 반긴다. 이래서 tag를 사용해야 한다. 위 검색 창에 tag:TAG로 tag검색을 해주면, tag가 TAG인 모든 로그가 나온다. 마지막 로그는 Log.d로 찍은 로그임을 확인할 수 있다. 코드를 조금 변경해서 버튼을 누르면 로그를 수집하도록 작성하였다. TAG를 상수로 선언하고 사용하는 것은 하나의 꿀팁 버튼을 누르니 잘 작동한다. Reference 강의
[Kotlin] 생성자 코틀린의 생성자는 constructor()를 사용하여 만들 수 만들 수 있습니다. Java에서 클래스이름을 사용하던 것을 constructor로 바꾸면 끝입니다. class Student { var name = "" var score = 0 constructor(name: String, score: Int) { this.name = name this.score = score } } fun main() { var st1 = Student("강지훈", 33) } 타 언어와 다르지 않은 생성자 선언 방식입니다. 하지만 여기서 더 나아가서 다른 방식으로도 만들어 줄 수도 있습니다. 우선, Kotlin에는 생성자에는 주생성자와 부생성자 두 종류가 있다는 것과, constructor가 부생성자라는 것을 알아야 합니..
[Kotlin] 빠른 입출력 사실 Kotlin에서 입출력은 크게 쓸모가 없지만, 알고리즘 문제 풀이를 위해 정리하였습니다. https://www.acmicpc.net/problem/15552 해당 문제를 풀이하였습니다. (백준 15552번 빠른 A+B) [일반 입출력] fun main() { var T = readLine()!!.toInt() while (T-- > 0) { var twoNums = readLine()!!.split(' ') println(twoNums[0].toInt() + twoNums[1].toInt()) } } Kotlin으로 할 수 있는 가장 기본적인 입출력입니다. 당연히 해당 코드를 제출하면 시간 초과입니다. 빠른 입출력을 얻기 위해 여러 시도를 해봤고, 나름의 방법을 찾았습니다. 입출력 구조를 새로 정의..