ConstraintLayoutExample 1. ConstraintLayout의 도입 이유와 특징 레이아웃 에디터와의 상호 연관을 시키기 위해 도입하게 되었다고 합니다. 복잡한 레이아웃을 단순한 계층구조를 이용해 표현할 수 있습니다. ID로 작업하기 쉽도록 조금 더 강력하고 유연하게 제공합니다. 언번들로 제공이 되어 개발자에 맞게 버전을 사용할 수 있습니다. 다양한 비율과 해상도를 대응하기 위해서 여러벌의 레이아웃을 만들어야했지만 하나의 레이아웃으로 다양한 유스케이스에 대응이 되며, 단순한 계층구조로 이해하기 쉽고 퍼포먼스 향상에 도움이 된다고 합니다. 2-1 Relative Positioning (상대적 배치) : 링크 상대적인 배치는 RelativeLayout과 흡사하며 뷰와 뷰간의 제약조건을 통해 ..
MotionLayout 정리 참고 Github : https://github.com/eosr14/MotionLayoutExample MotionLayout 기존의 애니메이션을 추가하는 방식과는 다르게 레이아웃 요소로 애니메이션을 배치할 수 있다. Android 기존 애니메이션 추가 방식 Animated Vector Drawable Property Animation framework LayoutTransition animations Layout transitions with TransitionManager CoordinatorLayout 종속성 추가 dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta..
클래스 코틀린의 클래스는 자바와 매우 유사하지만 자바에는 없는 몇몇 기능들을 제공한다. 데이터 클래스 자료를 구성하는 프로퍼티만 선언하면 컴파일러가 equals(), hashCode(), toString() 함수를 자동으로 생성해준다. 자바에서 흔히 생성하였던 VO 클래스를 코틀린에서는 프로퍼티만 선언함으로써 구현할 수 있다. // 데이터 클래스 선언 data class Person(val name: String, val address: String) private val shin1 = Person("Shin Kwanghee", "Seoul") private val shin2 = Person("Shin Kwanghee", "Seoul") private val shin3 = Person("Shin", "S..
if-else 문 코틀린의 if-else문은 자바와 달리 값을 반환할 수 있다. // 예시 val age : Int = 30 val ageRange : String = if (age >= 10 && age = 30 && age < 30) { "20대" } else { "기타" } 또한 코틀린에서는 삼항연산자를 지원하지 않아 if-else문으로 자바의 삼항연산자를 대체하여 사용할 수 있습니다. // 예시 ## 자바 int number = 30; String str = number % 2 == 0 ? "Even" : "Odd"; ## 코틀린 val number = 30 val str: String = if (number % 2 == 0) "Even" el..
함수 선언 중괄호 안의 코드가 한줄이면 중괄호와 return 키워드 생략 가능 잡플래닛 코드 예) MyProfileExperienceActivity.kt - uiEventObserve fun convertScreenName(name : String) : String { return "HelloWorld $name!" } fun convertScreenName(name : String) : String = "HelloWorld $name!" 반환값이 없는 함수 반환 키워드(Unit)을 생략할 수 있음 Unit vs Void : 자바의 void는 아무것도 반환하지 않지만, Unit은 특수한 객체를 반환한다는 차이점이 존재함 fun onDetailSubItemClick(docUrl: String) : Unit..
변수 선언 Java : 값 자체를 직접 저장하는 원시 타입(int, double 등), 객체의 참조 값을 저장하는 참조 타입(String 등)으로 나뉜다. Kotlin : 모든 타입을 객체로 표현하기 때문에 원시타입과 래퍼 클래스를 구분하지 않는다. val로 변수를 선언해놓고 변경해야 할 때 var로 바꾸는 방법을 권장(오류 발생 확률을 낮출 수 있음) val value = "" var variable = 0L 기본 자료형 자바와는 달리 코틀린은 모든 타입을 객체로 표현하기 때문에 타입체크를 해야 한다. 숫자 타입들간에는 묵시적 변환을 지원하지 않아 toInt(), toFloat(), toDouble()과 같이 명시적으로 타입을 변환해야 한다. // String -> Int val yearString =..
1. Source code organization (소스 코드 구성) 1.1 Directory structure(디렉토리 구조) 혼합 언어 프로젝트에서의 Kotlin 소스 파일은 Java 소스 파일과 동일한 소스 루트에 있어야 하며 동일한 디렉토리 구조 를 따라야 한다. (각 파일은 각 패키지 명령문에 해당하는 디렉토리에 저장되어야 합니다.) 순수한 Kotlin 프로젝트에서 권장되는 디렉토리 구조는 공통 루트 패키지가 생략 된 패키지 구조를 따랴아 한다. 공통 패키지 명을 뺀 나머지 패키지 구조를 따른다. 공통 패키지 : com.example.kotlin = root 디렉토리 서브 패키지 : com.example.kotlin.foo.bar = foo/bar 디렉토리 모든 소스 파일은 UTF-8로 인코딩 ..
1. 컬렉션 - JVM을 기반으로 하는 코틀린에서의 컬렉션은 자바에서 제공하는 클래스들을 그대로 사용합니다. Java Kotlin java.util.ArrayList kotlin.collections.ArrayList java.util.HashMap kotlin.collections.HashMap java.util.HashSet kotlin.collections.HashSet java.util.LinkedHashMap kotlin.collections.LinkedHashMap java.util.LinkedHashSet kotlin.collections.LinkedHashSet java.util.RandomAccess kotlin.collections.RandomAccess java.util.SortedS..
- Total
- Today
- Yesterday
- 조세퍼스 문제
- 10757
- 1260
- 함수형사고 Kotlin Java
- kotlin
- mssql
- Eclipse
- 최대공약수와 최소공배수
- 1158
- 큰 수 A+B
- constraintlayout
- 피보나치 수 4
- GCD 합
- 자동타입
- #android #motionlayout
- a^b
- 10828
- 2743
- 문자열
- algorithm
- 10827
- algorihtm
- #kotlin
- 알고리즘
- javacv
- 1237
- OpenCV
- 단어 길이 재기
- 10826
- 영상처리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |