2023๋…„ 8์›” 29์ผยท1๋ถ„ ์ฝ๊ธฐ

JetBrains, iOS ์ตœ์ ํ™” ๋ฐ ๋ฒ”์šฉ API๋ฅผ ๊ฐ–์ถ˜ ํ–ฅ์ƒ๋œ Compose ๋‹ค์ค‘ ํ”Œ๋žซํผ 1.5.0 ์ถœ์‹œ

JetBrains์—์„œ๋Š” Kotlin ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ์  UI ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ Compose Multiplatform 1.5.0์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

JetBrains, iOS ์ตœ์ ํ™” ๋ฐ ๋ฒ”์šฉ API๋ฅผ ๊ฐ–์ถ˜ ํ–ฅ์ƒ๋œ Compose ๋‹ค์ค‘ ํ”Œ๋žซํผ 1.5.0 ์ถœ์‹œ

JetBrains๊ฐ€ Kotlin ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์šฉ์œผ๋กœ ์„ค๊ณ„๋œ ์„ ์–ธ์  UI ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ฐœ์„ ๋œ ๋ฒ„์ „์ธ Compose Multiplatform 1.5.0์„ ๊ณต๊ฐœํ•˜๋ฉด์„œ ๊ธฐ์ˆ  ์—…๊ณ„์—์„œ๋Š” ๋˜ ๋‹ค๋ฅธ ์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ์„ ๋ชฉ๊ฒฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ๋Š” ๋Œ€ํ™” ์ƒ์ž, ํŒ์—… ๋ฐ WindowInsets๋ฅผ ํฌํ•จํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ iOS ๊ด€๋ จ ๊ฐœ์„  ์‚ฌํ•ญ๊ณผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

8์›” 27์ผ ๋Œ€์ค‘์—๊ฒŒ ๊ณต๊ฐœ๋œ Compose Multiplatform 1.5.0์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋‹ฌ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€ํ™” ์ƒ์ž์˜ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ํ™•๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ํ™•์žฅ๋œ ์„ ํƒ์  ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ๋น„๋ชจ๋‹ฌ ๋™์ž‘์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ํŒ์—…์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. DropdownMenu ๋ฐ AlertDialog์™€ ํ•จ๊ป˜ ๊ธฐ๋ณธ ์œ ํ˜•์ธ Dialog ๋ฐ Popup์€ ๋ชจ๋‘ ๊ณตํ†ต ์ฝ”๋“œ์—์„œ ๋ณดํŽธ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ”Œ๋žซํผ๋ณ„ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” Android ๋ฐ iOS ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ ๋ชจ๋‘์— ์›ํ™œํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ UI์™€ ์ฝ˜ํ…์ธ ์˜ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์กฐ์ •์„ ์„ค๋ช…ํ•˜๋Š” WindowInsets API๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด API๊ฐ€ ๋…ธ์น˜ ๋’ค์˜ ๋ฐฐ๊ฒฝ ์ฝ˜ํ…์ธ ๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฐ ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Compose Multiplatform 1.5.0์€ ๊ธฐ๋ณธ Android UI ๊ตฌ์ถ•์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์ œ์ž‘๋œ Google์˜ ๋„๊ตฌ ํ‚คํŠธ์ธ Jetpack Compose 1.5๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Google์˜ Material Design 3 ๋ฒ„์ „ 1.1(๋ฐ”ํ…€ ์‹œํŠธ ๋ฐ ์‹œ๊ฐ„ ์„ ํƒ๊ธฐ์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ ๋ณด์ธ ๋ฐ”๋žŒ์งํ•œ ์˜คํ”ˆ ์†Œ์Šค ๋””์ž์ธ ์‹œ์Šคํ…œ)์˜ ์š”์†Œ๋ฅผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๊ด‘๋ฒ”์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ•์กฐํ•˜๋Š” Compose Multiplatform์€ Jetpack Compose UI ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธฐ๋Šฅ์„ Android๋ฅผ ๋„˜์–ด ๋ฐ์Šคํฌํ†ฑ, iOS, ์›น ๋„๋ฉ”์ธ๊นŒ์ง€ ํ™•์žฅํ•˜์—ฌ ๋ฌด๋Œ€์— ์˜ฌ๋ž์Šต๋‹ˆ๋‹ค. ๋ฐ์Šคํฌํ†ฑ ๋ฒ„์ „์€ ์•ˆ์ •์ ์ด์ง€๋งŒ iOS๋Š” ์•ŒํŒŒ ๋‹จ๊ณ„์— ์žˆ๊ณ  ์›น ๋ฐฐํฌ๋Š” ์‹คํ—˜ ๋‹จ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” GitHub์—์„œ Compose Multiplatform 1.5.0์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” iOS์— ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์˜ ๋ชจ์–‘๊ณผ ๋А๋‚Œ์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๊ณ  ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋ฉฐ ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์Šคํฌ๋กค์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. iOS์˜ ๋™์  ์œ ํ˜• ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ช…ํ™•์„ฑ์„ ๋†’์ด๊ณ  ๋” ๋งŽ์€ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…์ŠคํŠธ ํฌ๊ธฐ๋Š” ์ด ์‹œ์Šคํ…œ ์„ค์ •์— ๋”ฐ๋ผ ์•ฑ ์ „์ฒด์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

