๐๏ธ ๊ฐ์
Mobile App Developer's Conference (MADC)๋ 2024๋ ์ ๊ฑด๊ตญ๋ ํ์ํ๊ด์์ ์ด๋ฆฐ ํ์ฌ๋ก, ์๋๋ก์ด๋, iOS, Flutter ํ๋ซํผ์ ์ค์ฌ์ผ๋ก ์ ์ธํ UI์ ์ค์์ฑ๊ณผ ํ์ฉ๋ฒ์ ๋ํด ๋ ผ์ํ์ต๋๋ค. ์ ์ฅ ์ ๋ชจ๋ฐ์ผ ํฐ์ผ์ QR ์ฝ๋๋ฅผ ์ค์บํ์ฌ ์ ์ฅํ์๊ณ , ์คํฐ์ปค, ๋ ธํธ๋ถ ๊ฑฐ์น๋, ๋ณผํ, ์๊ฒฝ๋ฆ์ด ๋ฑ์ ๊ธฐ๋ ํ์ด ์ ๊ณต๋์์ต๋๋ค. ๐
๐ ์ปจํผ๋ฐ์ค ์งํ ์์
๐ ์ธ์
์ด๋ฐ ๋ด์ฉ ๐ฃ๏ธ
์ด๋ฐ ์ธ์ ์์๋ ๊ฐ ํ๋ซํผ๋ณ๋ก ์ ์๋ Todo ์ฑ์ ํตํด ์ ์ธํ UI์ ๊ฐ๋ ์ ์ค๋ช ํ์ต๋๋ค. ์ด ์ธ์ ์์๋ ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ์์ ๋ค์ํ ๊ฒฝ๋ก์ ๊ฐ ํ๋ซํผ์ UI ์ค๊ณ ์์น์ ๋ค๋ฃจ์์ต๋๋ค.
ํน๋ณ ์ธ์ : ํ๋ซํผ๋ณ ๊ฐ๋ฐ์ ์ด์ฒญ ๐ฉ๐ป๐จ๐ป
๊ฐ ํ๋ซํผ์ ๊ฐ๋ฐ์๋ค์ด ๋ชจ์ฌ ์๋ก์ ์ฅ๋จ์ ์ ์ ๋จธ๋ฌ์คํ๊ฒ ์ฃผ๊ณ ๋ฐ๋ ์๊ฐ์ด ์์์ต๋๋ค. ์ด ์ธ์ ์ Android, iOS, Flutter, KMP ํ๋ซํผ์ ์ฐจ๋ณํ๋ ํน์ฑ์ ์ดํดํ๋ ๋ฐ ํฐ ๋์์ด ๋์์ต๋๋ค. ๋ํ, ๊ฐ ํ๋ซํผ์ ํต๊ณ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ ์๋ฃ๊ฐ ์ ๊ณต๋์ด ์ดํด๋๋ฅผ ๋์์ต๋๋ค.
๐ก์ ์ฉํ ํ
- ๊ณต์ ๋ฌธ์ ํ์ฉ: ๊ฐ ํ๋ซํผ์ ๊ณต์ ๋ฌธ์๋ฅผ ํตํด ์ต์ ์ ๋ณด๋ฅผ ์ป๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ํ๋ ์์ํฌ ์ดํด: ํ๋ ์์ํฌ๋ ๋๊ตฌ์ผ ๋ฟ์ด๋ฉฐ, ๋ณธ์ง์ ์ธ ๊ธฐ์ ์ดํด๊ฐ ํ์ํฉ๋๋ค.
- KMP ํ์ฉ: ์ฝํ๋ฆฐ ๋ฉํฐํ๋ซํผ(KMP)์ ํตํด ์๋๋ก์ด๋ ๋ฐ ๋ค์ํ ํ๋ซํผ์์์ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํจ์ ๊ฐ์กฐํ์ต๋๋ค.
โ๏ธ ์ ์ธํ UI ์ค๋ฌด ์ฌ์ฉ
Android - Compose ๐ฑ
- ํจ๊ณผ์ ์ธ ํ์ต ๋ฐฉ๋ฒ: ํน์ ๊ธฐ๋ฅ์ ์์ ํ Compose๋ก ๊ตฌํํด๋ณด๋ ๊ฒฝํ์ด ์ค์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ์ธํ UI์ ๋ ๋๋ง ๊ณผ์ ์ ์ดํดํ ์ ์์ต๋๋ค.
- Recomposition ๊ด๋ฆฌ: ์ํ ๊ด๋ฆฌ๊ฐ ์ค์ํ๋ฉฐ, ์๋ํ์ง ์์ Recomposition์ ๋ฐฉ์งํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ImmutableList์ ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ ๋๋ค.
SwiftUI ๐
- OS ๋ฒ์ ๋์: ๋ค์ํ OS ๋ฒ์ ๋ณ ์ฐจ์ด์ ๋์ํ๊ธฐ ์ํ ์ ๋ต์ด ํ์ํฉ๋๋ค.
- ๊ณต์ ๋ฌธ์ ํ์ฉ: SwiftUI์ ๊ณต์ ๋ฌธ์๋ฅผ ์ ํ์ฉํ๋ ๋ฅ๋ ฅ์ด ์ค์ํฉ๋๋ค.
Cross Platform ๊ฐ๋ฐ์ ์ฅ๋จ์ ๐
- ์ฅ์ : ์ค๋ณต ์ฝ๋ ๊ฐ์, ์ธ๋ ฅ ์ ๊ฐ, ๋ฒ์ ํต์ผ ์ฉ์ด.
- ๋จ์ : ๋ค์ดํฐ๋ธ ๊ฐ๋ฐ์ ๋นํด ๊ธฐ๋ฅ ์ ํ๊ณผ ์ต์ ํ์ ์ด๋ ค์, ์ฑ์ ๋ฌด๊ฑฐ์.
- ์ปค๋ฎค๋ํฐ: RN(App Center)์ Flutter(Shorebird)์ ๊ฐ์ ๋๊ตฌ๋ฅผ ํตํด ์ฝ๋ ์ ๋ฐ์ดํธ๊ฐ ์ฉ์ดํ๋ฉฐ, ํ๋ฐํ ์ปค๋ฎค๋ํฐ ์ง์์ด ์์ต๋๋ค.
โ Q&A ์ธ์
์ง๋ฌธ: ๋ค์ ์ทจ์ ์ค๋น๋ฅผ ํ๋ค๋ฉด? ๐ง๐
- ๋ค์ํ ๊ธฐ์ ์ ๋ฐ์ํ ํ๋ก์ ํธ ๊ฒฝํ์ด ์ค์ํฉ๋๋ค.
- ๊ธฐ๋ณธ๊ธฐ ๋ฐ ์ปดํจํฐ ๊ณผํ(CS) ๋ถ์ผ์ ๊ณต๋ถ๋ฅผ ๊ฐํํด์ผ ํฉ๋๋ค.
- ๊ธฐ์ ๋ธ๋ก๊ทธ ์ด์์ ํตํด ์ง์์ ์ผ๋ก ํ์ตํ ๋ด์ฉ์ ๊ธฐ๋กํด์ผ ํฉ๋๋ค.
- ๋ชฉํ ํ์ฌ์ ๋ํ ํ์คํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ๊ฐ๋ฐ ์ธ์ ์ธ ์คํฌ์ ๊ฐํํ๊ณ , ๋ชจ๋ ํ๋์ ์ง์์ฑ์ ์ํด ๊ธฐ๋กํ๋ ๋ฐฉ๋ฒ์ ๋ชจ์ํด์ผ ํฉ๋๋ค.
์ง๋ฌธ: ์ข์ ๋๋ฃ์ ์กฐ๊ฑด์? ๐ค
- ์ํํ ์ปค๋ฎค๋์ผ์ด์ ๋ฅ๋ ฅ.
- ๊ฐํ ์ค๋์ญ๊ณผ ์ฑ ์๊ฐ.
- ์ด๋ฆฐ ์ฌ๊ณ ๋ฐฉ์๊ณผ ํผ๋๋ฐฑ์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๋ฅ๋ ฅ.
- ๋ฐฐ์ธ ์ ์ด ๋ง์ ๋๋ฃ์์ ํ์ ์ด ์ค์ํฉ๋๋ค.
๐ ๋ง๋ฌด๋ฆฌ ๋ฉํธ
์ ์ธํ UI์ ๋์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ํ๋ซํผ ๊ฐ์ ์ง์ ์ฅ๋ฒฝ์ด ๋ฎ์์ก์ต๋๋ค.
์์ผ๋ก๋ ์ธ์ ๋ ์ง ๋ค๋ฅธ ํ๋ซํผ์ ์ฌ์ฉํ ์ ์๋ค๋ ์์ ๊ฐ์ ๊ฐ์ง๊ฒ ๋์์ต๋๋ค.
๐ ๊ฐ์ธ ํ๊ธฐ
์ด๋ฒ ์ปจํผ๋ฐ์ค๋ ์ฒ์ ์ฐธ์ฌํ ์๋ฆฌ์์ง๋ง, ๋ค์ํ ํ๋ซํผ ๊ฐ๋ฐ์๋ค์ ์๊ฐ๊ณผ ๊ฒฝํ์ ๋ค์ ์ ์์ด ๋งค์ฐ ์ ์ตํ ์๊ฐ์ด์์ต๋๋ค. ํฅํ์๋ ์ด์ ๊ฐ์ ๊ธฐํ๊ฐ ์๋ค๋ฉด ๊ผญ ์ฐธ์ฌํ๊ณ ์ถ์ต๋๋ค. ํนํ KMP์ ๋ํ ํฅ๋ฏธ๊ฐ ๋์ฑ ์๊ฒผ์ต๋๋ค. ๐