전체 글

개발 관련 지식을 끄적이고 있습니다 Github: https://github.com/citytexi
코루틴 컨텍스트 (CoroutineContext)Job 계층의 생명 주기를 연결하기 위해 사용코루틴 컨텍스트 구현체// kotlin.coroutines.CoroutineContext.class@kotlin.SinceKotlin public interface CoroutineContext { public abstract operator fun get(key: kotlin.coroutines.CoroutineContext.Key): E? public abstract fun fold(initial: R, operation: (R, kotlin.coroutines.CoroutineContext.Element) -> R): R public open operator fun plus(context..
androidx.collection.LruCacheLRULeast Recently Used최근에 사용되지 않는 페이지 교체 알고리즘최대 사이즈를 고정적으로 설정해야함데이터를 추가하여 최대 사이즈를 넘었을 때, 가장 오래된 데이터 삭제저장된 데이터를 읽을 경우, 데이터가 가장 최근 추가된 것으로 이동최종적으로 주로 쓰이지 않는 데이터는 삭제캐시의 히트율 증폭class 내부 구현 구조package androidx.collectionprivate const val MAX_SIZE = Int.MAX_VALUE.toLong()public open class LruCachepublic constructor(@IntRange(from = 1, to = MAX_SIZE) private var maxSize: Int) ..
· CMP
요약CMP 1.8.0 도입 이후 인앱 브라우저, 내장 카메라 등의 동작 이후 iOS에서 다이얼로그가 나타나지 않는 현상이 있었습니다. 이는 CMP 1.8.0의 Priority Critical 수준의 버그이며 1.8.1에 수정되었습니다.따라서 다른 분들은 CMP 1.8.1로 바로 올리시면 될 것 같습니다.Compose Multiplatform 1.8.0 도입회사에서 Compose Multiplatform을 이용하여 앱 출시를 준비하던 도중 드디어 iOS Stable 버전이 등장을 했다는 소식에 최소한 출시 나가는 앱은 Android, iOS에서 모두 Stable 해야하지 않을까라는 생각에 버전 업 의견을 전달하였고 도입을 결정했다https://github.com/JetBrains/compose-multip..
2024를 돌아보며2025년 신년이 되면서 2024에 대한 기록을 남겨야겠다는 생각이 들어서 급하게 2월에 작성해봅니다 취업2024년 2월 전직장을 퇴사하고 8월까지 거의 놀기만하다가 무턱대고 취업에 도전했습니다.결과는 H사 2차 면접 탈, I사 입사 라는 결과를 가지고 왔습니다.면접은 쉽지않고 인성 면접은 저처럼 소심한 사람한테는 너무 큰 장벽인거 같습니다. 사이드 프로젝트순간이라는 사이드 프로젝트를 하고 있습니다. 사진에 대한 SNS 어플이고 열심히 개발을 하고 있지만 이제 슬슬 지치는건지 애매하네요addition이 약 2만 ~ 3만 정도 간거 같은데 슬슬 일이랑 병행하기 힘든건지 아니면 번아웃이 오는건지 힘든 상황입니다.마무리쓰다보니 별 다른거 적을게 없어서 이만 마치겠습니다.깃허브 링크는 아래와 ..
· CMP
Compose Multiplatform - shadow open source contribute 도전기https://github.com/adamglin0/compose-shadow GitHub - adamglin0/compose-shadow: a kotlin library for draw shadow in compose multiplatforma kotlin library for draw shadow in compose multiplatform - adamglin0/compose-shadowgithub.com내 게시글 중 조회수가 가장 높은 게시글이 부분은 사람들이 필요로 하고 다른 기술 블로그에는 잘 없는 정보라고 생각해서 이를 라이브러리화 시키는 곳에 contribute를 통해 제공한다면 더 나은 생..
Orbit 없이 MVI 패턴 적용기사이드 프로젝트를 진행하면서 단방향 데이터 흐름을 구현하기 위해 sealed class를 사용하다 보니 nav에서 back을 할 경우 이전 viewmodel에 존재하는 상태 값 때문에 자동으로 navigation 되는 현상을 발견하였다. 이를 해결해보고자 한다.MVVM 적용 시@HiltViewModelclass ExampleViewModel@Injectconstructor( // inject value) : ViewModel() { private val _state = MutableStateFlow(ExampleState.Init) val state = _state.asStateFlow() // ...}Compose에서 해당 방식을 이용하면 nav..
아이나비 맵 SDK Compose로 사용해보기아이나비 맵 SDK는 컴포즈 버전이 따로 존재하지 않고 xml로 되어있는 layout을 이용하거나 Fragment 인스턴스를 이용해서 사용해야한다.해당 작업을 진행하고 나면 아이나비 맵뿐만 아니라 다른 지도 sdk도 compose를 이용하여 작성할 수 있을 것이라고 생각한다.1안 xml layout을 이용하여 AndroidView로 Wrapping@Composablefun InaviMapUsingXmlView( modifier: Modifier = Modifier,) { val context = LocalContext.current AndroidView( modifier = modifier.fillMaxSize(), f..
[백준 12015번] 가장 긴 증가하는 부분 수열 2 - Kotlinhttps://www.acmicpc.net/problem/12015https://github.com/citytexi/daily/pull/24 May/17 by citytexi · Pull Request #24 · citytexi/daily2024년 5월 17일 백준 골드 1문제 12015번 가장 긴 증가하는 부분 수열 2github.com문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N..
[백준 1644번] 소수의 연속합 - Kotlinhttps://www.acmicpc.net/problem/1644https://github.com/citytexi/daily/pull/22 May/15 by citytexi · Pull Request #22 · citytexi/daily2024년 5월 15일 백준 실버 1문제 11279번 최대 힙 백준 골드 1문제 1644번 소수의 연속합github.com문제하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다.3 : 3 (한 가지)41 : 2 + 3 + 5 + 7 + 11 + 13 = 11 + 13 + 17 = 41 (세 가지)53 : 5 + 7 + 11 + 13 + 17 = 53 (두 가지)하..
[잡담] 사이드 프로젝트 6월달 회고사이드 프로젝트를 진행하면서 팀원이 중간에 바뀌게 되었습니다. 현재 재직중이신 회사와 사이드 프로젝트를 양립하지 못할 것 같다고 하셔서 나가시고 새로운 분이 들어와서 프로젝트를 같이 진행하게 되었습니다. 회원가입 UI 등을 새로 작업하느라 바빴던 한달인거 같네요Shadow를 구현하다https://citytexi.tistory.com/87 [안드로이드] Inner Shadow, Drop Shadow 처리하는 방법[안드로이드] Inner Shadow, Drop Shadow 처리하는 방법사이드 프로젝트를 진행하면서 figma를 확인하여 UI 작업을 하고 있었다. figma에 그려진 UI 중에 Effect란에 Inner Shadow, Drop Shadow가 포함되어 있는cit..
citytexi
미래를 위한 개발 히스토리