전체 글 (75) 썸네일형 리스트형 기존 프로젝트 Android 레포지토리에 KMP 추가하기 1. 우선 kotlin-multiplatform 플러그인 을 추가해야합니다.2. New Module3. Kotlin Multiplatform Shared Module로 추가4. shared 모듈 내 commonMain에 테스트용 함수를 추가합니다.5. 그리고 app에 아래 shared 디펜던시를 추가합니다.6. 그리고 UI랑 연결해봅시다. 만들어진 shaed 모듈을 iOS xcode로 넣는 법!xcframework 파일로 컴파일해서 넣으면 됩니다.1. 파일 추출하기 위해 shared 모듈에 해당 내용을 추가해주시면 됩니다.val xcf = XCFramework("shared") listOf( iosX64(), iosArm64(), iosSimulatorArm6.. 스켈레톤 애니메이션 - OLED 저명도 알파 합성 플리커 현상 고사양 안드로이드 단말에서어두운 배경의 스켈레톤 알파 애니메이션이 미세하게 깜빡이는 현상을 보신 적 있으실 것임.특히:암막 환경어두운 백그라운드낮은 명도 영역최대 밝기 상태이 조건에서 더 잘 보임.이 현상은 단순 UI 버그라기보다OLED 특성과 알파 합성 구조에서 비롯된 구조적 문제에 가까움.1. OLED 저명도 영역의 물리적 한계OLED는 구조적으로 저명도(0~10 수준) 표현이 어려운 상태임.특징은 다음과 같음.0~10 구간에서 밴딩 발생블랙 근처 전류 제어가 매우 민감미세한 전압 변화도 눈에 크게 인지됨알파 애니메이션이 이 영역을 건드리면1단계 값 변화만으로도 플리커처럼 체감될 수 있음.2. 알파 합성과 정수 단차 문제알파 합성은 기본적으로 다음 계산임. result = background * (1.. KMP 개발환경 구축 1. 개발 환경 구축 (Setup)먼저 필요한 도구들을 설치해야 합니다. iOS 개발을 포함한다면 macOS 환경이 필수입니다.IDE: Android Studio (Otter 버전 이상 권장) 또는 IntelliJ IDEA.플러그인: IDE 내 Settings > Plugins에서 Kotlin Multiplatform 플러그인을 설치하세요.Xcode: iOS 앱 빌드 및 시뮬레이터 실행을 위해 최신 버전의 Xcode가 필요합니다.JDK: Java 17 이상의 JDK를 설치하세요.2. 프로젝트 생성하기가장 빠르고 표준적인 방법은 JetBrains에서 제공하는 KMP Wizard를 사용하는 것입니다.Kotlin Multiplatform Wizard 사이트에 접속합니다.프로젝트 정보 입력: 이름과 패키지 명(.. 코틀린 멀티플랫폼 (KMP) 안녕하세요. 오늘의 제 요즘 관심 주제인 Kotlin MultiPlatform(KMP)에 대해서 포스팅을 해보겠습니다.아래 Android Developers Docs에도 소개된 KMP는 구글에서 공식적으로 지원합니다.키포인트는 비즈니스 로직은 Kotlin으로 플랫폼 공유하고, UI는 각 OS 개발자가 직접 구현하는 것입니다.제가 Flutter을 아주 간단히 해봤는데요. 상용 UI로 배포되기엔 한계가 있었습니다. 디자이너가 절대 용납못하는 UI로 개발되기 때문이죠.또한, Dart 언어의 피로도.. 트리구조라 별로 좋지 못한 것 같았습니다.그래서 요즘 제 관심은 KMP인데요. Android 개발자로 코틀린에 능숙한 편이고, Android에 익숙한 Compose를 사용할 수도 있죠.KMP는 프로젝트 전체를 바.. 요즘 개발 하시나요? AI 코딩 에이전트에 대한 이야기 오랜만의 포스팅이네요. ^^요즘 출근해서 직접 코드를 짜는 일이 드물어진 것 같아요.AI 코딩 에이전트에게 프롬프트만 잘 주면, 그 친구들이 알아서 코드를 짜주니까요.이제는 개발의 방식이 완전히 바뀐 것 같습니다.하시면서 느끼셨겠지만, AI도 완벽하진 않아요.딴길로 새기 시작하면 끝도 없이 새더라고요.그럴 때 우리가 멈춰주고 방향을 제시하는 역할을 해야 하는 것 같습니다.저는 개인적으로 클로드 코드(Claude Code) 를 사용하고 있는데, 매우 만족 중입니다.단순히 코딩뿐만 아니라, 회사 일하면서 생기는 잡일들 있죠 — 주간보고 같은 것들요.그런 부분도 MCP 서버로 연결해서 클로드 코드에게 맡기고 있습니다.슈퍼클로드 이런것도 있더라고요? 듣기로는 컨텍스트가 엄청나다고...MCP 서버로 연결해서 주간.. Play Feature Delivery - 앱 크기 최적화의 열쇠 안녕하세요! 앱 개발하면서 앱 크기 때문에 고민한 적 있으신가요? 🤔 기능은 계속 추가되는데 앱 용량이 자꾸 늘어나면 사용자들도 부담스러워하고, 설치까지 가는 길에 포기하기도 하죠. Google Play에서는 이런 우리들의 고민을 해결해주려고 멋진 도구들을 만들어줬어요! 바로 Android App Bundle 기반의 Play Feature Delivery랍니다.Play Feature Delivery는 뭐냐면요, 쉽게 말해 우리 앱의 기능들을 '기능 모듈'이라는 작은 조각으로 나눠서, 사용자 폰에 딱 필요한 것만 골라서 다운받게 해주는 거예요. 덕분에 처음 앱을 깔 때 다운로드 용량을 엄청나게 줄일 수 있죠!이 '기능 모듈'은 앱의 기본 모듈이랑 비슷하게 생겼지만, 꼭 기본 모듈에 붙어 다녀야 해요. 사.. Android 멀티 모듈 도입기 신규 프로젝트를 하면서 화면 UI는 전체 컴포즈, 그리고 모듈은 멀티모듈로 작업했습니다.기존의 프로젝트에서 멀티모듈을 제대로 활용하지 못하고 있었는데요.그래서 이번 프로젝트는 멀티모듈을 잘 도입하고자 했습니다.1. ✅ 왜 멀티 모듈을 도입했는가?기존 문제점단일 모듈 구조에서 빌드 시간이 너무 길어짐기능이 많아지면서 의존성 관리가 어려움코드 변경이 전체 앱에 영향을 미침 (작은 수정 → 전체 리빌드)협업 중 충돌 발생 확률 증가도입 목적빌드 시간 단축기능 별로 독립적인 개발 및 테스트 가능책임 영역 명확화 (도메인 별로 나누기)병렬 개발과 CI/CD 효율화2. 🧩 모듈 구조 어떻게 나눴는가?기본 구조 예시app/ # 엔트리포인트 (presentation)core/ .. 브릿지패턴(Bridge Pattern) 브릿지(Bridge) 패턴은 GoF(디자인 패턴) 중 하나로, 구조(Structural) 패턴에 속합니다."구현부에서 추상층을 분리하여, 둘이 독립적으로 확장할 수 있도록 하는 패턴"입니다.🔧 쉽게 말하면?클래스들이 여러 방향(기능 + 플랫폼 등)으로 확장될 가능성이 있을 때,상속을 계속 늘리기보다는,기능 계층과 구현 계층을 분리해서 조합(composition)으로 해결하자!는 전략📦 구조 예시 (UML 개념) Abstraction | ------------------- | |RefinedAbstraction Implementor Abstraction : 클라이언트가 사용하는 인터페이스 (추상화 계층)Implem.. 이전 1 2 3 4 ··· 10 다음