![코틀린을 공부해보자 - (1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFy9fd%2FbtrZlXW2xRx%2F7yuFuKuIitCaoBr9cZ1Hj1%2Fimg.png)
안드로이드 스튜디오 + 코틀린을 통해 안드로이드 어플 제작을 공부해보려고 한다.
궁금하기도 했고, 알아두면 안드로이드 OS가 돌아가는 방식에 대해 더 알 수 있다는 조언을 들었다.
현 회사에서 유니티로 모바일게임 제작을 하기 때문에, 알아두면 더 좋을 것 같았다.
시작해보자.
코틀린과 안드로이드 스튜디오
코틀린은 구글에서 채택한 안드로이드의 공식 언어이다.
기존에는 자바를 사용했지만 현재는 코틀린이 공식언어가 됐다.
코틀린이 공식 언어가 되어버린 이유.. 구글과 오라클의 뒷 얘기도 있던데 정확히는 보지 못했다.
아무튼 코틀린은 자바를 100% 호환한다고 한다.
Download Android Studio & App Tools - Android Developers
Download Android Studio & App Tools - Android Developers
Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.
developer.android.com
나는 최종 목표로는 안드로이드 어플을 만들거라서 안드로이드 스튜디오를 이용해서 공부를 시작했다.
프로그램을 깔기 귀찮으신분들은 구글에 '코틀린 웹 컴파일러' 라고 검색해서 웹에서 하셔도 상관 없다.
프로젝트 만들기
안드로이드 스튜디오를 설치 후 실행하면 복잡한 창들이 뜬다.
File - New - New Project 를 클릭하고,
Empty Activity를 선택해서 프로젝트를 생성해주었다.
코틀린 파일 생성
생성을 하면 위와 같이 프로젝트가 만들어진다.
위 사진처럼 목록에서 오른쪽 클릭을하고 코틀린 파일을 선택해준다.
내가 본 강좌에서는 그냥 File을 통해 생성을 했는데, Class가 없다보니까 오류가 떴다.
당장 클래스를 쓰지 않더라도 Class로 만들어두는것을 추천한다.
코틀린의 기본들
메인 함수
fun main(){
println("Hello World!")
}
코틀린은 메인함수를 이용해서 코드를 실행시킨다.
세미 콜론도 없다.
변수 - val 과 var
var name = "철수"
val name1 = "영희"
하필 비슷해서 참 헷갈린다.
var은 변수가 가변인지, val 은 변수가 불변인지를 말한다.
그리고 위와같이 변수 선언과 동시에 초기화를 하여 타입 추론이 가능하다면 상관없지만,
그게 아니라면 자료형을 꼭 입력해주어야 한다.
var name : String
val name1 : Int
코틀린에서의 자료형은 이런식으로 입력한다.
함수
함수의 기본 형태와 리턴
//리턴X
fun NoReturn() : Unit {
}
//리턴O
fun YesReturn() : Int {
return 1
}
기본적으로 fun 함수명() : 리턴타입{ } 형식으로 입력해주며,
리턴이 없는 함수는 함수 뒤에 : Unit을 붙인다. (생략이 가능하다.)
리턴이 있는 함수는 함수 뒤에 : 리턴 자료형을 꼭 붙여주어야 한다. (생략 불가)
함수의 매개변수
//리턴X
fun NoReturn(a : Int, b : String) : Unit {
}
//리턴O
fun YesReturn(a : Int, b : String) : Int {
return a
}
함수의 매개변수는 위와같이 (변수명 : 자료형) 을 입력해주면 된다.
스트링 템플릿
fun PrintName(){
var myName = "철수"
println("내 이름은 $myName")
println("내 이름은 ${myName}야.. 반가워 ㅎㅎ")
}
이런식으로 '$' 달러 표시를 붙여서 String 안에 변수를 넣을 수 있다.
만약 ' $myName야 ' 처럼 변수명 뒤에 바로 문자열이 온다면 오류가 뜨니 중괄호를 꼭 넣어주자.
저 중괄호 안에서 계산도 가능하다.
혹시라도 달러표시를 텍스트로 찍고싶을때는 ' \$ ' 로 입력해주면 된다.(작은 따옴표 빼고)
fun PrintName(){
var Name1 = "철수"
var Name2 = "영희"
println("첫번째 이름은 $Name1" + "\n" + "두번째 이름은 $Name2")
}
이런식으로 ' + ' 를 통해 문자열들을 이어줄수도 있다.
주석
// 첫번째 주석 방법
/*
두번째 주석 방법
*/
위와같이 2가지 방식으로 주석을 사용할 수 있다.
안드로이드 스튜디오를 이용한다면 컨트롤 + 슬래쉬를 누르면 주석을 만들고 없앨 수 있다.
조건문
if
fun Testif(a : Int, b : Int) : Int
{
if(a>b)
return a
else
return b
}
if 조건문은 이런식으로 if - else 를 통해 쓸 수 있다.
다만 여기서 C#이나 자바라면 삼항식을 통해 한줄로 리턴 코드를 작성할 수 있을텐데 코틀린은 다른 방식을 지원한다.
fun TestifEasy(a : Int, b : Int) : Int = if(a>b) a else b
이렇게 함수를 한줄로 작성해주어도 위와 같은 함수가 완성된다.
When
fun CheckScore(Score : Int) {
when(Score) {
100,99 -> println("A학점")
90 -> println("B학점")
80 -> println("C학점")
else -> println("F학점")
}
}
when은 C#의 Switch와 같은 역할을 한다.
Score가 몇인지에 따라서 어떤 행동을 할지 다르게 설정가능하다.
' , ' 를 찍으면 여러개도 설정이 가능하다.
else 는 일반적인 Switch문의 Default와 같은데, 생략이 가능하다.\
하지만 이 코드는 범위를 반영하지 못한다.
아래로 내려가보자.
In...
fun CheckScore(Score : Int) {
when(Score) {
in 90..100 -> println("A학점")
in 80..90 -> println("B학점")
in 70..80 -> println("C학점")
else -> println("F학점")
}
}
이처럼 in을 이용하면 범위 표현이 가능하다.
in 90..100을 적으면, 90보다 크거나 같고 100보다 작거나 같은 수를 말한다.
그 바로 아래줄에 in 80..90을 적어두면 90이라는 범위가 겹치는데, 먼저 만난 조건을 반영하니 신경 쓸 필요가 없다.
When을 통한 변수에 값넣기
fun CheckScore(Score : Int) {
var grade = when(Score)
{
in 90..100 -> "A학점"
in 80..90 -> "B학점"
in 70..80 -> "C학점"
else -> "F학점"
}
}
이런식으로 입력하면 grade라는 변수에 when으로 조건을 걸어서 Score의 값에 따라 다른 값을 넣어 줄 수 있다.
'프로그래밍 공부 > 코틀린' 카테고리의 다른 글
코틀린을 공부해보자 - (2) (0) | 2023.02.15 |
---|
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!