안드로이드 스튜디오 + 코틀린을 통해 안드로이드 어플 제작을 공부해보려고 한다.
궁금하기도 했고, 알아두면 안드로이드 OS가 돌아가는 방식에 대해 더 알 수 있다는 조언을 들었다.
현 회사에서 유니티로 모바일게임 제작을 하기 때문에, 알아두면 더 좋을 것 같았다.
시작해보자.
코틀린과 안드로이드 스튜디오
코틀린은 구글에서 채택한 안드로이드의 공식 언어이다.
기존에는 자바를 사용했지만 현재는 코틀린이 공식언어가 됐다.
코틀린이 공식 언어가 되어버린 이유.. 구글과 오라클의 뒷 얘기도 있던데 정확히는 보지 못했다.
아무튼 코틀린은 자바를 100% 호환한다고 한다.
Download Android Studio & App Tools - Android Developers
나는 최종 목표로는 안드로이드 어플을 만들거라서 안드로이드 스튜디오를 이용해서 공부를 시작했다.
프로그램을 깔기 귀찮으신분들은 구글에 '코틀린 웹 컴파일러' 라고 검색해서 웹에서 하셔도 상관 없다.
프로젝트 만들기
안드로이드 스튜디오를 설치 후 실행하면 복잡한 창들이 뜬다.
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 |
---|
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!