Flutter

์ž‘๋…„๋ถ€ํ„ฐ ์ง„ํ–‰ํ•˜๋˜ ๋ชจ์ž„์—์„œ ๋งค์ฃผ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด์„œ ๊ฐ์ž ๊ณต๋ถ€ํ•ด์„œ ๋ฐฐ์šด์ ์„ ๊ณต์œ ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” flutter_hooks์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž๊ณ  ์ง„ํ–‰์ด ๋˜์—ˆ๊ณ  ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด์ž๊ณ  ํ•œ๋‹ค. hooks์— ๋Œ€ํ•œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ฐธ๊ณ ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. pub.dev ๊ณต์‹ https://pub.dev/packages/flutter_hooks flutter_hooks | Flutter package A flutter implementation of React hooks. It adds a new kind of widget with enhanced code reuse. pub.dev ๊ฐœ๋ฐœํ•˜๋Š”๋‚จ์ž๋‹˜ ์œ ํŠœ๋ธŒ https://www.youtube.com/watch?v=GBVBLKESogU&lis..
1. ๋ฌธ์ œ์˜ ๋ฐœ๋‹จ ๊ฐœ๋ฐœ์„ ํ•˜๋˜ ์ค‘์— ์œ„ ์‚ฌ์ง„์— ๋นจ๊ฐ„์ƒ‰ ๋ฐ•์Šค ๋ถ€๋ถ„, ์ฆ‰ ์ œํ’ˆ ๊ฒ€์ƒ‰ ๊ฐ€๋กœ ๋ถ€๋ถ„ ์ค‘ ์–ด๋””๋ฅผ ํด๋ฆญํ•ด๋„ GestureDetector๋ฅผ ํ†ตํ•ด ์ธ์‹์„ ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. Row( children: [ Expanded( child: GestureDetector( onTap: () { print('Clicked'); }, // ํ•œ ์˜์—ญ ๋ถ€๋ถ„ ์–ด๋””๋ฅผ ํด๋ฆญํ•ด๋„ ์ธ์‹๋˜๋„๋ก ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ฐ์‹ธ๊ธฐ child: Container( child: const Row( children: [ Icon(Icons.search, color: Colors.grey), SizedBox(width: 10), Text('์ œํ’ˆ ๊ฒ€์ƒ‰', style: TextStyle(color: Colors.grey)), ], ), ), ), ), ...
PlayStore๋‚˜ AppStore ์–ด๋А ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์šด์„ ๋ฐ›์•„๋„ ํšŒ์›๊ฐ€์ž… ์•ฝ๊ด€ ๋™์˜ ํŽ˜์ด์ง€๋Š” ๋งŽ์ด ๋ดค์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Šคํ† ์–ด์— ์•ฑ์„ ์˜ฌ๋ฆด๋•Œ ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ/๊ฐœ์ธ์ •๋ณด ๋“ฑ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ํ•„์ˆ˜์ ์œผ๋กœ ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ์„ ๋„ฃ์–ด์•ผ๋งŒ ์Šน์ธ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด ํŽ˜์ด์ง€๋ฅผ ์ œ์ž‘ํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ‰๊ท ์ ์œผ๋กœ ์ฒดํฌ๋ฐ•์Šค๋Š” 3๊ฐ€์ง€ ํƒ€์ž…์˜ ์œ ํ˜•์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1. ๋ชจ๋‘ ๋™์˜ ( ๋ชจ๋“  ๋™์˜๋ฅผ ํ•˜๋Š” ์ฒดํฌ๋ฐ•์Šค ) 2. ํ•„์ˆ˜ ๋™์˜ ( ๋ฐ˜๋“œ์‹œ ํ•ด์•ผ๋งŒ ๋‹ค์ŒํŽ˜์ด์ง€ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ) 3. ์„ ํƒ์  ๋™์˜ ( ์•ˆํ•ด๋„ ๋‹ค์Œ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ) ๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ ํ•„์ˆ˜ ๋™์˜๊ฐ€ ์ „๋ถ€ ์ฒดํฌ๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด ๊ฐ€์ž…ํ•˜๊ธฐ ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž ๊ทธ๋Ÿผ ์ด์ œ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์›๋ฆฌ๋Š” ๋Œ€๊ฐ• ์•Œ์•˜์œผ๋‹ˆ ํ•˜๋‚˜์”ฉ ๋œฏ๊ณ  ..
ํ”Œ๋Ÿฌํ„ฐ์—์„œ๋Š” ์•ฑ์„ ์ฒ˜์Œ ์‹คํ–‰ํ• ๋•Œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž์‹ ์ด ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ์Šคํ”Œ๋ž˜์‹œ ํŒจํ‚ค์ง€๋ฅผ ์ง€์›ํ•œ๋‹ค. https://pub.dev/packages/flutter_native_splash flutter_native_splash | Flutter Package Customize Flutter's default white native splash screen with background color and splash image. Supports dark mode, full screen, and more. pub.dev ์‚ฌ์šฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค pubspec.yaml ์— ํŒจํ‚ค์ง€ ์ถ”๊ฐ€ dependencies: flutter: sdk: flutter flutter_native_splash: ^์ตœ์‹ ๋ฒ„์ „ # ์Šคํ”Œ..
์œ„์™€ ๊ฐ™์€ ํ…์ŠคํŠธํ•„๋“œ์—์„œ ์ž…๋ ฅ์„ ์ˆซ์ž๋กœ๋งŒ ์ œํ•œ์„ ํ•˜๊ณ ์ž ํ• ๋•Œ TextField( keyboardType: TextInputType.number, // ์ˆซ์ž๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅ inputFormatters: [ FilteringTextInputFormatter.digitsOnly, ], cursorColor: Colors.grey, decoration: InputDecoration( border: InputBorder.none, filled: true, fillColor: Colors.grey[300], ), ), KeyboardType์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๊ฐ’์„ ์ง€์ • ํ•  ์ˆ˜ ์žˆ๋‹ค. keyboardType: TextInputType.number ํ•˜์ง€๋งŒ ๋ฐœ์ƒ๋˜๋Š” ๋ฌธ์ œ์ ์œผ๋กœ๋Š” ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ธ๋“œํฐ์„ ๋ธ”๋ฃจํˆฌ์Šค ํ‚ค๋ณด๋“œ๋กœ ์—ฐ๊ฒฐ์„ ..
final List numbers = List.generate( 100, // ์ด ๊ธธ์ด (index) => index, // ์ˆซ์ž์˜ ์ˆœ์„œ ); 2๊ฐœ์˜ ์ธ์ž๊ฐ’์„ ๋ฐ›๋Š”๋ฐ 1. length 2. (index) 1๋ฒˆ์—๋Š” ์ด ๊ธธ์ด์˜ int์˜ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜๊ณ  2๋ฒˆ์—๋Š” ์ˆซ์ž๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฆ๊ฐ€๋ ์ง€์˜ ๊ฐ’์„ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค. ๋งŒ์•ฝ ์œ„ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ• ์‹œ 1,2,3 .. 99 ๊นŒ์ง€ ์‹คํ–‰์ด ๋  ๊ฒƒ์ด๊ณ  (index) => index * 2 ๋ฅผ ํ• ๊ฒฝ์šฐ 2์˜ ๋ฐฐ์ˆ˜๋กœ ์‹คํ–‰์ด ๋œ๋‹ค.
Hac. Dog ๐ŸŒญ
'Flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)