[flutter] ์ƒˆ๋กญ๊ฒŒ ๋ฐ”๋€ codelab (step6)
ยท
๐Ÿ’ง flutter
์ด์ œ Step 6 !!! ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์•ฑ์€, next ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ด์ „์— ๋‚˜์™”๋˜ ๋‹จ์–ด๋ฅผ ๋ณผ ์ˆ˜ ์—†์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๋‹จ๊ณ„์—์„œ๋Š” 'Like' ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ, ์›ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ๊ธฐ์–ตํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋ฒˆ ๋ชฉํ‘œ๋Š” ๋‹ค์Œ ํ™”๋ฉด๊ณผ ๊ฐ™๋‹ค. Add the business logic MyAppState ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด๋ณด์ž. lib/main.dart // ... class MyAppState extends ChangeNotifier { var current = WordPair.random(); void getNext() { current = WordPair.random(); notifyListeners(); } // ↓ Add the code below. var favorites = []; void t..
[flutter] ์ƒˆ๋กญ๊ฒŒ ๋ฐ”๋€ codelab (step5)
ยท
๐Ÿ’ง flutter
์ง€๋‚œ ์Šคํ…๊นŒ์ง€ ์ž˜ ๋”ฐ๋ผ์™”๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋‘ ๋Š๋ผ๋“ฏ, ํ˜„์žฌ๋Š” ํŒจ๋”ฉ๋„ ๋งž์ง€ ์•Š๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์ค‘์š”ํ•˜๊ฒŒ ๋ณด์—ฌ์ค˜์•ผ ํ•  ๋ฐ์ดํ„ฐ์ธ word๊ฐ€ ํ•œ ๋ˆˆ์— ๋“ค์–ด์˜ค์ง€ ์•Š๋Š”๋‹ค. ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋Š๋ผ๊ธฐ์— ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ, ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ์Šคํ…์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์‹œ๊ฐ์ ์ธ ์š”์†Œ(๋””์ž์ธ) ์— ์กฐ๊ธˆ ์‹ ๊ฒฝ์„ ์จ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ฝ”๋“œ๋žฉ์—์„œ ์ œ์‹œํ•œ ๋‹ค์Œ ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ์ด ์ด๋ฏธ์ง€์™€ ๊ฐ™๋‹ค. Extract a widget ํ˜„์žฌ ์šฐ๋ฆฌ ์ฝ”๋“œ์—์„œ๋Š” word pair๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค. Text(appState.current.asLowerCase) ์ด ์ฝ”๋“œ๋ฅผ ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜๊ฒŒ ๋ฐ”๊ฟ”๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ด ์ฝ”๋“œ๋ฅผ ๋ณ„๋„์˜ ์œ„์ ฏ์œผ๋กœ ๋นผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค. ์ด์ฒ˜๋Ÿผ UI์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ..
[flutter] ์ƒˆ๋กญ๊ฒŒ ๋ฐ”๋€ codelab (step1-step4)
ยท
๐Ÿ’ง flutter
1. Introduction ํ•™์Šตํ•  ๋‚ด์šฉ์€! โœ… flutter๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์˜ ๊ธฐ์ดˆ โœ… flutter์—์„œ layout ๋งŒ๋“ค๊ธฐ โœ… ์•ฑ ๋™์ž‘๊ณผ user interaction์˜ ์—ฐ๊ฒฐ (์ข‹์•„์š” ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋Š” ๊ฒƒ์ด ๊ทธ ์˜ˆ) โœ… flutter ์ฝ”๋“œ๋ฅผ ์ •๊ฐˆํ•˜๊ฒŒ ์งœ๋Š” ๊ฒƒ โœ… ๋ฐ˜์‘ํ˜• ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ (screen ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ๊ฒŒ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ์Œ !) โœ… ์•ฑ์˜ ์ผ๊ด€๋œ ํ˜•ํƒœ์™€ ๋Š๋‚Œ์„ ์ฃผ๋„๋ก 2. Set up your Flutter environment (flutter ํ™˜๊ฒฝ ์„ค์ •) ๐Ÿ“ Visual Studio Code ์‚ฌ์šฉ codelab ๊ณต์‹ ๋ฌธ์„œ์—์„œ vscode๋ฅผ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐํ•ด๋‘์—ˆ๋‹ค! ๊ณต์‹๋ฌธ์„œ ๋งํฌ โฌ‡๏ธ https://codelabs.developers.google.com/codelabs/flutter-..
์•„์ดํฐ ๋ฌด์„  ๋””๋ฒ„๊น…
ยท
๐Ÿ’ง flutter
์™ธ์ฃผ๋ฅผ ํ•˜๋‹ค ๋ณด๋‹ˆ ๋ฌด์„  ๋””๋ฒ„๊น…์„ ํ•ด์•ผํ•  ์ผ์ด ์ž์ฃผ ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ios 14์ธ๊ฐ€ 15๋ถ€ํ„ฐ๋Š” '$ flutter run'์œผ๋กœ๋Š” ๋ฌด์„ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. flutter run -d ๊ธฐ๊ธฐ๋ฒˆํ˜ธ --release ๊ธฐ๊ธฐ๋ฒˆํ˜ธ ์ž๋ฆฌ์— ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ธฐ๊ธฐ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํœด๋Œ€ํฐ์— ์•ฑ์ด ์„ค์น˜๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค๋ฉด, xcode์—์„œ ๊ธฐ๊ธฐ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋นŒ๋“œํ•œ ๋’ค ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด ๋œ๋‹ค. ์•ฑ์ด ์„ค์น˜๋˜๊ณ  ๋‚˜์„œ๋Š” ์„ ์„ ์ œ๊ฑฐํ•˜๊ณ ๋„ ๋ฌด์„ ์œผ๋กœ ์•ฑ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
[Flutter] flutter iphone ์—ฐ๋™ํ•˜๊ธฐ
ยท
๐Ÿ’ง flutter
flutter๋กœ ์•ฑ์„ ์—ด์‹ฌํžˆ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋‹ˆ iphone์— ์ง์ ‘ ์‹คํ–‰์‹œ์ผœ์„œ ๊ฐœ๋ฐœ ๊ณผ์ •์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.์‹ค์ œ ์•ฑ์—์„œ๋Š” padding์ด๋‚˜, ์ด๋ฏธ์ง€ ํฌ๊ธฐ ๋“ฑ์ด ์–ด์ƒ‰ํ•˜๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— iphone ์—ฐ๋™์ด ์‹œ๊ธ‰ํ–ˆ๋‹ค.ํ•˜์ง€๋งŒ flutter ์ดˆ๋ณด์ธ ๋‚ด๊ฒŒ xcode๋ฅผ ๋‹ค๋ฃจ๋Š” ์ผ์€ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค๐Ÿ˜ญ์—ฌ๋Ÿฌ reference๋“ค์„ ์ฐธ๊ณ ํ–ˆ๋Š”๋ฐ, ์˜คํžˆ๋ ค ๊ทธ๊ฒƒ์ด ๋‚ด๊ฒŒ๋Š” ๋…์ด ๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์‹คํŒจ ๋์— ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ–ˆ๋‹ค.๋‹ค์‹œ๋Š” ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•˜๋ฉฐ ๊ธฐ๋กํ•˜๋ ค ํ•œ๋‹ค.  1. iphone์„ ๋งฅ์— ์—ฐ๊ฒฐํ•œ๋‹ค.๋งฅ์— ์—ฐ๊ฒฐํ•˜๋ฉด, finder์—์„œ ์—ฐ๊ฒฐ๋œ iphone์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.ํ•ด๋‹น ๊ธฐ๊ธฐ๋ฅผ ์„ ํƒํ•˜๋ฉด, ์‹ ๋ขฐ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด ๋‚˜์˜ค๋Š”๋ฐ ์‹ ๋ขฐ๋ฅผ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค.     2. ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋”๋ฅผ ..