Flutter-App-login_dice
๐ฑ
์๋๋ก์ด๋ ์คํ๋์ค๋ฅผ ์ด์ฉํ ํ๋ฌํฐ ์ฃผ์ฌ์ ์ดํ ์ ์
๐ก
๋ก๊ทธ์ธ ๊ธฐ๋ฅ
controller
๋ฅผ ์ด์ฉํ์ฌTextField
์์ ์ ๋ ฅ๋ฐ์ ์ ๋ณด๋ฅผ ๋ฐ์์ค๊ธฐFocusScope.of(context).unfocus()
๋ฅผ ์ด์ฉํด ํ ์คํธ ํ๋ ์ธ๋ถ ์์ญ์ ํฐ์นํ ์ ํค๋ณด๋๊ฐ ์ฌ๋ผ์ง๋๋ก ์ฒ๋ฆฌ- if๋ฌธ์ ์ด์ฉํด ์ฌ์ฉ์๊ฐ ํ ์คํธ ํ๋์ id: dice / pw: 1234 ์ด์ธ์ ๊ฐ์ ์ ๋ ฅํ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ ํ ์ ์๋๋ก ์ฒ๋ฆฌ
- ์ฌ์ฉ์๊ฐ ์ง์ ๋ id, pw๊ฐ์ ์
๋ ฅํ ๊ฒฝ์ฐ dice ํ์ด์ง๋ก ๋์ด๊ฐ๋๋ก
Navigator
๋ฅผ ์ด์ฉํ ํ์ด์ง ์ฒ๋ฆฌ
Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) => Dice()));
๐ฒ
์ฃผ์ฌ์ ๊ตด๋ฆฌ๊ธฐ ๊ธฐ๋ฅ
Column
๊ณผRow
์์ ฏ์ ์ด์ฉํ์ฌ ์ฃผ์ฌ์ ์ด๋ฏธ์ง ๋ฐฐ์น- ์ผ์ชฝ ์ฃผ์ฌ์์ ์ค๋ฅธ์ชฝ ์ฃผ์ฌ์์ ๋๋ค๋ฒํธ๋ฅผ ๋ถ์ฌํ์ฌ ๋๋ค์ผ๋ก ์ฃผ์ฌ์ ์ด๋ฏธ์ง๊ฐ ๋ฐ๋๊ฒ ์ฒ๋ฆฌ
setState(() {
leftDice = Random().nextInt(6) + 1;
rightDice = Random().nextInt(6) + 1;
});
Image.asset('image/dice$leftDice.png')
Image.asset('image/dice$rightDice.png')
- ๋ถ์ฌ๋ ๋๋ค๋ฒํธ๋ฅผ ํ ์คํธ ๋ฉ์์ง๋ก ์ถ๋ ฅ์ฒ๋ฆฌ
โบ
์๋ก ํ์ตํ ๋ด์ฉ
TextField
์ ๋ด์ฉ์Controller
๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ตํ๋ค.Column
๊ณผRow
์์ ฏ์์์mainAxisAlignment:MainAxisAlignment.center
์ฌ์ฉ๋ฒ์ ๋ค์ ํ ๋ฒ ์ฒด๋ํ๋ค.- ์ด๋ฏธ์ง ํ์ผ๋ช
์ ๋ณ์์ฒ๋ฆฌํ์ฌ ์ํ๊ฐ์ ๋ณํ์ํค๋ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์๋ค. (
$
๊ธฐํธ ์ฌ์ฉ๋ฒ) pubspec.yaml
ํ์ผ์fluttertoast
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฑ๋กํ๋ฉด์ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ๊ณต์๋ฌธ์๋ฅผ ์ฐพ์๋ณด๋ฉฐ ํด๊ฒฐํ์๋ค.- ์ฐธ๊ณ ํ ๊ฐ์ข์ flutter ์์ ฏ ์ค ์ง์๋์ง ์๋ ์์ ฏ์ ์ญ์ ๊ณต์๋ฌธ์๋ฅผ ์ฐพ์๊ฐ๋ฉฐ ์์ ํ์ฌ ์ฝ๋๋ฅผ ์คํ์์ผฐ๋ค.
- ์ถ๊ฐ๋ก git ์ฌ์ฉ๋ฒ, mark down ์ฌ์ฉ๋ฒ๋ ์ตํ๊ฐ๋ ์ค
์ฝ๋ ์๋ฌธ ์ถ์ฒ
<์ฝ๋ฉ์
ฐํ> ์ฃผ์ฌ์ ๋ง๋ค๊ธฐ ๊ฐ์ข
https://www.youtube.com/playlist?list=PLQt_pzi-LLfoOpp3b-pnnLXgYpiFEftLB