전체 글 31

[오픈소스 배포] JetpackCompose LoadingBar

프로젝트 개요Jetpack Compose를 기반으로 Android 앱을 개발하면서, 기본 제공되는 CircularProgressIndicator 외에도 다양한 스타일의 로딩 컴포넌트가 필요하다고 느끼게 되었습니다.이에 따라, 커스터마이징이 가능한 Compose 기반 로딩 스피너 컴포넌트들을 직접 구현하고 오픈소스로 배포하게 되었습니다.주요 기능현재 총 4가지 스타일의 로딩 스피너를 제공합니다CircularLoadingSpinnerSquareSpinnerDotLoadingSpinnerDotRippleSpinner각 컴포넌트는 색상, 크기, 애니메이션 속도 등 다양한 속성을 통해, 원하는 스타일에 맞게 커스터마이징 할 수 있습니다. 사용 방법1. Gradle 의존성 추가dependencies { implem..

오픈소스 배포 2025.04.01

[Kotlin Multiplatform] 2. KMP 프로젝트 생성

Kotlin Multiplatform (KMP) 프로젝트는 단일 코드베이스에서 Android, iOS, Desktop, Web, 그리고 Server 플랫폼을 지원하는 모듈형 아키텍처를 갖추고 있습니다.이를 통해 공통 비즈니스 로직을 공유하면서도, 각 플랫폼에 최적화된 UI 및 기능을 독립적으로 구현할 수 있습니다.이번 글에서는 Android와 iOS를 포함하는 KMP 프로젝트를 생성하는 방법을 소개하겠습니다. 1. 프로젝트 생성KMP 프로젝트를 생성하기 위해서는 아래 사이트로 들어가서 생성해줘야 합니다. https://kmp.jetbrains.com/ Kotlin Multiplatform Wizard | JetBrains kmp.jetbrains.com  2.  IOS 프로젝트 : Share UI 와 D..

사이드 프로젝트 회고

프로젝트 참여이유그 동안 사이드 프로젝트는 주로 혼자 특정 주제를 기반으로 앱을 개발하거나 특정 기술을 공부하는 방식으로 진행해왔습니다.하지만 이번에는 다른 직군(개발자, 디자이너, PM 등)과의 협업 경험을 쌓기 위해 사이드 프로젝트 팀에 합류했습니다.이를 통해 서로 다른 직무 간의 소통과 역할 분담을 경험하며, 팀원들과의 협력을 통해 더 나은 결과물을 만들어가는 과정을 배울 수 있었습니다.프로젝트 소개스터디나 사이드 프로젝트를 진행할 때, 사람들을 모집하는 과정에서 프로젝트가 끝까지 마무리 되지 못하고 중단되는 경우가 많습니다.이러한 문제의 주요 원인은 모집 초기 단계에서 지원자에 대한 상세한 정보 없이 쉽게 시작하지만, 결국 기대와 맞지 않아 중단되는 경우가 많기 때문입니다.이 프로젝트(플랫폼)는 ..

회고 2025.01.01

[Kotlin Multiplatform] 1. kdoctor 세팅

Kotlin Multiplatform 을 시작하기 위해서는  1. 필요한 프로그램1. Android Studio 설치2. JDK3. Xcode 설치4. Kotlin Multiplatform 플러그인 설치 (Android Studio) 을 설치해줘야 합니다. (아래 링크 참고) https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-setup.html#install-the-necessary-tools Set up an environment | Kotlin Multiplatform Development www.jetbrains.com 2. kdoctor 설치kdoctor을 설치하면 Android Studio, Xcode 등이 잘 설치가 되..

[Kotlin] sortedWith()

1. 정렬이란정렬이라는 것은 일종의 조건에 맞게 아이템들을 나열하는 것을 말한다.이걸 프로그래밍에서 이야기해보면 특정 조건에 따라 리스트 등의 컬렉션을 오름차순, 내림차순 등으로 나열하는 것을 말한다. 2. 예시예시를 들어보면 아래와 같은 문자열 리스트가 있는데 n번째 원소값을 기준으로 오름차순을 하고 싶은 경우가 있다val list = arrayOf("sun", "bed", "car")// 0번째 원소 기준 정렬 결과[bed, car, sun] 3. 코틀린에서의 정렬 함수코틀린에서는 이러한 정렬을 쉽게 하기 위해 함수를 제공한다. sort(): sort() 함수는 원본 리스트 자체를 오름차순으로 정렬하는 함수이다. sorted() : sorted() 함수는 원본 리스트는 냅두고 원본을 복사해서 복사된 ..

Kotlin Collection 2024.09.10

[Kotlin] partition

partition 공식문서https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/partition.html partition이란컬렉션을 특정 조건을 만족하는 그룹과 그렇지 않은 그룹으로 두 개의 리스트로 나눠야 할 때 사용합니다.filter, filterNot을 따로 사용할 필요 없이 한 번의 연산으로 두 개의 리스트를 반환합니다. 1) filter, filterNot 을 활용한 예시class Person(val name: String, val age: Int) { override fun toString(): String { return "Person(name='$name', age=$age)" }}fun main(){ v..

Kotlin Collection 2024.09.07

[Kotlin] joinToString

joinToString 공식문서https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/join-to-string.html  joinToString이란kotlin에서 리스트나 배열에 있는 값을 문자열로 합치고 싶은 경우에 사용을 한다.  예를 들면 아래와 같은 리스트, 배열이 있는데 val list = listOf(1, 2, 3, 4, 5)val array = intArrayOf(1, 2, 3, 4, 5) 아래와 같이 리스트 안에 있는 값들을 합쳐서 하나의 문자열로 만들 때 사용을 하는 것이다.  joinToSring 의 내부 구현을 살펴보면,public fun Iterable.joinToString(separator: CharSequence =..

Kotlin Collection 2024.09.06

드로이드 나이츠 2024 후기

https://www.droidknights.dev/ 지난 6월 11일 드로이드 나이츠 2024 세미나에 다녀오게 되었습니다. 국내에서 가장 큰 안드로이드 개발자 행사라고 들었는데, 직접 가서 보니 많은 안드로이드 개발자들이 모인 것을 알 수 있었습니다. 사전에 온라인으로 티켓팅을 했었는데, 금방 매진되서 표를 구하지 못한 분들도 있다는 것을 들었을 때, 확실히 많은 안드로이드 개발자들이 관심을 갖는 행사라는 것을 알 수 있었습니다. 안드로이드를 처음 공부할 때에 인강을 들었었는데 그 때 강의해주셨던 분들이 같은 세미나 장소에 계신걸 보고 신기하기도 했습니다. 현장에 도착해서 카카오뱅크, 당근 등의 부스에서 굿즈들을 받았습니다. 그리고 세미나 시간이 되어 강연을 듣기 위해 들어갔습니다. 세미나는 각 타임..

세미나 2024.06.17

개발자 맥북 세팅

트랙패드 스크롤 방향처음에 맥북을 사용하면 트랙패드의 스크롤 방향과 실제 화면에서의 스크롤 방향이 반대여서 헷갈리게 된다.아래 옵션을 해제하면 스크롤 방향과 실제 화면에서의 스크롤 방향이 일치된다. 시스템 설정 - 트랙패드 - 스크롤 및 확대/축소 - 자연스러운 스크롤 해제  인텔리제이 설치https://www.jetbrains.com/ko-kr/idea/ IntelliJ IDEA – Java 및 Kotlin을 위한 최고의 IDE www.jetbrains.com   안드로이드 스튜디오 설치https://developer.android.com/studio?hl=ko Android 스튜디오 및 앱 도구 다운로드 - Android 개발자  |  Android Studio  |  Android Developer..

기타 2024.06.04