1. ๋ค์ด๊ฐ๊ธฐ์ ์์Provider๋ InheritedWidget์ ๋ณด๋ค ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ์ํ๊ด๋ฆฌ ํจํค์ง์
๋๋ค.1. ์์ฑํด์ผ ํ๋ ์ฝ๋ ๊ฐ์2. ์ํ๋ ์์ ฏ๋ง ์ ํ์ ์ผ๋ก ๊ฐฑ์ ๊ฐ๋ฅ3. Lazy loading ์ง์4. ์ํ๋ฅผ ๋ณ๋ ํด๋์ค๋ก ๋ถ๋ฆฌํ๋ฏ๋ก StatefulWidget ๋ณด๋ค ์ ์ง ๊ด๋ฆฌ ์ฉ์ด- ๋จ์ 1. Provider๊ฐ ๋ถ๋ชจ ์์ ฏ์ผ๋ก ๋ฑ๋ก๋์ด ์์ง ์์ ๊ฒฝ์ฐ, ์์ ์์ ฏ์์ ์ ๊ทผ์ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์2. ์์ ฏ ํธ๋ฆฌ์์ ๋ฑ๋ก์ ์์กด์ฑ ์์ ์ค์ 2. Provider ์ฌ์ฉํด๋ณด๊ธฐ 2-1. Provider ์ฌ์ฉ๋ฒ ๊ฐ๋ต ์ค๋ช
Provider๋ ChangeNotifier๋ฅผ ์์๋ฐ์์, ๋ณ๊ฒฝ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ์ notifyListener()๋ฅผ ํธ์ถํ์ฌ ์์ ์์ ฏ๋ค์ ๊ฐฑ..
์ ์ฒด ๊ธ
Hello World๋ค์ด๊ฐ๊ธฐ ์์ ๊ทธ๋์ Flutter๋ก ๊ฐ๋ฐ์ ํด์ค๋ฉด์ Future๋ฅผ ๋ง์ด ์ฌ์ฉํด๋ณด์๋๋ฐ, ์๊ฐ๋ณด๋ค ์ด๋ป๊ฒ ๋์ํ๋์ง ์๊ตฌ์ฌ์ ๊ฐ์ง๋ฉด์ ์ฝ๋ฉํ์ง ์์๋ค. ๋จ์ํ๊ฒ await๋ฅผ ์ฐ๋ฉด ๊ธฐ๋ค๋ฆฌ๊ณ Future๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ๋จ ์๋ ๊ธฐ๋ค๋ฆฌ๋ฉด ๋์ค์ ๊ฐ์ ์ฃผ๋ ์๊ตฌ๋ ๋ผ๊ณ ๋ง์ฐํ๊ฒ ์๊ฐํ๋ค. ์ด๋ฒ ๊ธฐํ์ ์์ธํ ์์๋ณด๋ฉด์ ๊ทธ์ ๋ํ ๊ณต๋ถ ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ์ ํ๋ค. 1. Dart์ ๋น๋๊ธฐ ๋์ ์๋ฆฌ Dart๋ ์ฑ๊ธ ์ค๋ ๋๋ก ์ด์๋๋ ์ธ์ด์ด๋ค. Dart์์ Future๊ฐ ์๋ค๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ์์๋ Promise๊ฐ ์๋ค, ๋๋ค ์ฑ๊ธ ์ค๋ ๋๋ก ๋์์ด ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ฑ๊ธ ์ค๋ ๋๋ ์ด๋ป๊ฒ ๋์์ ํ๋ ๊ฒ์ผ๊น? for(int i=0; i print('Future is complete')); print('After the Futur..
๋ช ์ฃผ ๋์ ์งํํ๊ณ ์๋ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ ๋๋ฌด ์ง๋ฃจํด์ ๊ธฐ๋ถ ์ ํ ๊ฒธ ํ๋ฃจ์ค๋ต์ฒ๋ผ ๊ฐ๋จํ๊ณ ์ฌ๋ฏธ์๋ ์ฑ ์ข ๋ง๋ค์ด๋ณด๋ ค๊ณ ์๊ฐํ๋ค๊ฐ ๋ฌธ์๋ฉ์ธ์ง๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ทจํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค๋ฉด ์ฌ๋ฏธ์์ ๊ฒ ๊ฐ์์ ๊ฐ๋ฐ ๊ณผ์ ์ ๊ณต์ ํด๋ณด๊ณ ์ ํฌ์คํ
์ ํด๋ดค์ต๋๋ค. ์ฌ๋ฏธ๋ก๋ง ์ฝ์ด์ฃผ์๊ณ ๋ถ๋ฒ์ ์ธ ์ฉ๋๋ก ์ฌ์ฉ์ ์ค์ ๋ก ๊ณ ์๋ฅผ ๋นํ์ค ์ ์์ต๋๋ค. ๋ค๋ง, ์ค์ ๋ก ์ฌ์ฉํ๊ธฐ์๋ ์ ์ฝ์ด ๋ง์ ํธ์ด๋ผ ์ฝ์ง๋ ์์ต๋๋ค. ์ค๊ธฐ๊ธฐ ํ
์คํธ ์ฌ์ฉ๋ ํจํค์ง๋ ํ์ ์ด 3๊ฐ ์
๋๋ค. https://pub.dev/packages/telephony telephony | Flutter package A Flutter plugin to use telephony features such as fetch network info, start phon..
pub.dev์์ ํจํค์ง ์ข์๊ฑฐ ์๋ ๋๋ฌ๋ณด๋ค๊ฐ ์๊ฐ๋ณด๋ค ์ธ๊ธฐ๊ฐ ์์ด๋ณด์ด๋ ์ฑ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ํจํค์ง ํ๋ฌ์ค..? ๊ฐ ๋ญ์ง.... ๋ผ๊ณ ์๊ฐํ๋ฉด์ ์ฌ์ฉ๋ฒ์ ์ฝ์ด๋ณด๋๋ฐ ๋ญ์ง..? ๋ ๋ชจ๋ฅด๊ฒ ๋๋ฐ ์ผ๋จ ์ฌ์ฉํด๋ณธ๊ฒฐ๊ณผ ํ์ฌ ํ๋ก์ ํธ์ ํจํค์ง๊ด๋ จ๋ ๋ด์ฉ์ ๊ฐ์ ธ์ฌ ์ ์๋ ํจํค์ง์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ์ฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค. pubspec.yaml ํ์ผ์ ํจํค์ง๋ฅผ ์ถ๊ฐํ๊ณ // `PackageInfo.fromPlatform()`์ ์ ์ด ๋ผ์ธ์ ํธ์ถํ์ธ์ WidgetsFlutterBinding.ensureInitialized(); PackageInfo packageInfo = await PackageInfo.fromPlatform(); ์ ๋๊ฐ๋ฅผ runApp() ์คํ์ ์ ์คํ์์ผ ์ฃผ๊ณ String appName = packag..
์ด๋ฒ์ ์๊ฐํ ํจํค์ง๋ pull_to_refresh๋ผ๋ ๋ก๋ฉ ์ธ๋์ผ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ํจํค์ง์ด๋ค. https://pub.dev/packages/pull_to_refresh pull_to_refresh | Flutter package a widget provided to the flutter scroll component drop-down refresh and pull up load. pub.dev Pub.dev์ 2533 LIKES์ธ๊ฒ์ ๋ณด๋, ๊ฝค ๋ง์ ์ฌ๋๋ค์ด ์ฌ์ฉํ๊ณ ์๊ณ ์ด๋์ ๋ ๊ฒ์ฆ๋ ํจํค์ง๋ผ๋ ์๋ฏธ์ด๋ค. ์ด์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์ฐจ๊ทผํ ์์๋ณด์. ๊ทธ์ ์ ํน์ ๋ฌด์จ ํจํค์ง์ธ์ง ๊ฐ์ ์์ค๋ ๋ถ๋ค์ ์ํด์ ๋์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋จํ ๋ณด์ฌ์ฃผ์๋ฉด ์ฐ๋ฆฌ๊ฐ Flutter๋ด์ฅ ํจ์์ธ RefreshIndicator..
๋๋ฒ์งธ๋ก๋ hook์ useMemoized function์ ๋ํด์ ์์๋ณด์. useMemoized์ ๋ํด ๊ฐ๋จํ ์ด์ผ๊ธฐ ํ์๋ฉด, ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ์๋ค๊ฐ ๊ฐ์ด ๋ณํ๋ค๋ฉด ์ฌ๋น๋, ์๋๋ผ๋ฉด ์๋ฌด ๋ณํ๋ ์ฃผ์ง ์๋๋ค. ์ฆ oldValue(๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ)๊ณผ currentValue(ํ์ฌ ๊ฐ)๋ฅผ ๋๊ฐ๋ฅผ ๊ณ์ ๋น๊ตํ๋ฉด์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ค๊ณ ์ดํดํ๋ฉด ์์ฃผ ์ฝ๊ฒ ์ดํดํ ์ ์์ ๊ฒ ์ด๋ค. ์ผ๋จ Implementation์ ๋ํด์ ์์๋ณด์. ์ธ์๊ฐ์ผ๋ก Function ํจ์์ List๋ฅผ ๋ฐ๋๋ค. ๋๋ computerExpensiveOperation์ด๋ผ๋ ํจ์๋ฅผ ๋ง๋ค๊ณ useMemorized๋ก ์คํํ๋๋ก ๊ตฌํํ์๋ค. int computerExpensiveOperation(int count) { print('useM..