지난 포스팅에서 코틀린 클래스에 대해 알아보며 기본 생성자를 어떻게 생성하는지 클래스 변수를 어떻게 형성할 수 있는지 알아보았습니다. 클래스를 생성해 작업하다 보면 생성자를 중복해 형성해야 할 때가 있죠. 추가적인 매개변수를 받는 경우를 상정할 때 중복해 생성자를 형성하는 것이 생성자 오버 로딩이죠. 생성자 오버 로딩은 보통 클래스 이름을 가진 생성자에 어떤 매개변수를 받는지를 통해 구분하죠. 코틀린도 크게 다르지는 않지만 기본 생성자와 오버로딩 생성자를 만드는 방법이 조금 다릅니다. 클래스 이름 바로 옆에 매개변수를 받고 Init 키워드를 통해 기본 생성자를 생성하고 constructor 키워드를 통해 생성자 오버로딩을 할 수 있죠. 어떤 방식으로 생성되는지 직접 보여드리겠습니다. 코틀린 생성자 오버로..
지난 시간까지는 간단한 코틀린 코딩 방법과 타이머 만드는 방법까지 설명드렸습니다. 이번 시간부터는 본격적으로 코틀린과 자바의 차이점을 다뤄보려고 합니다. 제가 가장 익숙해지기 힘든 부분이기도 했고 자바와는 다른 부분이 너무 많아서 조금 고생했던 부분이기도 합니다. 바로 클래스 생성 부분이죠. 코틀린은 자바와는 전혀 다른 방식으로 클래스 생성자와 클래스 내부 변수를 만듭니다. 코틀린 언어의 간결하다는 특징을 여실히 보여주는 가장 대표적인 부분이라고 저는 생각합니다. 자바에 익숙한 분이시면 조금 의아할 수도 있지만 익숙해지시면 더 간결하고 편하게 사용할 수 있죠. 1. 코틀린에서의 클래스 생성 방법 class Test() {} 코틀린에서 클래스를 생성하는 방법은 평범합니다. 그냥 다른 언어에서 클래스를 생성..
안녕하세요. 이번 포스팅은 안드로이드 스튜디오를 활용해서 타이머 어플을 만드는 방법을 알려드리려 합니다. 기존에 강의했던 내용을 가지고 만들어 볼 것이기 때문에 만약 직접 만들어 보실 분이라면 앞 강의를 보고 오시는 것도 괜찮을 것 같아요. 그럼 바로 시작해 보도록 하겠습니다. 타이머 UI 만들기 가장 먼저 해야 할 일은 UI를 만드는 것이겠죠. 프로젝트를 생성하고 리소스 폴더에 있는 activity_main.xml을 열어준 뒤 아래와 같이 코딩했습니다. 먼저 어플의 이름을 가장 위에 있는 텍스트 뷰에 넣어 줬습니다. 뷰의 크기는 width = 부모에 맞춤, height = 부모의 1/10으로 맞춰 두고 그 후 배경은 50% 투명도의 검정색, 글자는 하얀색으로 설정해줬습니다. 다음 텍스트 뷰는 시간을 표..
안녕하세요. 오늘은 안드로이드 SeekBar의 사용법에 대해서 알아볼 겁니다. SeekBar의 경우 안드로이드에서 기본적으로 지원해주는 녀석 말고도 다른 프로그래머 분들이 오픈 소스로 공개해주시는 멋진 디자인의 시크 바도 있어요. 하지만 형태가 다르다고 해도 기본적으로 사용하는 방법은 동일하기 때문에 기본으로 지원해주는 녀석의 사용법을 알 고 있는 것이 중요하겠죠. 그럼 바로 알아보도록 하죠. SeekBar에 대하여 SeekBar은 슬라이더 형태의 게이지 바를 말합니다. UI상에서 사용자가 슬라이더를 움직이면 그 progress 값을 가져와 활용할 수 있죠. 음량이나 밝기 외에도 다양한 곳에 사용되기 때문에 한번 익혀 놓으면 다양한 곳에 사용할 수 있습니다. 먼저 SeekBar를 생성하는 방법에 대해 알..
안녕하세요. 오늘은 저번 포스팅까지 배운 내용을 바탕으로 사용자의 입력만큼 초시계를 돌리는 타이머를 만들어 볼 겁니다. 그럼 바로 한번 시작해 보도록 하죠. 타이머 만드는 방법 일단 설명하기에 앞서 제가 만든 타이머 코드를 보여드리겠습니다. 그 후 한줄 한줄 설명해드리도록 할 거에요. import kotlin.concurrent.timer fun main() { var inputtedData : String? var minute = 0 var second = 0 do { print("시간을 입력해주세요.(분) : ") inputtedData = readLine() }while (inputtedData!!.isEmpty()||inputtedData.toInt()=60) minute = inputtedDat..
안녕하세요. 오늘은 저번 타이머 함수 사용법에 이어서 readline()을 이용해 사용자에게 입력받는 법을 알아보려고 합니다. 또 입력 받은 모든 값을 스트링 값으로 반환하는 readline()을 어떻게 하면 숫자를 입력받게끔 할 수 있는지 알려드리려고 해요. 설명드릴 내용이 그리 많지는 않은 편이라 간단히 설명하고 끝내도록 합시다. 바로 시작하죠. readline() readline()은 저번에 설명 드렸던 타이머 함수와는 다르게 아무 라이브러리도 추가하지 않고 사용이 가능합니다. 변수를 선언한 뒤 해당 변수에 readline()을 할당해주면 되요. 아래는 그 예시입니다. fun main() { print("이름을 입력해주세요. : ") val name = readLine() println("당신의 이..
안녕하세요. 오랜만에 코틀린 강좌로 다시 찾아왔습니다. 한동안 프로그래밍 관련 강좌를 하지 않았었는데 그 이유는 어떤 것을 먼저 설명해드리면 좋을 지 몰라서 그랬어요. 그런데 안드로이드 강좌를 진행하다 보니 그때그때 필요한 내용들을 설명하고 나중에 이것들을 정리하는 것이 좋겠다고 느껴서 순번이 다소 뒤틀리더라도 이렇게 강좌를 작성하기로 하였습니다. 오늘 소개해드릴 것은 일정 주기로 블록 안의 코드를 실행하는 timer 함수와 저번에 마저 설명하지 못했던 print와 println의 차이점에 대해서 설명해 드리도록 하겠습니다. 1. timer 함수의 사용 방법 타이머 함수를 사용하기 위해서는 코틀린의 타이머 라이브러리를 추가해주어야 합니다. Import kotlin.concurrent.timer 위 코드로..
안녕하세요. 오늘도 Constraint Layout에 대해서 알려드릴 건데요. 이번에는 속성을 통해서 부모의 크기에 비례해 위젯의 크기가 조정되는 Height, Width 속성에 대해서 알려드리려고 합니다. 그럼 바로 시작하도록 하죠. 1. Percent 속성은 무엇일까? 보통 앱을 제작할 때는 width, height 속성에 값을 넣어서 위젯의 크기를 결정하게 됩니다. 하지만 그럴 경우 테블릿 등과 같이 화면 크기가 큰 기기에서 기기 크기에 비해 위젯의 크기가 너무 작은 경우가 나타나겠죠. 그런 경우를 방지하기 위해서 위젯의 크기가 화면 크기에 맞게 변화하도록 도와주는 속성이 바로 Percent 속성입니다. 너비는 고정시키고 높이만 변화하거나 그 반대 또한 가능해서 여러 곳에 적용시켜줄 수 있습니다. ..
ConsraintLayout은 사용법만 안다면 다른 레이아웃 들보다 더 유연하게 Ui를 구성할 수 있게 만들어져 있습니다. 안드로이드 api14 이상 버전부터 구동이 가능한데 안드로이드 사용자의 99% 정도가 이에 해당하기에 사실상 호환이 안되는 안드로이드 버전이 없다고 봐도 무방하죠. 디자인 탭의 속성 메뉴를 이용해서 구성할 수도 있고 xml에서 직접 코드를 짜줄 수도 있습니다. 그럼 바로 제가 가장 많이 사용하는 설정 에 대해서 알려드리도록 하겠습니다. xmlns:app="http://schemas.android.com/apk/res-auto" 이 속성이 부모 레이아웃에 포함되어 있지 않으면 app에 해당하는 속성을 사용하실 수 없습니다. 위젯 관계 설정에 대하여 첫번째로 설명드릴 것은 위젯간 관계를..
안녕하세요. 지난번 코틀린 프로젝트 생성에 이어서 오늘은 자료형을 선언하고 nullable 변수를 만드는 방법에 대해 알아볼까 합니다. 그럼 바로 시작하도록 하죠. 코틀린 변수 선언 방법 먼저 코틀린에서 일반적인 자료형을 선언하는 방법에 대해서 알아보겠습니다. 코틀린에서는 var 변수명 : 자료형 = 값 위와 같은 방식으로 자료형을 선언할 수 있습니다.] 자료형 선언 방법 // val 변수명 : 자료형 = 데이터 // var 변수명 : 자료형 = 데이터 val value : String = "수정 불가능 변수" var variable : String = "수정 가능 변수" var로 자료형을 선언하면 수정 가능한 자료형이 되고 val로 선언하면 수정 불가능한 값이 됩니다. 때에 따라 필요한 방식으로 선언하..
안녕하세요. 저번 텍스트 뷰에 이어서 오늘은 버튼과 클릭 리스너에 대해서 알아보려고 해요. 그럼 오늘 알려드릴 버튼이라는 녀석에 대해서 먼저 설명해드려야겠죠. 버튼에 대하여 버튼은 텍스트 뷰처럼 앱을 구성할 때 굉장히 많이 사용하게 되는데 텍스트를 넣을 수 있는 일반적인 Button과 이미지를 넣을 수 있는 Image button으로 나뉩니다. 오늘은 Button에 대해서만 설명해 드리겠습니다. 버튼은 텍스트 뷰를 부모로 가지기 때문에 텍스트뷰가 가지고 있는 속성의 대부분을 사용할 수 있습니다. 1. 버튼 사용법 버튼을 레이아웃에 추가하는 방법은 이전에 설명드린 방법과 같습니다. 팔레트에서 추가하는 방법, 프로그래밍적으로 추가하는 방법(액티비티 클래스에서의 코딩을 의미함,Xml 아님), Xml에서 직접 ..
안녕하세요. 오늘은 코틀린을 황용한 안드로이드 프로그래밍 강좌를 하기 위해서 이렇게 찾아 뵙게 되었습니다. 본래라면 안드로이드 스튜디오를 설치하고 프로젝트를 생성하는 방법 먼저 올렸겠지만 이번에는 그냥 바로 프로그래밍 방법에 대해서 설명 드리려고 합니다. 오늘 설명드릴 것은 텍스트뷰에 대해서입니다. 텍스트 뷰는 empty project로 프로젝트를 만들어도 기본적으로 생성되는 만큼 앱을 만들 때 가장 기본적이면서 많이 사용하게 될 위젯입니다. 이름에 걸맞게 UI에 텍스트를 표시하는 일을 담당하고 있죠. 사용법도 다른 위젯 들에 비해서 간단한 편이고 따로 무언가를 설정해주지 않아도 text 속성에 문자열을 지정해주는 것만으로도 사용할 수 있어요. 그럼 바로 어떻게 만들 수 있는지부터 알아보도로 합시다. (..