์ค์ ๋ก ์ฌ์ฉ๋์ง ์์ ๋ฐ์ดํฐ์ด๋ฉฐ, ๋ฐ์ดํฐ ๊ฐ์ ์ ๊ฐ์ ธ์ค๋์ง ํ ์คํธ์ฉ์ผ๋ก ์ฌ์ฉ.
<json ๊ฒฐ๊ณผ ๊ฐ>String jsonString = '''{"name" : "jyk","age" : 31,}''';
bloc ํจํด ์์ ๋ฅผ ๋ณด๋ค๋ณด๋ abstract class ๊ฐ ์์๋ค.ํ์์ด๋ ํ๊ต๋ฅผ ํตํด์ ๋ฐฐ์ ์ถ์ ํด๋์ค๋ผ๋ ๊ฒ์ ๋ํด ์ค๋ช ์ ๋ค์๋ค. ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์์ ๋ abstract class๋ฅผ ์จ๋ณธ ์ ์ด ์๋ค.๊ทธ๋ฌ๋ค๋ณด๋ ์์ ํ ์๋ฟ์ง ์์ ์ํ์ฌ์ ๊ธ์ ์งง๊ฒ ๋จ๊ธด๋ค.์ํ
๋๋ pub.dev ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ทธ๋ฅ ํธํ๊ฒ ์ฌ์ฉํ๋ฉด ๋๋ ์ค ์์๋ค ํ์ง๋ง ํฐ ์คํด์๋ค. ํ์ปด๋งํฌ๊ฐ ์คํ์์ค๋ฅผ ์ ๋๋ก ํ์ธ์ํ๊ณ ์ฌ์ฉํ๋ค 23์ต์ ์ง๊ธํ๊ณ ํฉ์๋ฅผ ๋ณด์๋ค. ๊ธฐ์ฌ: https://www.nepla.net/post/%ED%95%9C%EC%BB%B
๋์์ธ ํจํด์ด๋ ์ฉ์ด๋ฅผ IT ๊ฐ๋ฐํ๋ฉด์ ์๋ ์์ด ๋ค์๊ณ ์ฑ ๋ ์๋ค.๋์์ธ ํจํด์ด๋ผ๋ ์ด์ผ๊ธฐ๋ฅผ ๋ฃ๊ณ ์ฑ ์ ๊ตฌ๋งคํด์ ๋ณด๋ ์ฌ์ฉํ๊ธฐ ๊ฑฐ์ฐฝํ๊ณ ์ด๋ ต๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.๊ทธ๋์ ๊ผญ ํ์ํ๊ฐ? ๊ทธ๋ฆฌ๊ณ ํ์ํ๋ค๋ฉด ์ ์ฌ์ฉํด์ผํ ๊น? ๋ผ๋ ์๋ฌธ์ ์ด ๋ค์ด ์งง์ง๋ง ๊ธฐ๋ก์ผ๋ก ๋จ๊ธฐ๋ ค ํ๋ค.
RichText ์์ ฏ์ ์ฌ๋ฌ ๊ฐ์ TextSpan ์์ ฏ์ ํฌํจํ ์ ์์ผ๋ฏ๋ก ๊ฐ๊ฐ ๋ค๋ฅธ ์คํ์ผ๊ณผ ํ ์คํธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.Text.rich()๋ RichText ์์ ฏ๊ณผ ๋น์ทํ์ง๋ง ๋ ๊ฐ๋จํ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
Drawer๋ฅผ ์ผ์ชฝ์ผ๋ก ์์นDrawer๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์์น
ํด๋์ค์ ์ธ์คํด์ค๋ ์ค์ง ํ๋์์ ๋ณด์ฅํ๋ฉฐ ์ด ์ธ์คํด์ค์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ํจํดํด๋์ค์์ ๋ง๋ค ์ ์๋ ์ธ์คํด์ค๊ฐ ์ค์ง ํ๋์ด๊ณ , ์ด์ ๋ํ ์ ๊ทผ์ ์ด๋์์๋ ์ง ํ๋๋ก๋ง ํต์ผํ์ฌ ์ ๊ณต์ด๋ค ํด๋์ค ๊ฒฝ์ฐ์๋ ์ ํํ ํ๋์ ์ธ์คํด์ค๋ง์ ๊ฐ๋๋ก ํ๋ ๊ฒ์ด ์ค์ํ
๋ณต์ ํด์ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ํจํดํด๋์ค์ ์ธ์คํด์ค๊ฐ ์์ฑ๊ณผ์ ์ด ๋ณต์กํ๊ฑฐ๋ ์ฌ๋ฌ ์กฐํฉ์ ์ํด ์์ฑ๋์ด์ผ ํ๋๊ฒฝ์ฐ ํ๋์ ๊ฒฌ๋ณธ(prototype)์ ๋ง๋ค์ด์ด๊ธฐํํด๋๊ณ ์ด๋ฅผ ๋ณต์ ํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ๋ณต์ ํ๋๋ฐ ํ์ํจํ๋กํ ํ์ ์์ฑ๊ฐ์ ํ์ฉํ์ฌ ๋ค์ํ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์
๊ฐ๋ฐ์๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณด๋ค ํจ์จ์ ์ด๊ณ ํจ๊ณผ์ ์ผ๋ก ๊ตฌ์ถํ ์ ์๋๋ก ํ๋ ๋๊ตฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๊ท์น์ ์ ๊ณตํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ซํผ์ด๋ค.์ํํธ์จ์ด ์ฝ๋ ๋ชจ์
"Google"์์ ๋ง๋ ์คํ ์์ค ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ ์์ํฌ์ด๋ค.ํ๋์ ์ฝ๋๋ก iOS, Android(ํฌ๋ก์ค ํ๋ซํผ), Macos, Window, Web ๋ชจ๋ ์๋ ๊ฐ๋ฅํ์ฌ ์๊ฐ์ ์ ์ฝํ๋ค.๋น ๋ฅธ ๊ฐ๋ฐ ๊ฐ๋ฅ: Flutter๋ ๊ฐ๋ฐ์๊ฐ ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์
๋น๋๊ธฐ Builder๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์
์ ๊ทธ๋ฆผ ์ฒ๋ผ Text์ outline ์ ํ๋ ๋ฒ์ ์์๋ณด์
๋ฐ์ ์ฒ๋ผ TextField ์์ ์ฝ๋ ์ ์ฉ ์ ํด๊ฒฐ
์ ์ด๋ฏธ์ง์ "์๋ฒ ํค"๋ฅผ ๋ฐ์ ์์ ์ ์ฌ์ฉํ๋ค.token ๊ฐ์ ๋ฐ์ ์ฝ๋๋ฅผ ํตํด ๊ตฌํด์ ์์์ ์ผ๋ก ์ฌ์ฉํ๋ค.(๊ธฐ๊ธฐ๋ณ๋ก ํ ํฐ์ด ๋ค๋ฆ)
ํญ๋ชฉ์ ์คํฌ๋กค ๊ฐ๋ฅํ ๋ชฉ๋ก์ ๋ง๋ค๊ณ index๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชฉ๋ก ํญ๋ชฉ์ ์ ํํ ์์น ์ง์ ์ ํ์ฉํ๋ Flutter์ ์์ ฏListView.builder ์์ ฏ๊ณผ ์ ์ฌ์คํฌ๋กคํ์ฌ ๋ชฉ๋ก ๋งจ ์์ ๋ฐฐ์นํ ์ ์๋ ํน์ index์ ํญ๋ชฉ์ด ์๋ ๋ชฉ๋ก์ ์์ฑํ ์๋ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ํ์ ํธ๋ฆฌ ๋ด์์ BuildContext๋ฅผ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๊ฐ๋จํ ๋์ฐ๋ฏธ ์์ ฏ์ด๋ค.Builder ํจ์๋ฅผ ํตํด ์์ ์์ ฏ์ ์ปจํ ์คํธ๊ฐ ์๋ ์์ ฏ ํธ๋ฆฌ์ ํน์ ๋ถ๋ถ context๋ก ํ์ ํธ๋ฆฌ๋ฅผ ๋น๋ํ ์ ์๋ค.
๊ธฐ๊ธฐ์ ํ๋ฉด ๋๋น๋ ๋์ด๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋, ํ๋ฉด ๋ฐฉํฅ ์ ๋ณด(๊ฐ๋ก/์ธ๋ก)๋ฅผ ์ป์ ๋ ์ฃผ๋ก ์ด๋ค.๋ฐ์ํ ์ฌ์ฉ
Future(๋น๋๊ธฐ) ์์ ์ํธ ์์ฉ์ ๋ํ ์ต์ ์ค๋ ์ท์ ๊ธฐ๋ฐ์ผ๋ก ์์ฒด์ ์ผ๋ก ๋น๋๋๋ ์์ ฏFutureBuilder
์๊ฐ์๊ฐ ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐFuture์ Stream์ ๊ฒฐ๊ณผ