고차 함수는 함수형 프로그래밍에서 매우 중요한 기법이지만 람다 함수를 전달하고 이 람다 함수를 이용하는 코드가 많아지면서 런타임 시 성능 상의 문제가 발생할 가능성이 있습니다. fun hoFunTest(argFun: (x1: Int, x2: Int) -> Int) { argFun(10, 20) } fun main(args: Array) { val result = hoFunTest { x1, x2 -> x1 + x2 } } 고차 함수 호출이 빈번하게 일어나서 런타임 시 성능 상의 문제가 발생할 수 있다면 인라인 함수가 대안책이 될 수 있습니다. 인라인 함수는 inline이라는 키워드를 추가한 함수이며 컴파일 단계에서 정적으로 포함되는 함수이므로 런타임에 함수가 호출되지 않습니다. inline fun hoF..
Retrofit2를 사용하여 Multipart Form-Data형태로 파일과 Body를 업로드하는 방법에 대해 정리해보고자 합니다. MultiPart에 대해서 잘 모르는 분들을 위해 간단하게 MultiPart에 대해 정리해보고자 합니다. Multipart/form-data File Upload Feature를 구현할 때, Client가 만약 Web Browser라면 Form을 통해서 사용자로부터 파일을 받고 올리게 됩니다. 이때 Web Browser가 보내는 HTTP 메시지에서 Content-Type 속성이 multipart/form-data로 지정되며, 정해진 형식에 따라 메시지를 인코딩하여 전송합니다. 이를 처리하기 위한 서버는 멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 ..
이번 포스트에서는 Lottie 사용법에 대해 간단하게 알아보려고 합니다. 그동안 우리가 만들어온 어플리케이션들이 뭔가 밋밋하고 생동감 넘치지 않은 느낌이 들었던 경험이 한 번쯤은 가지고 있을 것입니다. 그러한 밋밋함을 채워줄 무언가를 소개해드리려고 합니다. AirBnB에서 개발한 Lottie Animation 라이브러리 입니다. Lottie란? After Effect에서 제작한 Motion Graphic을 Android에서 그대로 보여줄 수 있는 것으로써 OOM(OUT OF MEMORY)에 대해서도 신경을 많이 쓴 라이브러리 입니다. 이전에 Facebook에서 KeyFrame이라는 라이브러리를 개발했었는데 이보다 더 많은 기능을 제공하는 라이브러리가 바로 Lottie가 되겠습니다. Lottie는 실제 A..
최신 단말기에서는 크게 문제가 발생되지 않는 반면 예전(성능이 낮은) 단말기에서 고해상도의 Bitmap을 ImageView에 설정하면 보이지 않는 현상이 발생하는데 이를 해결하는 방법을 정리해보고자 한다. Logcat을 살펴보면... 설정하려는 비트맵의 크기가 텍스쳐에 업로드할 수 있는것에 비해 너무 크다는 에러 로그가 뜬다. W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (4160x2340, max=4096x4096) 안드로이드의 Hardware Accelerated를 사용할 경우 기본적으로 GL_MAX_TEXTURE_SIZE 만큼만 rendering을 할 수 있기 때문에 이 SIZE를 넘어가는 Bitmap들은 문제가 발생한다는 것이..
- Total
- Today
- Yesterday
- databinding
- 안드로이드
- SwiftUI
- Reactive programming
- Swift
- Auto Layout
- watchos
- ios
- C++
- Kotlin
- retrofit
- Apple Watch
- 알고리즘
- 아이폰
- 컬렉션
- 스위프트
- XCode
- 애플워치
- android
- Rxjava
- 오토레이아웃
- java
- 코틀린
- CloudComputing
- Notissu
- Elliotable
- 함수형프로그래밍
- 함수형
- apple
- 상속
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |