본문 바로가기
[android] ImageView in Compose (Image) # Android View 시스템의 ImageView 는 Compose 에서 'Image' 에 매칭된다. # Image 의 function signature 는 아래와 같다. @Composable fun Image( painter: Painter, contentDescription: String?, modifier: Modifier = Modifier, alignment: Alignment = Alignment.Center, contentScale: ContentScale = ContentScale.Fit, alpha: Float = DefaultAlpha, colorFilter: ColorFilter? = null ) # Compose 에서 Image 에 imageRes (drawable) 를 그리기 .. 2022. 9. 8.
[android] LinearLayout in Compose (Row, Column) # Android View 시스템의 LinearLayout 은 Compose 에서 "Row" 와 "Column" 에 매칭된다. Horizontal LinearLayout -> Row Vertical LinearLayout -> Column # Layout 내부 내용물을 정렬하기 위한 Android View 시스템의 Gravity(android:gravity) 는 Compose 에서 xxxAlignment argument 를 이용한다. Row( verticalAlignment=Alignment.CenterVertically horizontalArrangement=Arrangement.END ){ ... } # 비율을 통한 Layout 을 하는 Android View 시스템의 Weight (android:w.. 2022. 9. 7.
[android] Introduction to Jetpack compose Android Jetpack Compose 가 뭐야? - 기존에는 Android UI Toolkit 전체가 View class 위에 build 되어 있었다. 이는 android 가 생성될 때부터 있었던 일이다. 그래서 View 를 개선하고 싶은 욕구가 있어도 처음부터 새로 만들기가 어려웠다. 클라이언트단에서 요구사항들이 많이 있어서 구글은 UI 에 대한 것을 처음부터 다시 구현하기로 했다. 그것이 Android Jetpack Compose lib 이다. 그리고 이것은 React, Litho, Vue, Flutter 등에서 컨셉을 차용했다. 1. Android Platform Release 와 함께 release 되는 것이 아니다. - 기존 UI system 은 platform 에 종속적이다. materi.. 2022. 9. 6.
[Effective Kotlin] Dictionary 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. Function vs method # function 은 "fun" keyword 로 시작하고, top-level, member, local function 으로 정의가 가능하다. # method 는 class 에 연관된 function 을 이야기한다. 다시 말하면 이 함수를 부르기 위해서는 연관된 class 이름이 필요한 경우가 method 이다. 논란의 여지가 조금 있지만 extension function 도 method 로 본다. Extension vs member Param.. 2022. 6. 14.
[Effective Kotlin] Item 52: Consider using mutable collections 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # mutable collection 을 쓰는 가장 큰 장점은 modification 이 발생할 때, immutable collection 대비 더 빠르다는 것이다. Summary 끝 2022. 6. 13.
[Effective Kotlin] Item 51 : Consider arrays with primitives for performance-critical processing 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # IntArray, LongArray 등을 사용해서 primitive 를 사용하도록 하자. 이는 메모리와 성능 두기지 관점에서 모두 이득이다. # 일반적으로 List 등이 더 직관적이며 잘 쓰인다. 따라서 IntArray, LongArray 등은 최적화가 필요한 부분에서 사용하도록 하자. Summary 끝 2022. 6. 12.
[Effective Kotlin] Item 50: Limit the number of operations 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # collection 에 대한 operation 은 sequence 라 해도 heavy 할 수 있다. 따라서 다음 함수들로 복수개의 operation 을 줄여 쓸 수 있다. filterNotNull() mapNotNull{ } joinToString{ } filter{ && } filterIsInstance() sortedWith( compareBy({ }, { }) ) listOfNotNull(...) filterIndexed{ index, elem -> } // ... Sum.. 2022. 6. 11.
[Effective Kotlin] Item 49: Prefer Sequence for big collections with more than one processing step 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # Iterable 과 Sequence 를 동일한 것으로 보기 쉽다. 하지만 Sequence 는 lazy 하게 작동하며, terminal operation 을 만나면 작동한다. 반면 Iterable 은 중간과정에서 collection 을 계속 만들어낸다. # sequence 를 사용함으로써 갖는 장점은 아래와 같다. 자연적인 순서를 보장한다. 최소한의 작업을 한다. 무제한이 가능하다. 매번 collection 을 만들지 않는다. Order is important # sequence.. 2022. 6. 10.
[Effective Kotlin] Item 48: Eliminate obsolete object references 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # 미사용 object 에 대해 null 을 세팅해주자. function type 의 경우 variable capture 효과가 있으므로 더 유용하다. # state 를 갖게 되면 항상 메모리 관리를 신경써야 한다. # 가독성 좋은 코드가 일반적으로 메모리 릭에도 안전한 편이다. 읽기 어려운 코드가 메모리 릭을 더 못 발견하게 하며, CPU 도 낭비하곤 한다. 그러므로 가독성 좋은 코드를 작성하도록 하자. # Cache 를 사용할 때는 SoftReference 를 잘 활용하도록 하.. 2022. 6. 9.
반응형