flutter

Flutter Null Safety๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์
Flutter 2.0 ์ถ์ ์ดํ null safety ๊ฐ ์ ์ ๋ฐฐํฌ๊ฐ ๋์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๊ทธ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ด๋ฒ ๊ธ์ ์๋์ ์๋ฃ๋ค์ ๋ฐํ์ผ๋ก ์์ฑ๋์ต๋๋ค. Why null safety (youtube) Null safety (flutter official docs) ์ด ๊ธ์์ ์์๋ณผ ๋ด์ฉ Null safety ๋ ๋ฌด์์ธ๊ฐ? Null safety ๊ท์น Null safety ๋ ๋ฌด์์ธ๊ฐ? NullException ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฐ์ฅ ์ซ์ดํ๋ Exception ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ํ ๊ตฌ๊ฐ์ด Null ์ธ ๊ฒฝ์ฐ ๋ฐ์๋๋๋ฐ์. ํ๋ก๊ทธ๋จ์ ๊ท๋ชจ๊ฐ ํฌ๋ฉด ํด์๋ก, ๊ทธ๋ฆฌ๊ณ ๋ณต์กํ๋ฉด ๋ณต์กํ ์๋ก null ์ ์ฐพ๊ธฐ๋ ์๋นํ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ null์ ํ๋ก๊ทธ๋๋ฐ ์์ด์ ์ ์ฉํ์ง๋ง..
Flutter์์ Webview(์น๋ทฐ) ์ฌ์ฉํ๊ธฐ
Flutter์์ Webview๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ๊ธ์ ๋๋ค. ์ด ๊ธ์ ๋จ์ํ webview ๊ตฌํ์ ๋ชฉํ๋ก ํฉ๋๋ค. hybrid composition์ ๋ด์ฉ์ ๋ด์ง ์์์์ ๋ฏธ๋ฆฌ ์๋ ค๋๋ฆฝ๋๋ค. ์ด ๊ธ์ ์๋์ example๊ณผ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์์ต๋๋ค. webview_flutter example webview_flutter api document ์ด ๊ธ์์ ์์๋ณผ ๋ด์ฉ Webview ์ฌ์ฉ๋ฒ (webview_flutter) http ์ฐ๊ฒฐ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ธฐ Webview ์ฌ์ฉ๋ฒ (webview_flutter) pubspec.yaml ์์กด์ฑ ์ถ๊ฐ dependencies: flutter: sdk: flutter webview_flutter: ^2.0.9 // ์ต์ ๋ฒ์ ๊ถ์ฅ (https://pub.dev/p..
Flutter / multi_image_picker Asset์ Image๋ก ๋ณด์ด๊ฒ ํ๊ธฐ
Flutter์์ ์ฌ์ง์ ๋ค๋ฃฐ๋ ๋ณดํต image_picker, multi_image_picker๋ฅผ ๋ง์ด ํ์ฉํ์ค ํ ๋ฐ์. image_picker๋ ๊ทธ๋ฅ File์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์ฝ์ต๋๋ค. ํ์ง๋ง multi_image_picker๋ Asset์ผ๋ก ๋ฐํํด์ ๋ค๋ฃจ๊ธฐ ๊น๋ค๋ก์ด ๋ถ๋ถ์ด ์์ต๋๋ค. ํนํ Asset์ ์ด๋ฏธ์ง๋ก ๋ณด์ฌ์ค์ผ ํ ๋ AssetThumb๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ง์ด ๊นจ์ ธ์ ๋์ค๊ธฐ ๋๋ฌธ์ ๊ณค๋ํ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ด๋ Image.memory()๋ฅผ ํ์ฉํ์ฌ ํ๋ฆฌํฐ ๋์ ์ฌ์ง์ ๋ณด์ฌ์ค ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด์ ๋งํด๋ณด๊ฒ ์ต๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋จํฉ๋๋ค. 1. initState์์ Asset.file.getByteData(quality : x)๋ฅผ await์ผ๋ก ํธ์ถํด์ ByteData๋ฅผ ์ ์ฅํ๋ค. 2. setSta..
Flutter/ popUntil ์ ํ ๋ ๊ฒ์ํ๋ฉด์ด ๋ฌ๋ค๋ฉด?
์ด๋ฒ๊ธ์ ๊ต์ฅํ ์งง๊ณ ๊ฐ๋จํฉ๋๋ค. ์๋๋ฉด ์ ๊ฐ ํ ๋ฉ์ฒญํ ์ค์๋ฅผ ์ ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. popUntil์ ํ ๋๋ ๋ฐ๋์ ์ค์ ํด์ผ ํ๋ ๊ฒ์ด ์์ต๋๋ค. ๋ฐ๋ก routeSettings ์ ๋๋ค. ์ด๊ฒ์ ์ค์ ํ์ง ์์ผ๋ฉด ModalRoute.withName()์ ์๋ง ๋ฃ์ด๋ ๊ฒ์ํ๋ฉด์ด ๋น๋๋ค. ๊ฐ๋จํ ์๊ฐํ๋ฉด ํด๋น ์ด๋ฆ์ด ํฉ๊ฒฉ๋ช ๋จ์ ์๋๋ฐ ์๋ค๊ณ ๋ฐ๋ฐ ์ฐ๊ธฐ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋ค์ ์์์ฝ๋๋ฅผ ๋ณด์๋ฉด ์ดํด๊ฐ ์ฌ์ฐ์ค ๊ฒ ์ ๋๋ค. // popUntil์ด ์๋๋ ๊ฒฝ์ฐ class MyRouter { static Route generateRoute(RouteSettings settings) { switch (settings.name) { case "SPLASH_SCREEN": return MaterialPageRoute( ..