ํ”Œ๋Ÿฌํ„ฐ

flutter๋กœ ๋นŒ๋“œํ•œ ํ”„๋กœ์ ํŠธ๋Š” react๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ ์ค‘์ด๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ flutter๋กœ ๋นŒ๋“œํ•˜๋Š” ์ž‘์—…์„ ๋‚ด๊ฐ€ ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์–ด๋Š์ •๋„ flutter์ฝ”๋“œ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์„œ cloneํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ ค๋Š”๋ฐ ๋ฒ„์ ผ์ด ๋งž์ง€ ์•Š์•„์„œ ์ œ๋Œ€๋กœ run์ด ๋˜์ง€ ์•Š๋Š”๊ฒƒ์ด๋‹ค! ํ”Œ๋Ÿฌํ„ฐ ๋ฒ„์ ผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ๐Ÿš€ ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•˜๋‹ค! ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค. flutter upgrade ๊ทธ์ „์— ์šฐ์„  version์„ ์ฒดํฌํ•ด๋ณด์ž flutter --version ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด version๊ณผ dart version๋„ ํ•จ๊ป˜ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ๋‹ค. upgrade ํ›„์—๋Š” ์ž‘์—…์ค‘์ธ ํ”„๋กœ์ ํŠธ๋กœ ๊ฐ€์„œ flutter -v pub get ์„ ํ•œ๋ฒˆ ํ•ด์ค˜์•ผ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ œ๋Œ€๋กœ ๋Œ์•„๊ฐ„๋‹ค!
dart๋ผ๋Š” ์–ธ์–ด์™€ ํ†ต์—ญ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ ๋“ฑ์ด ํ•„์š”ํ•˜๋‹ค method๋Š” ๋ฏน์„œ๊ธฐ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š”๋ฐ, ์–ด๋–ค ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์–‘ํ•œ ์•„์ดํ…œ์„ ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€์ˆ˜์˜ ํฌ๊ธฐ๋„ ํƒ€์ž…์— ๋งž๊ฒŒ ์„ ์–ธ๋˜์–ด์•ผํ•œ๋‹ค. string, boolen ๊ณผ ๊ฐ™์ด ๋ง์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด String์ด๋ผ๊ณ  ํƒ€์ž…์„ ์ •ํ•˜๊ณ  ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์ฃผ๋ฉด ์ปดํ“จํ„ฐ๊ฐ€ ๊ทธ์— ๋งž๋Š” ๊ณต๊ฐ„์„ ์ค€๋น„ํ•˜๊ณ  ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ด์ œ๋Š” ํด๋ž˜์Šค๋‹ค ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ธํ˜•์ด ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด, ๊ทธ ์ธํ˜•์„ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์ด ์กด์žฌํ•œ๋‹ค. ํŒ”, ๋จธ๋ฆฌ , ๋ชธํ†ต๊ณผ ๊ฐ™์ด ๋ง์ด๋‹ค. ์ €๋ ‡๊ฒŒ ๋ถ€๋ถ„์ ์œผ๋กœ ํŒŒํŠธ๋ณ„๋กœ ๋‚˜๋ˆˆ ๋ถ€๋ถ„์„ ํด๋ž˜์Šค๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ํฌ๊ณ  ๋ณต์žกํ•œ ๊ฒƒ์„ ๋งŒ๋“ค๋•Œ ๋‚˜๋ˆ ์„œ ๋งŒ๋“ค์–ด ์กฐ๋ฆฝ! ๊ฐ์ฒด(object) ๋Š” ๋ˆˆ์— ์‹ค์ฒด๊ฐ€ ๋ณด์ด๋“ ..
container๋ฅผ ์ƒ‰์œผ๋กœ ์ฑ„์šฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€๋กœ ๋„ฃ์–ด์•ผ ํ•  ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์ด๋•Œ, ๊ฐ„๋‹จํ•˜๊ฒŒ~ ๋‘ ๊ฐ€์ง€ ์ •๋„์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค! 1. src ์ด๋ฏธ์ง€ ์ฃผ์†Œ๋ฅผ ์“ธ ๋•Œ Container( width: 155.0.w, decoration: BoxDecoration( image: DecorationImage( image: NetworkImage( src ), fit: BoxFit.cover ), ), ) 2. image assets ์„ ์“ธ ๋•Œ Container( width: 155.0.w, decoration: BoxDecoration( image: DecorationImage( image: AssetImage('/assets/image.png'), fit: BoxFit.cover ), ), ) ์ด๋ฏธ์ง€ ์ฃผ์†Œ๋ฅผ ์–ด..
์•ฝ 1์—ฌ๋…„ ๊ฐ€๊นŒ์ด ํ”Œ๋Ÿฌํ„ฐ๋กœ ์•ฑ์„ ์ œ์ž‘ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์—ฌ์ „ํžˆ ์†Œ์†Œํ•œ ๊ฐœ๋…๋“ค์„ ์ œ๋Œ€๋กœ ์•Œ์ง€ ๋ชป ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. GetX๋กœ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ฉด์„œ stateless ์œ„์ ฏ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์‚ฌ์‹ค stateful์ด๋ผ๊ณ  getx๋ฅผ ๋ชป ์“ฐ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐœ๋…์ด ํ™•์‹คํ•˜์ง€ ์•Š๋‹ค๋ณด๋‹ˆ ๊ทธ์ € ์•ˆ ์“ฐ๊ฒŒ ๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒ. ๊ทธ๋ฆฌ๊ณ  ํ™”๋ฉด์•ˆ์—์„œ ํด๋ฆญ ์ด๋ฒคํŠธ๋งŒ์œผ๋กœ ์œ„์ ฏ์ด ๋ณ€๊ฒฝ๋˜์•ผํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๊ทธ๋ƒฅ stateless๋กœ ์จ์•ผํ•˜๋Š”๊ฑธ๊นŒ getx๋กœ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ๊ฑธ๊นŒ๋ผ๋Š” ์˜๋ฌธ์ด ๋“ค์—ˆ๊ณ , ์–ด๋–ค ๋ฐฉ๋ฒ•์ด ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€ ์•Œ์ˆ˜๊ฐ€ ์—†์–ด์„œ ๊ฐœ๋… ์ •๋ฆฌ๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ํ•ด๋ณด๋ ค๊ณ  ์ž‘์„ฑํ•ด๋ณธ๋‹ค. โœ… Stateless Widget ํ™”๋ฉด์ด ๋กœ๋“œ๋  ๋•Œ ํ•œ ๋ฒˆ๋งŒ ๊ทธ๋ ค์ง€๋Š” state๊ฐ€ ์—†๋Š” ์œ„์ ฏ์œผ๋กœ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ Data๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ์˜๋ฏธ ์ด๋ฒคํŠธ ..
โ™จ๏ธ ๋ฌธ์ œ์ƒํ™ฉ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€ ์ค‘์— ๊ธ€์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ์ตœ๊ทผ ๊ฒ€์ƒ‰์–ด๋ฅผ ๋“ฑ๋ก, ์‚ญ์ œ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ. Hive์— ์ €์žฅํ•ด๋‘๊ณ  ํ•ด๋‹น ์•„์ดํ…œ์„ ๊บผ๋‚ด์™€์„œ obx๋กœ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ฉด์„œ ์‚ญ์ œ, ๋“ฑ๋ก์„ ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๋‹จ์–ด๋ฅผ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐฐ์—ด์˜ ๋’ค์— ๋ถ™๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์•ž์— ๋ถ™๊ฒŒ ํ•˜๊ฑฐ๋‚˜, ๋’ค๋กœ ๋ถ™์ผ ๊ฑฐ๋ฉด reverse๋ฅผ ์‹œ์ผœ์„œ ๋ฐฐ์—ด์ด ๋“œ๋Ÿฌ๋‚˜๊ฒŒ ํ•ด์ค˜์•ผ ํ•˜๋Š” ์ƒํ™ฉ. ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ๊ดœ์ฐฎ์€๋ฐ, ๋ฌธ์ œ๋Š” ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‚ญ์ œ๋ฅผ ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค. ๋ฐฐ์—ด ์•ž์ชฝ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ–ˆ๋”๋‹ˆ ์ธ๋ฑ์Šค๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ธ์ง€ ํ•ด๋‹น ๋‹จ์–ด๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‹ค๋ฅธ ๋‹จ์–ด๊ฐ€ ์‚ฌ๋ผ์กŒ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ 10๊ฐœ ์ด์ƒ์€ ์ถœ๋ ฅ์‹œํ‚ค์ง€ ๋ง๋ผ๋Š” ์กฐ๊ฑด๊นŒ์ง€ ๋ถ™์—ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ์•ˆ โœ… ์ตœ๊ทผ๊ฒ€์ƒ‰์–ด ์—…๋ฐ์ดํŠธ ๋  ๋•Œ ๋ฐฐ์—ด ์•ž์ชฝ์œผ๋กœ ๋ณด๋‚ด๊ธฐ โžก๏ธ inser..
์›€์ง์ด๋Š” .gif ์ด๋ฏธ์ง€๋ง๊ณ  ์ •์ ์ธ .jpg ์ด๋ฏธ์ง€๋กœ ์›€์ง์ด๋Š” ๋กœ๋”ฉ ์ธ๋””์ผ€์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค! ํ•œ์ฐธ์„ ์ด๊ฒƒ์ €๊ฒƒ ์ฐพ์•„๋ดค์—ˆ๋Š”๋ฐ์š”. ํ”Œ๋Ÿฌํ„ฐ์˜ AnimatedSwitcher ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋งŒ๋“œ์‹ค ์ˆ˜ ์žˆ์–ด์š”. ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” ใ…  ์ €๋„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘‰๐Ÿป ๊ณต์‹ flutter - AnimatedSwitcher ํŽ˜์ด์ง€ ๊ฐ€๊ธฐ https://api.flutter.dev/flutter/widgets/AnimatedSwitcher-class.html AnimatedSwitcher class - widgets library - Dart API A widget that by default does a cross-fade between a new widget and the widget previously..
โšก๏ธ api๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ๋•Œ, ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ์‹œ์— ์š”๊ธดํ•˜๊ฒŒ ์“ฐ์ผ futurebuilder! ํ™”๋ฉด ์ด๋™์‹œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ๋„˜์–ด์˜ค๊ธฐ ์ „์— ๋ถ€๋ถ„์ ์œผ๋กœ ๋กœ๋”ฉ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ธ๋””์ผ€์ดํ„ฐ๋“ฑ์„ ๋„์šธ ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๊ฑธ ํ•˜๊ธฐ ์œ„ํ•ด์„œ FutureBuilder ๋ผ๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค FutureBuilder ๊ณต์‹๋ฌธ์„œ FutureBuilder class - widgets library - Dart API Widget that builds itself based on the latest snapshot of interaction with a Future. The future must have been obtained earlier, e.g. during State.initState, State.didUpdateWidget,..
โœ”๏ธ input์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋‹ค๊ฐ€ TextEditingController ๋ผ๋Š” ๊ฑธ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ต๋‹ˆ๋‹ค ๊ณต์‹๋ฌธ์„œ https://docs.flutter.dev/cookbook/forms/retrieve-input Retrieve the value of a text field How to retrieve text from a text field. docs.flutter.dev ์ด๊ฒŒ ์›น ํ”„๋ก ํŠธ ํ•˜๋Š” ๋ถ„๋“ค์„ ์ดํ•ดํ•˜์‹ค ๊ฒƒ ๊ฐ™์€๋ฐ, ํ•œ ํŽ˜์ด์ง€ ์•ˆ์— input์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ์ฒ˜์Œ์—๋Š” ์ผ์ผํžˆ ๋ณ€์ˆ˜๋ฅผ ๋‹ค ๋งŒ๋“ค์–ด์„œ setState๋ฅผ ๋งˆ์น˜ React์˜ useState ์ธ์–‘ ์ด์šฉํ•ด์„œ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๊ต‰์žฅํžˆ ์ง€์ €๋ถ„ํ•ด์ง€๊ณ  ๊ด€๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š์•„์š” ใ… ใ…  ๊ทธ๋ž˜์„œ ์š” ์•„์ด๊ฐ€ ํ•„์š”ํ•˜๋‹ต๋‹ˆ๋‹ค. 1. TextEd..
ํ˜„์žฌ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ page4์— ์žˆ๋Š” ๋ฒ„ํŠผ์„ ํ† ๊ธ€ํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์„ controller์—์„œ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ณ  statelessWidget์—์„œ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— dispose๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฃฝ์ผ์ˆ˜๊ฐ€ ์—†๋Š” ์ƒํ™ฉ์ด์˜€๋‹ค. ํ•ด๊ฒฐ์ฑ… 1. ๋ฒ„ํŠผ์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ผ์šฐํŒ…ํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ ํ•จ์ˆ˜๋„ ๊ฐ™์ด ์‹คํ–‰์‹œ์ผœ์ฃผ๊ธฐ ๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•ด๋ด๋„ ์•ˆ ์ข‹์€ ์ฝ”๋“œ์ด๊ณ (ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹) ํšŒ์‚ฌ ํ”Œ๋Ÿฌํ„ฐ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋„ ๋ฌผ์–ด๋ณด๋‹ˆ ์ถ”์ฒœํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ํ•ด๋‹น ํ•จ์ˆ˜๋Š” controller ํŒŒ์ผ์— ๋งŒ๋“ค์–ด์„œ ํด๋ฆญ ๋™์ž‘์ด ์ผ์–ด๋‚  ๋•Œ๋งˆ๋‹ค ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. 2. onClose() ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํŽ˜์ด์ง€๋ฅผ ๋– ๋‚˜๋ฉด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์‚ญ์ œ์‹œํ‚ค๊ธฐ ์ด ๋ฐฉ๋ฒ•์ด ์ œ์ผ ํ•ฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ•์ธ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•ด์ค˜๋„ ๋˜๊ณ  ์•ˆ๊ทธ๋ž˜๋„ ๋œ๋‹ค. ๋ฌธ์ œ..
[๋ฌธ์ œ๋ฐœ์ƒ] ์•„์•„์•„์•„์•„์•„์•„๋‹ˆ ์™œ ๋„๋Œ€์ฒด flutter์— listview ๋ฅผ ์“ฐ๋ฉด ์ด์ƒํ•œ ๊ณต๋ฐฑ์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์ธ๊ฐ€! ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™”๋ฉด ์œ„๋กœ ์˜ฌ๋ฆฌ๋ฉด ์ œ์ผ ์ฒ˜์Œ์— ์˜ฌ๋ผ์˜ค๋Š” ๋ฆฌ์ŠคํŠธ ์œ„๋กœ ๋งˆ์น˜ margin์„ ์ค€ ๊ฒƒ์ฒ˜๋Ÿผ ์—ฌ๋ฐฑ์ด ์ƒ๊ฒจ๋‚˜ ์žˆ๋‹ค. [ํ•ด๊ฒฐ์ฑ…] padding: const EdgeInsets.symmetric( horizontal: 20, vertical: 12), listview๋ฅผ ์จ์„œ ๋ฐ์ดํ„ฐ๋ฅผ map์œผ๋กœ ๋Œ๋ ค์„œ ํ™”๋ฉด์— ์˜ฌ๋ ค ์ค„ ๋•Œ ์š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค. horizontal, vertical ์ˆ˜์น˜๋ฅผ ๋ณ€ํ™”ํ•ด์„œ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ, ์ด๊ฒƒ๋„ ์ž˜ ์จ์•ผํ•œ๋‹ค. ๋ญ”๊ฐ€ ... ๋ฌด์กฐ๊ฑด 0์œผ๋กœ ๋„ฃ์–ด๋„ ์ด์ƒํ•˜๋‹ค. ๋ญ”๊ฐ€ ์ด๊ฒŒ ์™„์ „ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์•„ ๋‹ต๋‹ต~~ํ•˜๋‹ค. โœ” ์ฐธ๊ณ ์ž๋ฃŒ https://velog.io/@tygerhwang..
CustomSwitch button์„ ๋”ํ–ˆ๋Š”๋ฐ, ๊ฐ‘์ž๊ธฐ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค. Error: Cannot run with sound null safety ์•Œ์•„๋ณธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•˜๋‹ค. ๋ฉ”๋‰ด์ฐฝ์—์„œ Run (์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ๊ธฐ์ค€) > Edit Configurations ๊ทธ๋ฆฌ๊ณ  --no-sound-null-safety ๋ผ๋Š” ๋ง์„ Additional run args:์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐ~ ์•ˆ๋Œ์•„๊ฐ€๋˜ ์ฝ”๋“œ๊ฐ€ ์ž˜ ๋Œ์•„๊ฐ„๋‹ค!!!
โ–ช flutter / firebase ์—ฐ๋™ํ•˜๊ธฐ ํ”Œ๋Ÿฌํ„ฐ์™€ firebase๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์‰ฌ์šด ํŽธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ „ ์˜ค๋ž˜ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค ๐Ÿ˜‘ firebase ์ฝ˜์†”์—์„œ ์•ˆ๋“œ๋กœ์ดํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  flutter ํŒŒ์ผ๋กœ ๋Œ์•„์™€์„œ app ํด๋”์†์˜ build.gradle ํŒŒ์ผ์— ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. firebase๋ฌธ์ œ๊ฐ€ ์ƒ์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ ค์šธ๊ฒŒ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํŒŒ์ผ๋“ค ์—…๋ฐ์ดํŠธ๋ฅผ ๋๋‚ด๊ณ  ์˜ค๋ฅ˜๋ฉ”์„ธ์ง€๋ฅผ ๋งŒ๋‚ฌ๋Š”๋ฐ, flutter sdk๋ฒ„์ ผ๊ณผ firebase ๋ฒ„์ ผ์ด ์ƒํ˜ธ๊ฐ€ ์•ˆ ๋˜์„œ์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด๋• android > app > build.gradle ํŒŒ์ผ์— midSdkVersion๊ณผ targetSdkVersion์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ˆซ์ž๋งŒ ๋”ํ•ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ ์ „ ๊ทธ๊ฑธ ๋ชจ๋ฅด๊ณ  ์—„์ฒญ ํ•ด๋งธ..
๋ฐ(Ming) ๐Ÿฐ
'ํ”Œ๋Ÿฌํ„ฐ' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก