Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
KMM Colorpicker App
Search
ChungKyu Yu
January 16, 2024
Technology
0
37
KMM Colorpicker App
KMM 을 활용한 대표 컬러 찾기 프로젝트
LinkedIn :
https://www.linkedin.com/in/yuskyblue/
ChungKyu Yu
January 16, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.5k
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
190
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
230
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
120
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
610
Digitization部 紹介資料
sansan33
PRO
1
6.8k
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
250
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
460
プロポーザルに込める段取り八分
shoheimitani
1
280
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
370
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
How to Ace a Technical Interview
jacobian
281
24k
BBQ
matthewcrist
89
10k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Mobile First: as difficult as doing things right
swwweet
225
10k
Code Reviewing Like a Champion
maltzj
527
40k
Transcript
Kotlin Multi Platform Project : Color Picker [Blue Star] 옥수환
유청규
시연
Table of Contents Blue Star 1. 주제 선정 2. 참고
자료 3. 진행 과정 4. 종료 후기
주제선정
옥수환 - 주어진 이미지에서 대표 색상을 추출하고 싶다. 유청규 -
KMM 으로 간단하게 이미지를 처리하는 앱을 만들어 보고 싶다. 주제 선정 Blue Star
참고자료
참고 자료 Blue Star [XML] [Compose]
참고 자료 Blue Star
진행과정
진행 과정 Blue Star [옥수환] [유청규] XML + Compose 적용
후 -> KMP 좌표 값 색상 추출 적용 주어진 이미지에서 대표 컬러 구하는 Usecase 구현
진행과정 이미지 가져오기
진행 과정 - 이미지 가져오기 Blue Star commomMain (App Screen)
Android iOS 공통적인 뷰를 가지고 있으면서 Photo Picker 처럼 Dependency 있는 부분 각각 구현
진행 과정 - 이미지 가져오기 Blue Star Comm (Get Dominant
Color) Android iOS [image URL Format] Photo 형식을 URL형식으로 가져옴
진행과정 이미지 프로세싱
진행 과정 - 이미지 프로세싱 Blue Star [Image URL] URL
형식의 이미지를 Decode 하여 원하는 이미지 객체인 BSImage로 반환 [Use Case decode] BS Image [Image Object]
진행 과정 - 이미지 프로세싱 Blue Star [CommomMain] [androidMain] [iosMain]
진행 과정 - 이미지 프로세싱 Blue Star Android 예시 any
로 객체로 받아 디코딩 하여 원하는 이미지 객체 반환
진행과정 대표값 찾기
진행 과정 - 대표값 찾기 Blue Star Commommain (Get Dominant
Color) Android iOS
진행 과정 - 대표값 찾기 Blue Star CommomMain (Get Dominant
Color) Android iOS X Y X, Y를 돌면서 회색조 판단 Map 에 GrayScale 이미지 제외한 색깔을 Counting
진행 과정 - 대표값 찾기 Blue Star CommomMain (Get Dominant
Color) Android iOS
진행 과정 - 대표값 찾기 Blue Star CommomMain (Get Dominant
Color) Android iOS Most Common Color Value 산출
진행 과정 - 대표값 찾기 Blue Star commomMain (App Screen)
Android iOS
진행 과정 - 대표값 찾기 Blue Star commomMain (App Screen)
Android iOS 대표값 각 OS 별 삽입
진행과정 이미지 좌표 값 출력
진행 과정 - 이미지 좌표 값 출력 Blue Star Image
dominant Color Color Value [App Screen] image의 임의에 지점을 클릭
진행 과정 - 이미지 좌표 값 출력 Blue Star Image
dominant Color Color Value [App Screen] offset 좌표 값 추출 및 이미지 디코드 BSImage Color Value
진행 과정 - 이미지 좌표 값 출력 Blue Star Image
dominant Color Color Value [App Screen] BSImage Color Value CommomMain (GetColorByPos itionUseCase) 이미지 / 좌표값 / 비율
진행 과정 - 이미지 좌표 값 출력 Blue Star Image
dominant Color Color Value [App Screen] BSImage (255,165,0) CommomMain (GetColorByPos itionUseCase) 대표값 다시 적용 ex) orange -> purple
진행 과정 - 이미지 좌표 값 출력 Blue Star Image
dominant Color Color Value [App Screen] BSImage (160,32,240) CommomMain (GetColorByPos itionUseCase) 대표값 다시 적용 ex) orange -> purple
종료후기
종료 후기 Blue Star [옥수환] [유청규] KMP 는 유즈케이스에 대해
전반적인 설계 및 OS Dependency 생기지 않도록 만드는 것이 중요하다 KMM으로 프로젝트 진행시 코틀린으로 최대한 공통로직을 작성하고, 특수한 상황을 제외하고는 expect/actual을 통한 플랫폼 분기 구현은 최소화하는 게 좋을 것 같다.