TextField์ maxLength๋ก ๊ธธ์ด ์ ํ์ ํ๊ฒ ๋๋ฉด ์ค๋ฅธ์ชฝ ์๋์ ์๋์ผ๋ก ๊ธธ์ด ์ ์ ํ์ ํ์ ํด์ฃผ๋ ํ ์คํธ๊ฐ ํ์ ๋๋ค.์ด์ ๊ฐ์ด ํ์ ๋๋ ๊ฒ์ด ์ซ๋ค๋ฉด, counterText๋ฅผ ๋น ๊ฐ์ผ๋ก ์ ํ ์ ํ๋ฉด ๋๋ค.
๋ค์ ๋ฒํผ : ๋ค์ ํ ์คํธ ํ๋๋ก ํฌ์ปค์ค ์ด๋์๋ฃ ๋ฒํผ : ํค๋ณด๋๊ฐ ์๋์ผ๋ก ๋ด๋ ค๊ฐ๋ฉฐ ํฌ์ปค์ค ํด์
ํค๋ณด๋๋ฅผ ์ฌ๋ผ์ง๊ฒ ํ๊ณ ์ถ์ ํ์ด๋ฐ(onTap, onChanged, onSubmitted ๋ฑ)์ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์๋๋ก์ด๋์์ ๋ฐฑ๋ฒํผ์ ๋๋ฌ ์ ํ์ด์ง๋ก ์ด๋ ํ๋ ค ํ ๋iOS์์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ค์์ดํ ํ์ฌ ์ ํ์ด์ง๋ก ์ด๋ ํ๋ ค ํ ๋ํด๋น ์คํฌ๋ฆฐ Scaffold๋ฅผ WillPopScope๋ก ๊ฐ์ธ์ค๋ค.onWillPop๋ฅผ ์ด์ฉํ์ฌ ์ ํ์ด์ง๋ก ์ด๋ํ๋ ค ํ ์, ์ก์ ์ ์ค์ ํ๋ค
ํ ์คํธ ํ๋๋ฅผ ํญ ํ๊ณ ํค๋ณด๋๊ฐ ์ฌ๋ผ์ค๋ฉด์ ํ๋ฉด์ ๋ฐ์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์์ ฏ๋ค์ด ๋ฐ๋ ค ์ฌ๋ผ๊ฐ๋ฉด์ overflow๊ฐ ๋ฐ์ํ๋ค.ํค๋ณด๋๊ฐ ํ๋ฉด์ ๋ฐ๊ณ ์ฌ๋ผ๊ฐ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ถ๋ค๋ฉด,์ ์์ค ์ฝ๋์ฒ๋ผ Scaffold() ์์ resizeToAvoidBottomInset ์ fal
runtimeType ๋ณ์์ ํ์ ์ ์๋ ค์ค๋๋ค. isEmpty / isNotEmpty ๋ฌธ์์ด์ด ๋น์ ์๋์ง, ์๋์ง๋ฅผ ํ๋ณ ํ๋ค. compareTo ๋ฌธ์์ด ์ ๋ ฌ ์์๋ฅผ ๋น๊ตํฉ๋๋ค. ๊ฐ์ผ๋ฉด 0, ๋ ์์ด๋ฉด -1, ๋ค๋ฉด 1์ ๋ฐํํฉ๋๋ค. contains(a)
ListView๋ฅผ ์ฌ์ฉํ์ฌ ์์ ฏ์ ๋์ด ํ์์ ๋, ๋ด๊ฐ ์๋ํ์ง ์์๋๋ฐ ์๋์ผ๋ก SafeArea๊ฐ ์ค์ ๋์์ ๋ ์ฌ์ฉํฉ๋๋ค.padding: EdgeInsets.zero๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฌ์ง์ฒ๋ผ SafeArea ์ฌ๋ผ์ง๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค!
์์ ์ฌ์ง๊ณผ ๊ฐ์ด Button์ด๋ InkWell์ ์ฌ์ฉํ ์์ ฏ์ ํญ ํ์ ์, ๋ฌผ๊ฒฐ ํจ๊ณผ๊ฐ ๋ฐ์ํ๋ค. ๊ตณ์ด ์ ๊ฑฐ๋ฅผ ํด์ผ ํ ํ์๋ ์๊ฒ ์ง๋ง ์์ ์ฌ์ง์ฒ๋ผ ์์ ฏ์ Padding์ด๋ Margin์ ์ ์ฉ ํ์ ์, ๊ทธ ๊ฐ๊ฒฉ๊ณผ ๊ฐ์ด ๋ฌผ๊ฒฐ ํจ๊ณผ๊ฐ ๋ฐ์ํ์ฌ ๊น๋ํ ๋์์ธ์ ์ํด
AndroidManifest.xml(ํ์ผ ์์น : android -> app -> src -> main)์ ์ด์ด์ค ๋ค์ ๋ฐ์ ์ฝ๋ ๋ถ๋ถ์ ์ค์ ํ ์ฑ์ ์ด๋ฆ์ ์์ฑํด์ค๋ค.info.plist(ํ์ผ ์์น : ios -> Runner)์ ์ด์ด์ค ๋ค์ ๋ฐ์ ์ฝ๋ ๋ถ๋ถ์ ์ค์ ํ
1. ScrollController ์ ์ธ 2. initState ์์ _scrollController.addListene ์ ์ธ 3. dispose ์์ _scrollController.dispose ์ ์ธ scrollListener ์คํฌ๋กค ๋งจ ์, ๋งจ ๋ฐ ๊ฐ์ง ์คํฌ๋กค ์์น ๊ฐ์ง ์ด๋์ ์ฌ์ฉํ๋์?
๋จผ์ Flutter ๋ฒ์ ์ด 2.0 ์ด์์ธ์ง ํ์ธ ํด์ฃผ์ญ์์ค.ํฐ๋ฏธ๋์ flutter devices๋ฅผ ์ ๋ ฅํ์ฌ ์๋์ ๊ฐ์ด ํฐ๋ฏธ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋์ง ํ์ธ ํด์ฃผ์ญ์์ค.์น์ผ๋ก ๋น๋ํ๋ ๋ช ๋ น์ด๋ฅผ ํฐ๋ฏธ๋์ ์ ๋ ฅ์น์ ๋๋ฒ๊น ํ๋ ๋ช ๋ น์ด๋ฅผ ํฐ๋ฏธ๋์ ์ ๋ ฅ
์ฌ๋ฌ ์์ ์ ์ฝ์ด๋ณด๋ฉฐ Dart ๋ฌธ๋ฒ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.๊ธ์ ํ๋ฆฐ ๋ด์ฉ์ด ์๋ค๋ฉด ๋ง์ ํด์ฃผ์ธ์ :)๋ณ์์ ํจ์๋ช ์ ์ ์ํ ๋๋ ์นด๋ฉํ๊ธฐ๋ฒ(๋ํ ํ๊ธฐ๋ฒ)์ ์ฌ์ฉํ๋ค.๊ฐ ๋จ์ด์ ์ฒซ๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐํ๊ณ ๋ถ์ฌ์ฐ๊ธฐ๋งจ์ฒ์ ๋ฌธ์๋ ์๋ฌธ์๋ก ํ๊ธฐํจ๋์ด์ฐ๊ธฐ ๋์ ๋๋ฌธ์๋ก ๋จ์ด๋ฅผ ๊ตฌ๋ถ
ํ์ฌ ์์คํ ์์ ์ค์ ํ ํ ๋ง ๋ชจ๋๊ฐ ๋คํฌ๋ชจ๋ / ๋ผ์ดํธ๋ชจ๋์ธ์ง ๊ตฌ๋ถํ์ฌ ๊ฐ์ ๋ฐํํฉ๋๋ค.info.plist์์ ์ฝ๋๊ฐ ์๋ค๋ฉด ์ด ์ฝ๋๋ฅผ ์ง์ฐ๊ณ ๋ค์ ๋น๋๋ฅผ ํด๋ณด๊ธธ ๋ฐ๋๋๋ค.
Flutter์์ ์ฃผ๋ก ์ฌ์ฉ ๋๋ ํฐํธ ๊ตต๊ธฐ ์ ์์ ๋๋ค!ํ๋ก์ ํธ ๋ณ๋ก ๊ตต๊ธฐ๊ฐ ๋ค๋ฅด๊ฒ ์ ์ฉ๋ ์ ์์ผ๋ฉฐ, ๋์ฒด์ ์ธ ์ ์๋ผ๊ณ ์๊ฐํ์๊ณ ๋ด์ฃผ์๋ฉด ๋ฉ๋๋ค.w100 Thin, the least thickw200 Extra-lightw300 Lightw400 Normal, re
dart ํ๊ธฐ๋ฒ ์ธ ๊ฐ์ง
focusNode ์ ์ธtextField์ focusNode ์ถ๊ฐํด๋น ์ฝ๋๋ก ํค๋ณด๋ Show / Hide ์ฌ๋ถ ๊ฐ์ง
Info.plist ์ ํ pubspec.yaml ํจํค์ง ์ ํ ํ์ฌ ์์น ๊ฐ์ ธ์ค๊ธฐ ์ฝ๋
Git Config ๋ฆฌ์คํธ ํ์ธ Git Config ์ค์ Git Config ์ค์ global๋ก ์ค์ ๋ config ์ฌ์ฉ์๋ฅผ ์ง์ธ ๊ฒฝ์ฐ global ์ถ๊ฐ
์ธ์ฑ ๊ฒฐ์ ๋ฐ ์ ๊ธฐ ๊ฒฐ์ ํตํฉ ํ ์คํธ๋ฅผ ์งํํ๊ธฐ ์ํด์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ผ์ด์ ์ค ๋ฑ๋ก์ด ํ์ํฉ๋๋ค. ํด๋น ๋ผ์ด์ ์ค๊ฐ ๋ฑ๋ก์ด ๋์ด ์๋ ๊ณ์ ์ผ๋ก๋ง ์ธ์ฑ ๊ฒฐ์ ํ ์คํธ๋ฅผ ์งํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฐ์ ์์ ์ด ๋ฐ๋์ ํ์ํฉ๋๋ค.Play Console ํ์ด์ง ๋ก๊ทธ์ธhttps&#x
ํจํค์ง ์ค์นhttps://pub.dev/packages/intl(NumberFormat์ ์ฌ์ฉํ๊ธฐ ์ํจ)ํด๋น ์ฝ๋ ์ ์ฉ
์ฑ ์คํ ํ ์ ๊ธ ๋ฒํผ์ ๋๋ฅธ ๋ค ํ๋ฉด์ ํค๊ฒ ๋ ๊ฒฝ์ฐ, ์ ๊ธ ํ๋ฉด์ด ์๋ ์ฑ์ด ๋ฐ๋ก ํ์ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. ์ฌ์ฉ์๊ฐ ๋๋ผ๊ธฐ์ ๋ฒ๊ทธ๋ผ๊ณ ์ธ์ ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ฐฉ์ง ํ๊ธฐ ์ํด์๋ showWhenLocked ๋ฅผ false ๊ฐ์ผ๋ก ๋ฐ๊พธ๋ฉด ๋๋ค.ํ๋ฌํฐ ํ๋ก์ ํธ
ํจํค์ง ์ค์ ๊นํ๋ธ https://github.com/juicycleff/flutter-unity-view-widget pub.dev flutterunitywidget | Flutter Package Unity Hub ์ค์น ๋ค์ด๋ก๋ NDK ์ค์น
์๋ณ์ Upper Camel Case (Pascal Case) ๋๋ฌธ์๋ก ์์ ๊ฐ ๋จ์ด์ ์์ ๋ฌธ์๋ ๋๋ฌธ์ Class, Enum, Typedef, Type ๋งค๊ฐ๋ณ์์์ ์ฌ์ฉ Metadata Annotation์ผ๋ก ์ฌ์ฉ๋๋ Class ๋ง์ฝ Annotation Cla
์ด๋ฏธ์ง(๋๋ ๋น๋์ค) ์ ํbyte ๊ตฌํ๊ธฐkb ๊ตฌํ๊ธฐmb ๊ตฌํ๊ธฐ