일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 함수형프로그래밍
- Functional Programming
- 안드로이드 디자인시스템
- PrototypePattern
- ㅋㅁ
- 프로토타입 패턴
- El
- 코틀린
- 옵저버 패턴
- designPattern
- 싱글톤
- factory method
- 추상 팩토리
- 팩토리 메소드
- Kotlin
- 빌터패턴
- Singleton
- 추상팩토리패턴
- builderPattern
- compose
- ㅓ
- 디자인패턴 #
- Observer Pattern
- material3
- Abstract Factory
- Design Pattern
- 디자인패턴
- F
- android designsystem
- r
- Today
- Total
목록분류 전체보기 (333)
오늘도 더 나은 코드를 작성하였습니까?

Background에 있다는 것 백그라운드 작업을 이해 하기전에 앱이 forground에 있다는 사실을 명확하게 이해할 필요가 있다. 앱이 아래 상황중 단 1개라도 해당이 된다면 앱은 forground에 있다. - 화면에 Activity가 보인다면 started, paused 상태와 관계 없이 앱은 forground에 있다. - 앱이 forground service를 실행하고 있다 - 앱이 다른 forground 앱이랑 연결될 때 service 중 하나에 바인딩하거나 해당 contentsProvider 중 하나를 사용하여 앱에 연결됩니다. 예를 들어 다른 앱이나 시스템이 아래 항목에 연결되면 앱이 forground에 있는 것 - 입력(소프트 키보드가 앱에 떠 있는 경우) - wallpaper(움직이는 배..

apply, with, let, also, run 함수는 작동 방식 및 결과가 유사하여 헷갈리기 때문에 공통점과 차이점을 구별하여 적재적소에 사용하는 방법을 알아보자 위 5개의 함수는 공통적으로 수신객체 및 그 객체에 적용되는 람다 함수를 가진다. - 수신객체 - 수신객체 지정람다 with @kotlin.internal.InlineOnly public inline fun with(receiver: T, block: T.() -> R): R { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } return receiver.block() } receiver(수신객체), block(수신객체 지정람다) T.( )의 값을 반환 즉, 수신객체를 가지고 함..
애노테이션 선언 제이키드 Json 직렬화 라이브러리 (코틀린 액션 제공 소스코드) @JsonExclude 는 아무 파라미터도 없는 가장 단순한 애노테이션이다. annotation class JsonExclude annnotation 키워드만 제외하면 일반 클래스와 선언이 비슷하다. 애노테이션 클래스는 선언이나 식과 관련하여 메타데이터를의 구조를 정의 하기 때문에 내부에 아무코드도 없을때가 있다. 파라미터를 애노테이션이 가지려면, annotationn class JsonName(val name: String) annotationn class JsonName(val name: String) 일반 클래스 구문과 동일하게 작성하되 모든 파라미터에 val로 선언을 해야된다. public @interface Jso..
지금까지는 클래스와 함수를 사용하는 여러 코틀린의 특성을 보았다. 이들 모두는 정확한 이름을 알고 있어야 호출/사용 할 수 있었다. 애노테이션과 리플렉션을 사용한다면, 이런 제약을 벗어나 임의의 클래스를 다룰수있다 애노테이션을 이용하면 라이브러리가 요구하는 의미를 클래스에 부여할 수 있다. 리플랙션을 사용하면 실행 시점에 컴파일러 내부구조를 분석할수있다. 애노테이션은 적용하기는 쉽다, 하지만 만들기는 어렵다. 특히 애노테이션을 처리하는 코드는 더 어렵다. 애노테이션 선언과 적용 메타데이터를 선언에 추가하면 애노테이션을 처리하는 도구가컴파일 시점이나 실행 시점에 적절한 처리를 해준다. @+name 형태 예) Junit class MyTest{ @Test fun testTrue() { Assert.asser..