코틀린(Kotlin)/TIL 38

[코틀린(Kotlin)] 안드로이드 UI 레이아웃(Layout

레이아웃이란? ViewGroup의 파생 클래스로서, 포함된 View를 정렬하는 기능 1. 레이아웃의 종류 1-1. Linear Layout 컨테이너에 포함 된 뷰들을 수평 또는 수직으로 일렬 배치하는 레이아웃 android:orientation = " " - vertical : 차일드를 위에서 아래로 수직으로 배열 - horizontal : 차일드를 왼쪽에서 오른쪽으로 수평 배열 LinearLayout의 자식(Children)으로 배치되는 View 위젯들은 오직 한 방향(가로or세로)으로만 배치한다 위젯의 크기(높이 또는 너비)와 관계없이 한 줄로만 배열한다 LinearLayout의 자식들은 중첩되지 않고, 지정한 방향으로 쌓이는 형태로 표시된다 LayoutWeight - LinearLayout에 자식(..

[코틀린(Kotlin)] 안드로이드 UI 위젯(Widget

안드로이드 UI(UserInterface) 뷰란? 안드로이드 앱의 UI를 구성하는 기본 단위는 뷰(View)이다 1. 뷰(View)의 구성 위젯(Widget) - View의 서브 클래스로서, 앱 화면을 구성하는 시각적인 모양을 지닌 UI요소 - 예) 버튼, 메뉴, 리스트 등 레이아웃(Layout) - ViewGroup의 서브 클래스로서, 다른 뷰(위젯 혹은 레이아웃)를 포함하면서 이들을 정렬하는 기능을 지닌 UI요소 2. 위젯(Widget) 2.1 위젯이란? View의 서브 클래스 중에서 화면에 보이는 것들을 말한다 (TextView, EditView, Button 등) 2.2 View View클래스의 속성은 모든 UI 컴포넌트들에서 공통적으로 사용할 수 있다 1. 식별자 지정 형식 android="@+..

[코틀린(Kotlin)] Intent, findViewById

Intent findViewById Intent의 활용 - 액티비티 간 화면 전환 및 데이터를 전달하는 기능 Intent를 활용해서 간단한 기능의 버튼 만들기 xml 파일에서 버튼을 두 개 만들어준다 한 개는 단순히 네이버로 연결, 다른 한 개는 통화버튼 변수(myIntent)를 선언해 주고 암시적 인텐트?를 사용해서 Uri.parse()를 이용해서 네이버 홈페이지 주소를 적어준다 startActivity(변수)로 전환할 액티비티를 호출한다 *암시적 인텐트로는 웹 브라우저 열기, 전화 걸기, 구글 맵 열기, 메시지 보내기, 카메라 기능 등이 있다고 한다 onButton1Clicked 결과(네이버 홈페이지) onButton2Clicked 결과(010-1234-5678 통화) 이 외에도 많은 기능이 있지만 ..

[깃허브(GitHub)] 깃허브를 활용하는 협업(Branch, Pull Requests)

깃허브를 사용해서 팀원들과 협업하기 위해선 Pull Requests 기능을 많이 쓴다고 한다 Pull Requests 기능은 특정 기능을 추가/개선 한 *브랜치(branch)를 main 브랜치에 덮어씌우는? 기능이다 (= merge) merge를 사용하지 않고도 깃허브에서 원격으로 코드를 바꿀 수 있으며, 버그나 에러의 상황에 대비하기 위해 상용화버전 말고 테스트 버전을 두어 미리 시험해 볼 수 있기도 하다 *브랜치(Branch) 독립적으로 어떤 작업을 진행할 수 있게 도와준다 필요에 의해 만들어지는 각각의 브랜치들은 다른 브랜치에 영향을 받지 않기 때문에 여러 작업을 동시에 할 수 있다 (예시에서 메인 프로젝트는 Master, Feature는 브랜치이며 버그나 에러 보완에도 역추적이 용이하다는 장점이 ..

[Kotlin 문법] 코틀린 심화

유용한 기능 확장함수 비동기 프로그래밍 쓰레드 코루틴 쓰레드와 코루틴 유용한 기능 자료형을 변환할 수 있다 일반 자료형 간의 변환 예시 var num1 = 20 var num2 = 30.2 var num3 = num2.toInt() var num4 = num1.toDouble() var strNum5 = "10" var strNum6 = "10.21" var num5 = Integer.parseInt(strNum5) var num6 = strNum6.toDouble() println("num3: $num3") println("num4: $num4") println("num5: $num5") println("num6: $num6") // 출력 num3: 30 num4: 20.0 num5: 10 num6: ..

[Kotlin 문법] 객체지향 프로그래밍의 심화

접근제한자 예외 처리의 활용 지연초기화 널 세이프티 (Null Safety) 배열 컬렉션 Single-expression function 싱글턴 접근제한자 변수나 메서드의 접근을 제한할 수 있다 코틀린에서는 public, private, internal, protected로 접근을 제한한다 객체를 이용해서 변수나 메서드를 호출할 수 있는지의 여부를 접근이라고 한다 용어 정리 프로젝트 - 최상단 개념 를 포함한다 모듈 - 프로젝트 아래의 개념이고 를 포함한다 패키지 - 모듈 아래의 개념이고 를 포함한다, 일반적인 디렉터리 접근 제한자의 종류 public: 명시하지 않으면 기본적으로 public이다 (어디서나 접근 가능) private: 동일한 클래스 내부에서만 접근할 수 있다 internal: 같은 모듈 ..

[Kotlin 문법] 객체지향 프로그래밍의 기초

메서드 설계 클래스 설계 생성자의 활용 객체의 활용 상속 오버라이딩 오버로딩 인터페이스 메서드 설계 특정한 로직을 가지는 소스코드에 이름을 붙일 수 있는데, 이름이 붙은 로직을 메서드라고 한다 // Kotlin의 메서드 구조 fun 메서드이름(변수명:자료형, 변수명:자료형 ...) : 반환자료형 { 소스코드 로직 } 로직을 추상화해 놓고 상황에 맞게 실행할 수 있다 코드의 재사용성을 높일 수 있다 // 두 개의 숫자를 더하는 메서드를 만들고, 전달하는 숫자에 따라 덧셈결과를 받도록 fun main() { var num1 = readLine()!!.toInt() var num2 = readLine()!!.toInt() // sum 이라는 이름의 메소드를 호출 sum(num1, mum2) } fun sum(..

[Kotlin 문법] 기초 - 단축키 및 기초지식

유용한 단축키 자료형 변수와 상수 연산자의 종류 조건식 반복문 실습 초보자를 위한 유용한 단축키(Window기준) // 라인 드래그 Shift + 방향키 // 라인 지우기 Ctrl + Y // 주석 처리 Ctrl + / // 자동 포커싱 - 소스코드 작성 중, 다른 작업 때문에 작업하던 라인을 찾기 힘들 때 ESC // 프로젝트 내부에서 사용중인 모든 단어들의 위치 탐색 Ctrl + Shift + F // 복사, 붙여넣기 Ctrl + C [복사] Ctrl + V [붙여넣기] Ctrl + D [라인 복사 후 생성] // [최상단 이동] Home // [최하단 이동] End 자료형 프로그램의 모든 정보를 데이터 또는 자료라고 한다 자료를 저장할 수 있는 적절한 형태를 자료형이라고 정의한다 타입 크기 특징 L..