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장. 실용주의 철학 깨진 창문(나쁜 설계, 잘못된 결정, 형편없는코드)을 그대로 내버려 두지 마라 적절히 코드를 고칠 시간이 주어지지 않는다면 TODO 메세지를 표시하거나 Dummy 데이터로 대치해 놓아라. 지식 포트폴리오에 주기적으로 투자하라. 2장. 실용주의 접근법 유연한 아키텍처를 통해 유지보수와 유연성, 테스트를 용이하게 한다. 예광탄처럼 빨리 눈에 보이게, 반복적으로 도달하는 목표물을 찾을수 있는 코드를 작성하는 것이 좋다. 예광탄 코드는 나중에 버리려고 만드는 것이 아닌 계속 사용할 코드이다. 3장. 기본적인 도구 도구는 재능을 증폭한다. 도구가 더 훌륭하고 그것을 어떻게 사용하는지 잘 알수록 더욱 생산적일 수 있다. 임시 변통한 작업을 수행할 때 GUI 툴이 지원하지 않을 수도 있다. 강력..
1. Source code organization (소스 코드 구성) 1.1 Directory structure(디렉토리 구조) 혼합 언어 프로젝트에서의 Kotlin 소스 파일은 Java 소스 파일과 동일한 소스 루트에 있어야 하며 동일한 디렉토리 구조 를 따라야 한다. (각 파일은 각 패키지 명령문에 해당하는 디렉토리에 저장되어야 합니다.) 순수한 Kotlin 프로젝트에서 권장되는 디렉토리 구조는 공통 루트 패키지가 생략 된 패키지 구조를 따랴아 한다. 공통 패키지 명을 뺀 나머지 패키지 구조를 따른다. 공통 패키지 : com.example.kotlin = root 디렉토리 서브 패키지 : com.example.kotlin.foo.bar = foo/bar 디렉토리 모든 소스 파일은 UTF-8로 인코딩 ..
- Total
- Today
- Yesterday
- 최대공약수와 최소공배수
- GCD 합
- constraintlayout
- 10827
- #android #motionlayout
- 10826
- 조세퍼스 문제
- 피보나치 수 4
- 단어 길이 재기
- 10828
- 큰 수 A+B
- 10757
- 1158
- mssql
- 1237
- 영상처리
- OpenCV
- algorihtm
- #kotlin
- 1260
- algorithm
- 함수형사고 Kotlin Java
- 2743
- a^b
- 문자열
- javacv
- Eclipse
- 자동타입
- kotlin
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |