본문 바로가기

안드로이드

(9)
[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 강의
[Android Studio] 간단한 Project 만들기 버튼을 누르면 text가 바뀌는 간단한 Project를 만들어 볼 것이다. 과정 New -> Project -> Empty Activity 주의: Package name은 중복되거나 example이 들어가서는 안된다. xml파일부터 확인. Attributes를 클릭해서 속성창 확인 xml파일이 HTML이고, 코틀린이 JS라고 생각하면 될 거 같다. 버튼을 눌러서 하단에 배치 button에 constraint를 설정. constraint는 어딘가에 붙일 수 있는 용수철이라고 보면 된다. 좌우로 연결했기 때문에 중앙으로 정렬이 되었고, 상단의 Hello world와도 연결했지만 20dp만큼 거리를 줬기 때문에 조금 떨어진 것을 볼 수 있다. 이미 중앙 정렬된 속성이 있으면 Constraint를 그냥 해당 속..
[Android Studio] 여러 에러들 task 'wrapper' not found in project ':app' build.gradle에 저 코드 추가 하고 sync하기 task wrapper(type: Wrapper) { gradleVersion = '7.0' } Reference https://velog.io/@vector13/Android-Studio-task-wrapper-not-found-in-project-app-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95 위의 에러를 해결했더니 또 new Error가 날 도장깨기하러 왔다. prepareKotlinBuildScriptModel Task fails in a Java project build.gradle에 저 코드 추가 하고..
[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가 부생성자라는 것을 알아야 합니..