๋ณดํธ๋์ด ์๋ ๊ธ์
๋๋ค.
๐ฆ Flutter
๋ณดํธ๋์ด ์๋ ๊ธ์
๋๋ค.
๋ฌธ์ ์ํฉ ํ๋ฌํฐ ์น์ ๊ตฌํํ๋ ๋์ค ์ ๋๋ฉ์ด์
ํจ๊ณผ๊ฐ ๋๋ฌด ๋ฌด๊ฑฐ์ ๋ค. iOS์ ๊ฒฝ์ฐ animation์ ์ค ๋ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๊ณ์ฐ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์์ด๋์ด๋ฅผ ์ป์ด isolated ๋ฅผ ์จ์ ๋ค๋ฅธ ์ค๋ ๋์์ ์์
์ ๋๋ฆฌ๋ ค๊ณ ํ๋ค. ํ์ง๋ง ์ ๋๋ฉ์ด์
ํจ๊ณผ๋ ์์ํ ๋ํ๋์ง ์์๊ณ ๋๋ฒ๊ทธ ๋ชจ๋๋ก ๋ค์ ์คํ์์ผ๋ณด๋... ํ๋ฌํฐ ์น์ isolated๋ฅผ ์ง์ํ์ง ์๋๋ค๊ณ ํ๋ค....;;;; ์๋ฌด๋ฆฌ ๋ชจ๋ฐ์ผ๋ณด๋ค๋ ๋ ์ฌ์ฉํ๋ ํ๋ฌํฐ ์น์ด์ง๋ง ๋๋ถ๋ถ ํ๋ ์์ํฌ์์ ๊ฑฐ์ ํ์์ ์ผ๋ก ๋ค์ด๊ฐ๋ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ด ์๋๋ค๋๊ฒ ๋๋ฌด ์ด์ํด์ ๊ตฌ๊ธ๋ง์ ํด๋ณด์๋ค. ๋คํํ isolate๊ฐ ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ๋ฉํฐํ๋ก์ธ์ฑ์ ๊ตฌํํ ์ ์์๋ค. Flutter Web์์ ๋ฉํฐ ํ๋ก์ธ์ฑํ๊ธฐ Flutter ์น์์ Isolat..
๋ฌธ์ ์ํฉ๋ถ๋ช
์๋ฌด๋ฐ ํจ๋ฉ๊ฐ๋ ์ฃผ์ง์๊ณ ํญ๋ฐ์ ๋ฆฌ์คํธ๋ทฐ๋ฅผ Column์ผ๋ก ์์ง๋ฐฐ์นํ๋๋ฐ ๋ฆฌ์คํธ๋ทฐ๋ ์์๊ฐ์ด ์ ์์ ์ผ๋ก ๋์์ง๋ง ํญ๋ฐ๋ถ๋ถ์ด ์ด์ํ๊ฒ ์ผ์ชฝ ๊ฐ๊ฒฉ์ด ๋ค์ด๊ฐ์์๋ค. ๋ฌธ์ ํด๊ฒฐisScrollable ์์ฑ ๋๋ฌธ์ด์๋ค. isScrollable๊ฐ true๋ก ์ค์ ๋๋ฉด, ๊ฐ ํญ์ ์์ ์ ๋ด์ฉ์ ๋ง์ถฐ ํฌ๊ธฐ๋ฅผ ๊ฐ๋๋ค. ์๋ฅผ ๋ค์ด, "Home"์ด๋ผ๋ ํ
์คํธ๊ฐ ์๋ ํญ์ "Settings"๋ผ๋ ํ
์คํธ๊ฐ ์๋ ํญ๋ณด๋ค ๋ ์ข์ ์ ์๋ค. ์ด๋ ๊ฒ ์ ํด์ง ํ๋ฉด ๋๋น ๋๋น ๊ณ์ฐ์ด ์๋ ์ฃผ์ด์ง ํ
์คํธ ๊ธฐ๋ฐ์ผ๋ก ๋๋น๋ฅผ ์ ํจ์ผ๋ก์จ ํญ์ ๊ฐ์๊ฐ ๋ง์์ ํ๋ฉด์ ๋ชจ๋ ํ์๋ ์ ์์ ๋, ์ฌ์ฉ์๋ ์ํ ์คํฌ๋กค์ ํตํด ๋๋จธ์ง ํญ์ผ๋ก ์ด๋ํ ์ ์๋ค. ๊ฐ ํญ์ด ์์ ์ ๋ด์ฉ์ ๋ง๊ฒ ๋ฐฐ์น๋๊ธฐ ๋๋ฌธ์ ์คํฌ๋กค์ด ๊ฐ๋ฅํด์ง๋ ๊ฒ์ด๋ค. is..
๋ฌธ์ ์ํฉํ์ด์ด์คํ ์ด ๋ชจ๋ธ๊ณผ ํ๋ก ํธ ๋ชจ๋ธ์ด ์ผ์นํ๋์ง ๊ฒ์ฆํ๋ ํตํฉํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค.๋ถ๋ช
yaml ํ์ผ์ ํตํฉํ
์คํธ ํจํค์ง๋ฅผ ์ํฌํธํ์์๋ ์์๊ฐ์ด ํจํค์ง๋ฅผ ์ฐพ์ง ๋ชปํ๊ณ ์๋ค๋ ๋ฐํ์์๋ฌ๊ฐ ๋ฐ์ํ๋ค.๋ฌธ์ ํด๊ฒฐํ์ผ๊ฒฝ๋ก ๋ฌธ์ ์๋ค. ํ๋ฌํฐ ํตํฉํ
์คํธ ํจํค์ง๋ ์ ํด์ง ํ์ผ๊ฒฝ๋ก์ ํ์ผ์ด๋ฆ์ ํตํด ํ
์คํธ๋ฅผ ์คํํ๋ค.๋๋ Testํด๋์์์ ํตํฉํ
์คํธ ํ์ผ์ ๋ง๋ค์ด ์คํํ๋๋ ์์๊ฐ์ ์๋ฌ๊ฐ ๋ด์๋ค.integration_test ํดํฐ๋ฅผ ๋ฃจํธ๋๋ ํ ๋ฆฌ์ ์๋ก ๋ง๋ค๊ณ ์ด๊ณณ์์ ํตํฉํ
์คํธ ๋คํธํ์ผ์ ๋ง๋ค์ด์ค์ผ ์๋ฌ๊ฐ ํด๊ฒฐ๋๋ค.๋ง์ฝ Test ํด๋ ์์์ ํตํฉํ
์คํธ ํด๋๋ฅผ ๋ง๋ค์ด ์คํ์ํฌ ๊ฒฝ์ฐ flutter drive --driver ์ปค๋งจ๋ ๋ช
๋ น์ด๋ฅผ ์คํํ ๋ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ฃผ์ด์ ํตํฉํ
์คํธ๋ฅผ ์คํ์์ผ์ผํ๋ค.
๋ค๋น๊ฒ์ด์
ํญ๋ฐ๋ฅผ Stateful ์์ ฏ์ผ๋ก ๋ง๋ค์ด ํญํ ์ ํ๋์ ์์ด์ฝ ์ด๋ฏธ์ง๋ก ๋ฐ๊ฟ ์ ์์์ผ๋๊ฐ๊ธ์ Stateless ์์ ฏ์ ์ฌ์ฉํ์ฌ ์ต์ ํ ์ํค๊ณ ์ถ์๋ค.Statless ์์ ฏ์ ์ฌ์ฉํ๋ฉด์ ์ด๋ฏธ์ง์ ์์ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์.๋ฐฐ๊ฒฝ ์ง์์ฐธ๊ณ ๋งํฌ: https://api.flutter.dev/flutter/dart-ui/BlendMode.html Flutter์ UI๋ ๋๋ง ๊ณผ์ ์ดํดํ๊ธฐ Flutter์ UI๋ ๋๋ง ๊ณผ์ ์ ์๋์ ๊ฐ๋ค๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ํตํด ์์ ฏ ํธ๋ฆฌ๊ฐ ์์ฑ๋๋ค.์์ ฏ ํธ๋ฆฌ๊ฐ ๋น๋๋ ํ, Flutter๋ ์ํ์ ์์ ฏํธ๋ฆฌ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ Element Tree, ๊ทธ๋ฆฌ๊ณ ์์ ฏ์ ์์น์ ํฌ๊ธฐ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ Render Tree๋ฅผ ๋ง๋ ๋ค.์์์์ ฏ๋ถํฐ ํ์์์ ฏ๊น์ง ์ ์ฝ์กฐ๊ฑด์ด ์กํ๊ณ ,..
https://medium.com/flutter/whats-new-in-flutter-3-24-6c040f87d1e4 What’s new in Flutter 3.24Unleashing Flutter GPU, Multi-View Embedding, and Moremedium.com ์ด์ ฏ๋ฐค ํ๋ฌํฐ 3.24 ์
๋ฐ์ดํธ๊ฐ ์์๋ค. ์ฃผ์ ์
๋ฐ์ดํธ๋ ๋ค์๊ณผ ๊ฐ๋ค. UI1. SliverFloating Header ๊ธฐ๋ฅ ์ถ๊ฐ2. PinnedHeaderSliver ๊ธฐ๋ฅ ์ถ๊ฐ3. SliverResizingHeader ๊ธฐ๋ฅ ์ถ๊ฐ4. Two diementional ScrollView ๊ธฐ๋ฅ ์ถ๊ฐ5. TreeView ๊ธฐ๋ฅ ์ถ๊ฐ6. CaraouselView ๊ธฐ๋ฅ ์ถ๊ฐ7. ์ ๋๋ฉ์ด์
์ํ๊ฐ enum์ผ๋ก ์ ์ธ! ์ด๋ฅผ ํตํด ์ ๋๋ฉ์ด์
์..
๋ง์ ํ๋ฌํฐ ํ๋ก์ ํธ๋ค์ด ๋ชจ๋ธ ์ ์ธ์ ํ ๋ Freezed ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ค. ์ ๋ค๋ค Freezed ๋ฅผ ์ฌ์ฉํ ๋ ๊ฑธ๊น? ๊ผญ ํจํค์ง๋ฅผ ์จ์ผํ๋๊ฑธ๊น? ๋ฑ๋ฑ ๋ช๊ฐ์ง ์๋ฌธ์ ์ด ๋ค๊ฒ๋์๊ณ ๊ณต๋ถํ ๊ธฐ๋ก์ ๋ธ๋ก๊ทธ ํฌ์คํธ๋ก ๋จ๊ฒจ๋ณด๋ คํ๋ค. ๋จผ์ ๋ชจ๋ธ ์ ์ธ์ ์์ด์ ์ ์ ์กฐ๊ฑด์ ๋ชจ๋ธ์ ํตํด ๋ง๋ค์ด์ง ์ธ์คํด์ค๊ฐ ๊ฐ์ ๋
์์ธ์ง ๋ค๋ฅธ ๋
์์ธ์ง ๋น๊ตํ ์ ์์ด์ผํ๋ค. ์ด๋ฅผ ๋๋ฑ์ฑ ๋น๊ต๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ ์ ๋ชจ๋ธ ์ ์ธ์ ์์ด์ ๋๋ฑ์ฑ ๋น๊ต๊ฐ ์ค์ํ ๊น? ์ด์ ๋ 3๊ฐ์ง๋ก ์์ฝํ ์ ์๋ค. 1. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ํ์ธ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ด๋ ๋ชจ๋ ๋ฐ์ดํฐ ๊ฐ์ด ์ ํํ ์ํ(state)์์ ๋ณด์ฅํ ์ ์์์ ์๋ฏธํ๋ค. ์ฆ ๋ฐ์ดํฐ์ ์ค๋ณต์ด ์๊ฒจ์ ์๋๋ค๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ๊ฐ์์ง๋ผ๋ ๋ชจ๋ธ์ ๋ง๋ค๊ณ ๋๋ง๋ฆฌ ๊ฐ์์ง ์ธ์คํด์ค๋ฅผ ๋ง๋ค์๋ค๊ณ ํ์. ๋ง์ฝ ๋๋ง๋ฆฌ ๊ฐ..
Don't use 'BuildContext's across async gaps.Try rewriting the code to not use the 'BuildContext', or guard the use with a 'mounted' check.๋ธ๋ก์ผ๋ก ๋ก๊ทธ์ธ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์๋ฅผ ์์ฑํ๊ณ ์์๋ค.๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด ๋ฉ์ธํ๋ฉด์ผ๋ก ์ด๋ํด์ผํ๊ธฐ ๋๋ฌธ์ view์์ context๋ฅผ ๋ฐ์์ผ๋ง ํ๋ค.ํ์ง๋ง ๋ก๊ทธ์ธ ํจ์(๋น๋๊ธฐ)์์์๋ context๋ฅผ ๊ฑด๋ค์ฃผ์ง ๋ง๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ด๋ค. ๋ฌธ์ ์์ธ BuildContextBuildContext ๋ ์์ ฏํธ๋ฆฌ์์ ํด๋น ์์ ฏ์ด ํธ๋ฆฌ ์ด๋๋ถ๋ถ์ ์์นํ๊ณ ์๋์ง ์ ์ ์๋ ์ ๋ณด์ด๋ค. ์ฆ ๋ค์ด๋ฐ ๊ทธ๋๋ก ๋น๋ํ๋๋ฐ ํ์ํ ์ ๋ณด(๋ฌธ๋งฅ)์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ํ๋ฌํฐ์์ UI๋ฅผ ๊ทธ๋ ค๋ผ..
Squircle ์ด๋?ํ๋ฌํฐ๋ก sliver ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํ๋ ์ค corner radius ๊ฐ์ ์ฃผ์ด ๋์ ๋ฅ๊ธ๊ฒ ๋ง๋๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ํ์ง๋ง ๋ง์ ์ค๊ธฐ๊ธฐ๋ก ๋๋ ค๋ณด๋ ๋ํธ๋จธ๋ฆฌ๊ฐ ๋ฌํ๊ฒ ๊ฐ์ ธ์๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ์ฑ ๋์์ธ์ด ์ ๋ฐ์ ์ผ๋ก "๋ฅ๊ธ๋ฅ๊ธ" ๋๋์ด ๋์ผํ๋๋ฐ ๋จผ๊ฐ SwiftUI์์ ๊ตฌํํ์ ๋๋ ๋๋์ด ๋ฌ๋๋ค.. ๋ถ๋ช
SwiftUI๋ CornerRadius๊ฐ๋ง ์ฃผ์ด๋ ๋ฅ๊ธ๋ฅ๊ธํ ๋๋์ด ์ด์์์๋ค. ๋ฐฑ๋ฌธ์ด๋ถ์ฌ์ผ๊ฒฌ, ๋ฐ๋ก ๊ฐ์ Corner Radius๋ฅผ ์ฃผ์ด SwiftUI์ Flutter๋ฅผ ๋น๊ตํด๋ณด์๋ค. ์ญ์ ์ ํ ๊ฐ์๋ SwiftUI ์ฝ๋๋ก ์์ฑํ Rounded Container์ด๊ณ ์๋๋ํ๋ฌํฐ๋ก ์์ฑํ Rounded Container์ด๋ค. ์์ธํ ๋ค์ฌ๋ค๋ณด๋ฉด ํ๋ฌํฐ ๋ชจ์๋ฆฌ๊ฐ ๋ฌํ๊ฒ ๊ฐ์ ธ์์์..