내배캠 - Android 학습 자료 정리
1. Jetpack 이란?
-안드로이드는 수많은 각각의 버전과 여러 버전이 있어 개발하는데 어려움이 생기는 것을 해결하기 위해 모든 버전과 기기에서 일관되게 동작할수 있게 도와주는 라이브러리이다.
binding 사용법 정리
1. 먼저 앱 수준의 gradle에서 viewBinding을 설정하고 sync Now를 해준다.
2. MainActivity의 기본 코드 작성
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
}
-여기까지 완료되면 binding을 사용할 수 있다.
Kotlin 기본 문법
1. 변수
-자바와 달리 타입선언 없이 바로 값을 할당 가능
-코틀린은 타입 추론(type inference)기능으로 변수의 타입을 생략 가능
var(Variable)
-가변(mutable type) 변수로 값의 읽기와 쓰기가 모두 허용되는 변수
val(Value)
-불변(immutable type) 변수로 값의 읽기만 허용되는 변수
+값을 초기화만 가능하고 변경은 불가능하다. (= Java의 final)
const val / val 차이
-val는 런타임 시점에 값을 할당
-const val는 컴파일 시점에 값을 할당
+컴파일 시점에 값을 할당하면 컴파일러는 해당 상수가 가지고 있는 값을 미리 알 수 있다.
2. 조건문
(이론적으로 알고 있어서 예제를 통해 진행)
if문
if{
...
} else if {
...
} else {
...
}
when문
when(파라미터) {
비교값1 -> ... //변수 값 = 비교 값 같을 경우 실행
비교값2 -> ...
비교값3 -> ...
else -> ...
}
//미니 퀴즈
var result = when (10) {
9 -> { true }
in 5..20 -> { false }
else -> { true }
} //결과 값 : false
3. 컬렉션
list
-데이터에 인덱스를 부여한 컬렉션이며 중복된 값 입력 가능
-add(추가), get(사용), set(수정), removeAt(제거)
var mutableList = mutableListOf(1,2,3) //리스트 선언
mutableList.add(4) //1,2,3,4
println(mutableList.get(1)) //2
//mutableList.get(1) == mutableList[1]
mutableList.set(0,0)//0,2,3,4
//mutableList.set(0,0) == mutableList[0] = 3
mutableList.removeAt(0) //2,3,4
-mutableList, mutableMap, mutableSet = 동적으로 리스트를 사용하기 위해 리스트 자료형 앞에 Mutable이 붙는다.
var list = mutableListOf(1,2,3)
var list = listOf(1,2) //Immutable Collection
set
-중복을 허용하지 않는 리스트
-인덱스 x , remove(삭제)
map
- key-Value의 쌍으로 입력
//미니 퀴즈
var map = mutableMapOf<String, String>()
map.put("키1", "값2")
map.put("키2", "값2")
map.put("키3", "값3")
map.remove("키3")
Log.d("Collection", "${map.get("키3")}")
//null
4. 반복문
for
for(i in 1..10){ //1<= .. <=10
print(i)
}
println()
for(i in 1 until 10 ){ //1<= .. <10
print(i)
}
println()
for(i in 1..10 step 2) //13579
print(i)
println()
for(i in 10 downTo 1) //10<= ..<=1
print(i)
println()
while
var a = 1
var b = 10
var cnt = 0
while (a <= b){
a += 1
cnt++
}
print(cnt) // 10
+ break, continue
//미니 퀴즈
for (index in 0..1000){
if (index > 999){
Log.d("for", "$index")
}
} // 1000
var result = 1
while (result < 100) { result += result }
Log.d("while", "$result")
//128
//1+1 = 2
//2+2 = 4
//4+4 = 8
...
//64+64 = 128
5. 함수
fun main() {
println(plus(4,2)) //6
println(minus(4,2)) //2
println(square(4,2)) //8
println(division(4,2)) //2
}
fun plus(x: Int, y: Int): Int {
return x + y
}
fun minus(x: Int, y: Int): Int {
return x - y
}
fun square(x: Int, y: Int): Int {
return x * y
}
fun division(x: Int, y: Int): Int {
return x / y
}
fun main() {
print(profile("홍길동",25,"도사"))
}
fun profile(name: String, age: Int, nickname: String) {
print("이름은 ${name}이고 나이는 ${age}이며 별명은 ${nickname}입니다.")
}
fun main() {
var x = 3
print(sum(x))
}
fun sum(x:Int): Int {
var result = 0
for (number in 1..x)
result += number
return result
}
6. 클래스
쉽게말해 변수 + 함수 구조
class 클래스명 {
var 변수
fun 함수1 () {
...
}
fun 함수2 () {
...
}
}
클래스의 constructor에서 설명이 어려워서 더 찾아보고 다음 TIL에서 이어서 작성하겠습니다.
'Kotlin > TIL' 카테고리의 다른 글
TIL 6 (01.26) (1) | 2024.01.26 |
---|---|
TIL 5 (01.25) (1) | 2024.01.25 |
TIL 4 (01.24) (0) | 2024.01.24 |
TIL 3 (01.23) (1) | 2024.01.23 |
TIL 2 (01.22) (0) | 2024.01.22 |