기본적인 Koin 사용법은 앞 포스팅에서 다뤘다. 이제 안드로이드에서 사용해보자. 버전카탈로그를 사용한다고 가정한다. 우선 libs.versions.toml 에 다음과 같이 추가한다. bom을 사용하기 때문에, 그 이후에는 version.ref런스 명시가 필요없다. koin-core, koin-android외 라이브러리들은 필요한 것들을 찾아서 추가한다고 생각하면 된다. 이제, build.gradle.kts 파일에 해당 라이브러리들을 추가해보자. Koin Usage : https://insert-koin.io/docs/quickstart/android-compose 안드로이드에 DI를 사용하는 가장 큰 이유중 하나는 MVVM구조에서 Repository, Viewmodel들을…
[태그:] kotlin
Koin 사용하기
시작하기에 앞서 개발자로 직장에서 일한지는 좀 오래됐지만, 일 할때 알게된 진리중 하나는 “문서를 있는그대로 100% 신뢰하지 마라”였다. 심지어 MS API문서도 직접 사용해보면 다르게 동작하는 경우가 있기도 했음. 안타깝지만, 개발자는 결국 코드로 읽어야 하는 존재란걸 또 깨닫는 경험을 하게됐다. Koin 4.0이 나왔음에도 공식 사이트의 문서들은 3.5에 기반한 내용들이다. 버전별 API문서도 없고, 심지어 가장 간단한 Kotlin tutorial도…
Kotlin 에 익숙해지기 : 낯선 문법들 정리 #4
codepro 때문에 포스팅을 나눠서 계속 짤라먹어야 하는게 짜증나네. delegation : https://kotlinlang.org/docs/delegation.htmlhttps://kotlinlang.org/docs/delegated-properties.html 위임(delegation) 디자인 패턴( https://en.wikipedia.org/wiki/Delegation_pattern )은 한 클래스의 멤버 구현을 직접 하지 않고, 다른 클래스의 멤버구현을 이용하는 것이다. 다시말하면, 다른 클래스에게 위임하는 것이다. 코틀린은 이를 언어 수준에서 직접적으로 지원한다. 바로 ‘by’키워드가 그것이다. 위 코드에서 Window 클래스는 ClosedShape 인터페이스의 구현을 bounds에게 위임하고 있다. 클래스 단위가 아니라…
Kotlin 에 익숙해지기 : 낯선 문법들 정리 #3
람다 표현식 : https://kotlinlang.org/docs/lambdas.html 코틀린에서 함수는 first-class 이다. 이 의미는 함수도 객체처럼 변수에 저장도하고, 인자로 넘기고, 리턴값으로 돌려줄 수도 있다는 얘기. 이와같이 다루기위해 함수 타입의 정의가 필요한데 다음과 같이 한다. 람다 표현식(Lambda expression)은 표현식이면서 하나의 함수로 syntax예제는 다음과 같다. 람다 표현식은 함수와 똑같이 중괄호로 묶인다. 파라미터를 나열하는 것으로 시작하여 화살표 ‘->’ 를 쓰고 표현식 바디부분을…
Kotlin 에 익숙해지기 : 낯선 문법들 정리 #2
Destructuring : https://kotlinlang.org/docs/destructuring-declarations.html 코틀린은 클래스의 속성값을 하나씩 받아오지 않고, 한번에 여러 변수에 받아오는 방법을 제공한다. 이를 destructuring이라고 한다. 예를들면 다음과 같이 사용한다. 위 코드는 person에 있는 값을 name과 age 변수에 받아오고 있다. 이게 가능한 이유는 위에 풀어쓴 내용처럼 component1(), component2()로 해석되기 때문이다. component1, component2 등의 함수는 계속 3, 4 등으로 이어질 수 있는데, 이를 componentN()이라고…