iOS ์—…๊ทธ๋ ˆ์ด๋“œ ์™ธ์—๋„ ํ”„๋ ˆ์ž„ ์†๋„๊ฐ€ ์ดˆ๋‹น ์ตœ๋Œ€ 120ํ”„๋ ˆ์ž„์œผ๋กœ ํ–ฅ์ƒ๋˜์–ด ์ด์ „ ์ œํ•œ์ธ ์ดˆ๋‹น 60ํ”„๋ ˆ์ž„์—์„œ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒ๋‹นํ•œ ์ฆ๊ฐ€๋Š” 120Hz ํ™”๋ฉด์„ ์‚ฌ์šฉํ•˜๋Š” ์žฅ์น˜์—์„œ ๋А๋ฆฐ UI ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ๊ฐœ๋ฐœ์ž์˜ ์—ฌ์ •์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ์„ ์˜ ์ผํ™˜์œผ๋กœ Compose Multiplatform 1.5.0์€ ๋ฐ์Šคํฌํ†ฑ์šฉ Compose ํ…Œ์ŠคํŠธ ์ง€์›์„ ์•ˆ์ •ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์žฌ์ •์˜ํ•˜์—ฌ ์ด์ „์˜ ์ œํ•œ ์‚ฌํ•ญ์„ ์—†์• ๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๊ด‘๋ฒ”์œ„ํ•œ UI ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ํฅ๋ฏธ๋กœ์šด ์—…๋ฐ์ดํŠธ๋Š” Swing ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด์˜ Compose ํŒจ๋„์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ๋ Œ๋”๋ง์„ ์‹คํ—˜์ ์œผ๋กœ ๋„์ž…ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํ˜์‹ ์ ์ธ ๊ธฐ๋Šฅ์€ ํŒจ๋„์ด ํ‘œ์‹œ๋˜๊ฑฐ๋‚˜ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋˜๊ฑฐ๋‚˜ ์ˆจ๊ฒจ์งˆ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ „ํ™˜ ๋ Œ๋”๋ง ๋ฌธ์ œ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.

no-code ๊ฐœ๋ฐœ ๊ด€๋ จ ๋‰ด์Šค์—์„œ๋Š” ์นญ์ฐฌํ• ๋งŒํ•œ no-code ๋„๊ตฌ์ธ AppMaster ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ๊ฐ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ํ”Œ๋žซํผ์€ ์›น, ๋ชจ๋ฐ”์ผ ๋ฐ ๋ฐฑ์—”๋“œ ์˜์—ญ ์ „๋ฐ˜์— ๊ฑธ์ณ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ’€ ์Šคํƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE)์„ ์ œ๊ณตํ•˜๋Š” ์‹ ์†ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ์ฃผ์š” ํ”Œ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started
JetBrains, iOS ์ตœ์ ํ™” ๋ฐ ๋ฒ”์šฉ API๋ฅผ ๊ฐ–์ถ˜ ํ–ฅ์ƒ๋œ Compose ๋‹ค์ค‘ ํ”Œ๋žซํผ 1.5.0 ์ถœ์‹œ | AppMaster