전체 글

전체 글

    [Kotlin] 위젯 - 텍스트뷰(TextView)

    [Kotlin] 위젯 - 텍스트뷰(TextView)

    화면상에 보이는 텍스트 뷰나 버튼 같은 것들을 위젯이라고 합니다. 사실 '위젯'이라는 단어는 워낙 다양한 곳에서 활용되기 때문에 혼동하기 쉬울 수 있으므로 상황에 따라 잘 이해해야 할 필요가 있습니다. 우리가 사용할 수 있는 위젯은 Android Studio에서 팔레트(Palette)에 있으며 종류에 따라 아래의 형태로 분류되어 있습니다. Common 자주 사용되는 위젯들의 모음입니다. Text 텍스트와 관련된 위젯입니다. 해당 메뉴앞에 ab라고 되어 있는것은 텍스트를 표시하기 위한 위젯이며 ab에 밑줄이 있는 위젯은 텍스트를 입력받기 위한 위젯입니다. Buttons 버튼이나 라디오, 스위치같이 클릭이나 터치이벤트를 받은 위젯입니다. Widgets 이미지나 진행상태등 화면에 표시되는 위젯입니다. Layo..

    [Kotlin] 레이아웃(Layout) - 리니어

    [Kotlin] 레이아웃(Layout) - 리니어

    리니어 레이아웃은 위젯을 가로 혹은 세로로 배치하기 위한 레이아웃입니다. 각각의 레이아웃에서는 사용가능한 설정이 상당히 많고 모든걸 다 알 수 없기 때문에 여기서는 간단히 어떤 용도로 사용한다는 정도만 알고자 합니다. 이 레이아웃을 사용하기 위해서는 기존 레이아웃을 아래와 같이 변경하거나 기존 레이아웃에 새로운 리니어 레이아웃을 추가하면 됩니다. 리니어 레이아웃은 2가지가 있는데 Horizontal은 위젯을 가로로 Vertical은 위젯을 세로로 정렬합니다. 각 방향에 대한 전환은 컴포넌트 트리의 레이아웃에서 마우스 오른쪽 버튼을 눌러 'LinearLayout -> Convert orientation to [방향]'을 선택하면 됩니다. 위젯이 배치된 상태에서 각각의 요소가 차지하는 공간비율을 변경하려면 ..

    [Kotlin] 레이아웃(Layout) - 컨스트런트

    [Kotlin] 레이아웃(Layout) - 컨스트런트

    Android Studio에서 화면 표시를 담당하는 영역이 레이아웃이며 처음 프로젝트를 생성하면 자동으로 생성되는 파일인 activity_main.xml이 바로 레이아웃 파일에 해당합니다. 참고로 Kotlin에서는 소스파일을 제외하고 모든 파일을 리소스 파일로 취급하기 때문에 파일명이 소문자로 이루어져 있습니다. 위 상태에서 레이아웃 파일을 디자인 모드로 바꿔서 보면 다음과 같은 화면을 볼 수 있습니다. 노란색 부분이 화면에 배치할 수 있는 여러가지 위젯과 위젯에 대한 속성을 지정할 수 있는 파란색 속성 창 그리고 현재 화면을 구성하기 위한 레이아웃 방식을 나타내는 붉은색의 컴포넌트 트리 창을 볼 수 있습니다. 우리는 이 레이아웃을 통해서 여러가지 위젯을 배치해 화면을 구성할 수 있는데 어떤 방식으로 화..

    [Kotlin] 제네릭(Generics)

    [Kotlin] 제네릭(Generics)

    제네릭은 데이터 타입을 자유롭게 지정할 수 있도록 해주는 형태를 말합니다. 예를 들어 좀 억지스럽지만 정수형 데이터를 받는 아래 클래스가 있다고 가정해 보겠습니다. class myCal(param1: Int, param2: Int) { var value1 = param1 var value2 = param2 fun Plus(): Int { return value1 + value2 } fun Minus(): Int { return value1 - value2 } } 위와 같이 클래스를 생성하고 나면 다음과 같이 클래스를 호출하여 원하는 동작을 수행할 수 있습니다. var mc = myCal(10, 20) Log.d("test", "결과값: ${mc.Plus()}") 그런데 클래스를 호출할 때 정수가 아닌 소..

    [Kotlin] 추상 클래스와 인터페이스

    [Kotlin] 추상 클래스와 인터페이스

    클래스라는 것을 만들어 두면 이것을 인스턴스화 하여 객체를 생성하고 객체를 통해 클래스의 기능을 이용하게 됩니다. 객체지향 언어(코틀린은 함수형언어)에서 클래스는 객체를 구체화한 것인데 이 구체화 단계가 명확하게 떨어지지 않을 때 추상 클래스를 사용하게 됩니다. 예를 들어 고양이라는 대상이 있으면 고양이를 클래스로 만들어 구체화 할 수 있고, 고래가 있으면 고래라는 클래스를 만들어 구체화할 수 있을 것입니다. 그런데 '동물'이라는 대상이 있으면 얘는 어떻게 클래스로 만들어 구체화할까요? '동물'이라는 대상은 개인지 고양이인지, 고래인지, 두더지인지.. 암튼 특정 류의 동물에 따라 구체화할 수 있는 방법이 달라집니다. 객체 자체가 명확하지 않은 셈인데 이렇게 불분명한 상태를 나타내고자 할 때 이걸 추상 클..

    [Kotlin] 데이터 클래스

    [Kotlin] 데이터 클래스

    데이터 클래스는 특정 데이터를 클래스로 규격화하여 저장하기 위한 용도로 사용되는 클래스를 의미하며 다음과 같은 형식을 가집니다. data class 클래스명 (var/val 이름: 형식...) var는 변수를 val은 상수를 의미하며 뒤에 변수나 상수가 될 이름을 지정합니다. 그리고 : 뒤에 형식을 사용하여 저장할 데이터를 정의하는데 이러한 매개변수 형식은 몇 개든 , (콤마)로 구분하여 정의할 수 있습니다. 다만 데이터 클래스는 위에서 설명드린 크래스와 달리 값을 받고 저장하는 용도로만 사용되기 때문에 클래스의 본체가 별도로 정의되지 않습니다. data class MyCar (val color: String, var speed: Int) var mc = MyCar("Red", 70) Log.d("tes..

    [Kotlin] 클래스(Class)

    [Kotlin] 클래스(Class)

    특정 처리를 위해 관련된 변수, 함수 등을 한꺼번에 모아놓은 프로그램의 단위를 클래스(Class)라고 합니다. Aandroid Studio에서 처음 프로젝트를 생성하고 나면 다음과 같은 코드를 볼 수 있는데 이것은 Android Studio가 onCreate라는 함수를 포함하고 있는 MainActivity라는 클래스를 자동 생성한 것입니다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } 이제까지 어떠한 출력을 위해 자주 사용했던 Lod.d() ..

    [Kotlin] 함수

    [Kotlin] 함수

    Android Studio에서 Kotlin으로 프로젝트를 생성하면 대부분 아래와 같은 구조의 코드로 시작합니다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } 우리가 주목해야 할 부분은 onCreate입니다. onCreate는 함수이며 MainActivity클래스에 속해 있습니다. 함수라는 것은 프로그램을 구성하는 최소한의 덩어리이며 프로그램을 실행하면서 필요한 처리를 하기 위한 부분이기도 합니다. 참고로 onCreate는 Android가 시작..