Flutter ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด GetX์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๋ง์ด ๋ค์ผ์ จ์ ํ ๋ฐ์. GetX๊ฐ ๋ฌด์์ธ์ง ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ํ๋ ๊ฒ ์ธ์ง ์ค๋ ํฌ์คํ ์์ ๊ฐ์ด ์์๋ด ์๋ค.
์ฐธ๊ณ ์๋ฃ
์ด๋ฒ ๊ธ์์ ์์๋ณผ ๋ด์ฉ
- GetX๋?
- GetX์ ํต์ฌ 3๊ฐ์ง
- GetX์ ๋ถ๊ฐ๊ธฐ๋ฅ
- GetX์ ๊ฐ๋จํ ์์
GetX ๋?
GetX์ ๊ณต์๋ฌธ์ ์ค๋ช ์ ๋ฐ๋ฅด๋ฉด, GetX๋ ๊ณ ์ฑ๋ฅ ์ํ ๊ด๋ฆฌ, ์ง๋ฅํ ์ข ์์ฑ ์ฃผ์ ๋ฐ ๊ฒฝ๋ก ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํด์ฃผ๋ ์ด๊ฒฝ๋์ ๊ฐ๋ ฅํ ์๋ฃจ์ ์ด๋ผ๊ณ ํฉ๋๋ค. GetX๋ ์ด๊ฒฝ๋์ด์ง๋ง ๊ฐ๋ ฅํ ์๋ฃจ์ ์ผ๋ก ์ต๊ณ ์ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋กํ๊ณ ์์ต๋๋ค. ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด GetX์๋ ์ธ ๊ฐ์ง ๊ธฐ๋ณธ ์์น์ด ์์ต๋๋ค.
1. ์ฑ๋ฅ
GetX๋ ์ฑ๋ฅ๊ณผ ๋ฆฌ์์ค ์ต์ ์๋น์ ์ค์ ์ ๋ก๋๋ค. GetX๋ Streams ๋๋ ChangeNotifier๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
2. ์์ฐ์ฑ
GetX๋ ์ฝ๊ณ ์ฆ๊ฑฐ์ด ๊ตฌ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค. ๋ฌด์์ ํ๊ณ ์ถ๋ GetX๋ฅผ ์ฌ์ฉํ๋ฉด ํญ์ ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ฐ๋ฐ ์๊ฐ์ ์ ์ฝํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๊ณตํ ์ ์๋ ์ต๋ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด์ ๋ํ ์์๋ก GetX์์๋ dispose์์ ์ปจํธ๋กค๋ฌ๋ฅผ ํด์ ํ ํ์๊ฐ ์์ต๋๋ค. GetX๋ ๋ฆฌ์์ค๊ฐ ์ฌ์ฉ๋์ง ์์๋ ๋ฉ๋ชจ๋ฆฌ์์ ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค. ๋ง์ฝ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ๊ณ ์ถ๋ค๋ฉด ๋ฐ๋ก "permanent : true" ์์ฑ์ ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
3. ์กฐ์ง
GetX๋ฅผ ์ฌ์ฉํ๋ฉด View, Presentation Logic, Business Logic, Dependency Injection, Navigation์ ์์ ํ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค. GetX๋ ๊ฒฝ๋ก๋ฅผ ํ์ํ๊ธฐ ์ํด BuildContext๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ ฏ ํธ๋ฆฌ์ ์์กดํ์ง ์์ ์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ์ด์ฉํ๋ฉด Presentation Logic๊ณผ Business Logic์ ์์ ํ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ ๊ธฐ์กด์ ์๋ BLoC๊ณผ ๋น๊ต๋๋ ๋ถ๋ถ์ ๋๋ค.
GetX์ ํต์ฌ 3๊ฐ์ง
1. ์ํ ๊ด๋ฆฌ
GetX์๋ ๋ ๊ฐ์ง์ ์ํ๊ด๋ฆฌ์๊ฐ ์กด์ฌํฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ GetBuilder ํจ์์ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฐ๋จํ ์ํ ๊ด๋ฆฌ์์ด๊ณ ๋ค๋ฅธ ํ๋๋ ๋ฐ์ํ ์ํ๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ๋๋ GetX, ObX ์ ๋๋ค.
2. ๊ฒฝ๋ก ๊ด๋ฆฌ
ํ๋ฉด๊ฐ์ ๊ฒฝ๋ก ํ์, SnackBar, Dialog๋ฑ๊ณผ ๊ด๋ จ๋์ด Context๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ฒฝ๋ก๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
3. ์์กด์ฑ ๊ด๋ฆฌ
GetX๋ ๊ฐ๋ ฅํ ์์กด์ฑ ๊ด๋ฆฌ ์๋ฃจ์ ์ ๊ฐ๊ณ ์์ต๋๋ค. ๋จ ํ์ค์ ์ฝ๋๋ก Inherited Widget์ด๋ Context๋ฅผ ์ฌ์ฉํ์ง ์๊ณ View์์ ์์กด์ฑ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
GetX์ ๋ถ๊ฐ๊ธฐ๋ฅ
GetX์์๋ ์์ ๋ค์ด ๋ชฉํํ "์ด๊ฒฝ๋์ด์ง๋ง ๊ฐ๋ ฅํ ์๋ฃจ์ ์ผ๋ก ์ต๊ณ ์ ๊ฐ๋ฐ ๊ฒฝํ ์ ๊ณต"์ ๋ฌ์ฑํ๊ธฐ ์ํด ๋ค์ํ ๋ถ๊ฐ๊ฐ์น๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋ ์์ Boillerplate๋ฅผ ๊ฐ์์ํฌ ์ ์์ต๋๋ค.
- ๊ตญ์ ํ: Locale, Translations๊ณผ ๊ด๋ จ๋ ์์ ์ GetX๋ฅผ ํตํด ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ์ ํจ์ฑ ๊ฒ์ฌ: ์ด๋ฉ์ผ, ๋น๋ฐ๋ฒํธ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ GetX๋ฅผ ํตํด ํ ์ ์์ต๋๋ค.
- Stroage: Key-Value ํํ์ ๋ฉ๋ชจ๋ฆฌ ๋ฐฑ์ ์ ์ ๊ณตํฉ๋๋ค.
- Themes: Dark, Light์ ํ ๋ง ์ ํ์ด ๊ฐ๋จํด์ง๋๋ค.
- ๋ฐ์ํ ํ๋ฉด: ๋ฐ์คํฌํฑ, ํ๋ธ๋ฆฟ, ํด๋ํฐ, ์๊ณ์ ๊ฐ๊ฐ ๋ค๋ฅธ ํ๋ฉด์ ํจ๊ณผ์ ์ผ๋ก ๋ฐ์ํ ํ๋ฉด์ ์ ๊ณตํ ์ ์์ต๋๋ค.
GetX์ ๊ฐ๋จํ ์์
ํ์ฌ ์ ๋ Github ์ปค๋ฐ์ ํ์ธํ ์ ์๊ณ 1์ผ 1์ปค๋ฐ์ ๋ ์ดํ๋ ์ฑ์ ์ฌ๋ฏธ์ผ์ GetX๋ก ๋น๋ํด๋ณด๊ณ ์์ต๋๋ค. ํ์ง๋ง ์์ง ์์ฑ๋์ง ์์๊ธฐ ๋๋ฌธ์ GetX๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ํ์ ํ ์ ์๋, ์ข์ ์์ ๋ค์ ์ฌ๋ฌ๋ถ๋ค์๊ฒ ๊ณต์ ํด๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ง๋ฌด๋ฆฌํ๋ฉด์
๊ธฐ์กด์ BLoC ์ ์ฌ์ฉํด๊ณ ์์๋๋ฐ GetX๋ฅผ ์ ํด๋ณด๊ณ ๋๋ ๋ง์์ด ์๋นํ ํ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ํ์ฌ ๊ฐ๋จํ ํ ์ด ํ๋ก์ ํธ๋ฅผ ์งํํด๋ณด๊ณ ์์ผ๋ฉฐ ์ฌ์ฉํด๋ณด๋ฉด์ GetX์ ๋งค๋ ฅ์ ๋น ์ง๊ณ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ๋ค๋ ๊ธฐํ๊ฐ ๋์ ๋ค๋ฉด GetX๋ฅผ ํตํด ๋น์ง๋์ค ๋ก์ง ๋ถ๋ฆฌ, ์์กด์ฑ ๊ด๋ฆฌ, ๋ฃจํธ ๊ด๋ฆฌ๋ฅผ ํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ถ์กฑํ ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
'Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Flutter Widget #1 : ListView ์ดํด์ ์ฌ์ฉ๋ฐฉ๋ฒ (0) | 2022.03.05 |
---|---|
Flutter ๊ธฐ์ด - 2ํ : ํ๋ฉด์ ๊ทธ๋ ค์ง๋ ๋ชจ๋ ๊ฒ์ ์์ ฏ์ด๋ค (0) | 2022.02.12 |
Flutter BLoC ๊ฟํ - 1ํ : BlocProvider ๋ฐฑ๋ฐฐ ์ฌ์ฉํ๊ธฐ (0) | 2022.01.21 |
Flutter ๊ธฐ์ด - 1ํ : Flutter ์ ๊ณผ๊ฑฐ, ํ์ฌ, ๋ฏธ๋ (0) | 2021.12.17 |
Flutter Web 1ํ : ๊ตฌ๊ธ ์ฝ๋๋ฉ ๊ตฌํ (0) | 2021.07.20 |