ํ๋กํ
๋ธ๋ก๊ทธ : ๊ฐ๋ฐํ๋๋จ์ ๋ธ๋ก๊ทธ
์ ํ๋ธ : ๊ฐ๋ฐํ๋๋จ์ ์ ํ๋ธ
๊นํ๋ธ : ๊ฐ๋ฐํ๋๋จ์ ๊นํ๋ธ
์๊ฐ
๊ฐ๋ฐ์ ์ฆ๊ธฐ๋ ์ฌ๋์ด ๋๊ณ ์ถ์ ๊ฐ๋ฐ์.
์๋ ํ์ธ์ ๊ฐ๋ฐํ๋๋จ์ ๊ฐ๋จ์ ๋๋ค.
์ด๋ ฅ
2024.07 ๐ ๊ฐ๋ฐํ๋๋จ์์ ํธ์ฆ์จ ํ๋ฌํฐ ์ฑ ์ถ๊ฐ
2023.07 ๐ป ์ธํ๋ฐ ํ๋ฌํฐ Bloc ์์ฉ ๊ฐ์
2023.03 ๐ป ์ธํ๋ฐ ํ๋ฌํฐ Bloc ๊ธฐ์ด ๊ฐ์
Courses
Reviews
yrgo9464
ยท
[Bloc Application] Creating a Practical App (Book Review App): SNS Login, Firebase Application, Bloc State Management, GoRouter[Bloc Application] Creating a Practical App (Book Review App): SNS Login, Firebase Application, Bloc State Management, GoRouter- [Flutter State Management] Bloc Master Course from Basics to Applications!
soo91
ยท
[Bloc Application] Creating a Practical App (Book Review App): SNS Login, Firebase Application, Bloc State Management, GoRouter[Bloc Application] Creating a Practical App (Book Review App): SNS Login, Firebase Application, Bloc State Management, GoRouter- [Flutter State Management] Bloc Master Course from Basics to Applications!
- [Flutter State Management] Bloc Master Course from Basics to Applications!
Posts
Q&A
flutter bloc ์ง๋ฌธ์ด ์์ด์
์๋ ํ์ธ์ flame ๊ฒ์ ์์ง ๊ด๋ จ ์ง๋ฌธ์ด์๊ตฐ์ ์ ๊ฐ flame์ ์ฌ์ฉํด์ ๊ฒ์์ ๋ง๋ค์ด๋ณธ ๊ฒฝํ์ด ์์ด์ bloc๊ด๋ จ ํธํ์ฑ์ ๋ํด์ ํ์คํ ๋ต๋ณ ๋๋ฆฌ๊ธฐ๋ ์ด๋ ต๊ฒ ์ง๋ง ์ ๊ฐ ํ์ธํด๋ณด๋ flame์๋ bloc์ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ ๊ฐ๋๋ผ๊ณ ์ https://docs.flame-engine.org/latest/bridge_packages/flame_bloc/flame_bloc.html์ฌ๊ธฐ ๋ฌธ์๋ฅผ ํ์ธํด๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 37
Q&A
์ค๋ฅ..
์๋ ํ์ธ์ ๋ณด๋ด์ฃผ์ ๋ฉ์ผ๋ ํ์ธํ์์ต๋๋ค. ํด๋น๋ฌธ์ ๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณ์๋ ์์ ๊ณผ ์ ๊ฐ ์์ ์ ํ๋ ์๊ธฐ์ ํ๋ฌํฐ ๋ฒ์ ์ ์ฐจ์ด๋ก ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ญ์ ๋ฒ์ ์ฐจ์ด๊ฐ ์์ด์ ๋ฐ์๋๋ ๋ฌธ์ ์ ๋๋ค. ํน๋ณํ ๋ณด๋ด์ฃผ์ ๋ฌธ์ ๋ถ๋ถ์ hydrated_bloc ๋ฒ์ ์ฐจ์ด๊ฐ ^10.0.0 ๋ก ์งํ์ค์ด์ญ๋๋ค.ํ์ธ๋ฐฉ๋ฒ์ pubspec.yamlํ์ผ์ ํ์ธํด๋ณด์๋ฉด ์ ์ ์์ผ๋ฉฐ ๋จ์ํ ๋ฒ์ ๋ฌธ์ ๋ฅผ ๋์ํ๊ธฐ ์ํด์๋ bloc ๊ด๋ จ ๋ฒ์ ์ ๋ค์๊ณผ ๊ฐ์ด ๋ง์ถฐ์ฃผ์๋ฉด ๋๊ฒ ์ต๋๋ค. bloc: 8.1.1 flutter_bloc: 8.1.2 hydrated_bloc: 9.1.1์ ์ฒ๋ผ ๊ณ ์ ํ์๊ณ flutter clean ํ flutter pub get ํ์๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ค ๊ฒ์ด๋ฉฐ ์ดํ ๊ฐ์๋ฅผ ๋ค์ผ์๋ ๊ฒ๊ณผ ํฐ๋ฌธ์ ๋ ์์ผ์ค ๊ฒ์ ๋๋ค. ๋ง์ผ ํ๋ฌํฐ ์ต์ ๋ฒ์ ์ผ๋ก ๊ฐ์๋ฅผ ์๊ฐํ๊ธธ ์ํ์ ๋ค๋ฉด ๋ฐ์๋๋ ๋ฌธ์ ํ์ผ์ธ main.dart ํ์ผ์ hydrated init ํ๋ ๋ถ๋ถ์ ์์ค์ฝ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด์ฃผ์๋ฉด ๋๊ฒ ์ต๋๋ค. HydratedBloc.storage = await HydratedStorage.build( storageDirectory: HydratedStorageDirectory( (await getTemporaryDirectory()).path, ), );์๋ฌด๋๋ ๊ฐ์๊ฐ ์ต์ ํ๋ก ์ ๋ฐ์ดํธ ๋์ง ๋ชปํด ์๊ฐํ์๋ ๋ถ๋ค์๊ฒ ์ด๋ ค์์ ๊ฒช๊ฒํด๋๋ฆฐ๊ฒ ๊ฐ์ ์ฃ์กํ ๋ง์์ ๋๋ค. ๊ฐ์ธ์ ์ธ ์ฌ์ ์ผ๋ก ์ต์ ํ ๋์์ ํ์ง ๋ชปํ๊ณ ์๋๋ฐ ์กฐ๋งํ ํ๋ฌํฐ ์ต์ ๋ฒ์ ์ ๋ง๊ฒ ์ถ๊ฐ ์ ๋ฐ์ดํธ ์งํํ์ฌ ์ ๋ฐ์ดํธ ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ค์ํ๋ฒ ๋ถํธํจ์ ๋๋ ค์ ์ฃ์กํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค. PS: ์ถ๊ฐ์ ์ผ๋ก ๊ฐ์ ๋ค์ผ์๋ฉด์ ๋ฐ์๋๋ ๋ฌธ์ ์ ๋ํด์ ๋ฉ์ผ ์ฃผ์๋ฉด ๋น ๋ฅธ์์ผ๋ด๋ก ํ์ธํ์ฌ ๋ต๋ณ ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค.
- 0
- 2
- 115
Q&A
bloc ์ด๋ฒคํธ ํด๋์ค ์์ฑํ ๋ getter ๋ฅผ override ํ๋ ์ด์ ๋ ๋ญ๊ฐ์?
์ง๋ฌธ์ ๋ต๋ณ์ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ฐ์ , ์ค๋ฒ๋ผ์ด๋(Override)๋ ๋ถ๋ชจ ํด๋์ค๋ก๋ถํฐ ์์๋ฐ์ ๋ฉ์๋๋ ์์ฑ์ ์์ ํด๋์ค์์ ์ฌ์ ์ํ ํ์๊ฐ ์์ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋์ ๋ถ๋ชจ ํด๋์ค์ธ CountEvent ํด๋์ค๋ฅผ ๋ณด๋ฉด abstract ํด๋์ค๋ก ์ ์ ๋์ด์๊ณ ์ด ํด๋์ค ์ญ์ extends ์์์ Equatable๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค. Equatable์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ์ ์ํด์ค์ผ ํ๋ ๊ฒ์ด ์๋๋ฐ ๊ทธ๊ฒ์ด ๋ฐ๋ก props ์ ๋๋ค. Equatable์ ๊ฐ์ฒด๊ฐ ๋น๊ต๋ฅผ ์์ฝ๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. Dart์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก == ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด์ ์ฐธ์กฐ๋ฅผ ๋น๊ตํ๋๋ฐ, Equatable์ ์ฌ์ฉํ๋ฉด props ๋ฐฐ์ด์ ์ ์๋ ๋ฉค๋ฒ ๋ณ์๋ค์ ๋น๊ตํ์ฌ ๊ฐ์ด ๊ฐ์ผ๋ฉด ๊ฐ์ ๊ฐ์ฒด๋ก ์ธ์ํ ์ ์๋๋ก ๋์์ค๋๋ค. ๋ฐ๋ผ์ props ์ ์๋ ํ์์ ์ผ๋ก ํด์ค์ผ ํ๋๋ฐ abstract ํด๋์ค๋ก CountEvent๋ฅผ ๋ง๋ค์ด์คฌ๊ธฐ ๋๋ฌธ์ props ์ ์๋ฅผ ์์ ์์๋ค์๊ฒ ์ฑ ์์ ๋๊ธฐ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ฆ, CountEvent๋ฅผ ์์๋ฐ๋ ํด๋์ค๋ค์ ๋ฐ๋์ props๋ฅผ ์ ์ํด์ผ๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ ๊ทธ๋ ๊ฒ ์ ์ํ๋ฏ๋ก ์ธํด ๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ๋ฒ ๋ฐ์ํด๋ ๋์ผํ ์ด๋ฒคํธ๋ก ์ธ์ํ ์ ์์ด BLoC ํจํด์์ ๋ถํ์ํ ์ํ ๋ณํ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ง๋ฌธ์ ๋ต์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 1
- 93
Q&A
ํน์ ์น์์ ๋๋ฒ๊น ํ์๋๋ถ๋ค์
์ข์ ์ ๋ณด ๊ณต์ ๊ฐ์ฌํฉ๋๋ค ๐
- 0
- 1
- 339
Q&A
๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์
Q : ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์์ค future์ stream์ด ์๋ค๊ณ ํ๋๋ฐ ๋์๋ฆฌ๋ทฐ์ฑ์์๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์ ์ค future์ ์ฌ์ฉํ๋๊ฑด๊ฐ์? stream์ ์ฌ์ฉํ๋๊ฑด๊ฐ์?A : ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ๋๊ฐ์ง๊ฐ ์์ง๋ง ๋๊ฐ ์ฑ๊ฒฉ์ ๋ค๋ฆ ๋๋ค. ์ง์์ ์ธ ๋ณํ๋ฅผ ๊ฐ์งํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด stream์ด๋ผ ํ ์ ์๊ณ ๋จ๋ฐ์ ์ธ ๊ฒ์ future๋ผ๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค. ๋์๋ฆฌ๋ทฐ์ฑ์์๋ bloc์ด๋ผ๋ ์ํ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ๋๋ฌธ์ bloc์์ ์ํ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ๋ณ๊ฒฝ์ ์๋์ผ๋ก ์ฒ๋ฆฌ ํด์ฃผ๊ณ ์์ด์ ๋ณ๋์ stream์ ๋ง๋ค์ด ์ฌ์ฉํ์ง ์์์ต๋๋ค. ๋จ์ง ํ ๊ณณ์์ stream์ ์ด์ฉํ ๊ฒ์ด ์๋๋ฐ ๊ทธ๊ฒ์ firebase sns ๋ก๊ทธ์ธ ์ํ ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ๋ณ๊ฒฝ์ฌํญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ ์ฌ์ฉํ์ต๋๋ค. ์ ๋ฆฌํ์๋ฉด ๋์๋ฆฌ๋ทฐ์ฑ์์๋ future๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ฃผ๋ฅผ ์ด๋ฃจ๊ณ ์๊ณ stream์ sns ๋ก๊ทธ์ธ ์ฒ๋ฆฌ ๋ถ๋ถ์์ ์ฌ์ฉ๋์์ต๋๋ค. Q : ์ฝ๋์์ await๊ณผ async์ ์ฌ์ฉํ๊ฒ์ ๋ดค์๋ future๋ฐฉ์์ธ์ง ๊ถ๊ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ bloc์ด stream ๊ธฐ๋ฐ์ด๋ผ๊ณ ํ๋๋ฐ ๋๊ฐ์ง ๋ฐฉ์ ๋ค ์ฌ์ฉ๋๊ฑด์ง ๊ถ๊ธํฉ๋๋ค.A : Future๋ฅผ ์ฌ์ฉํ ๋๋ async๋ก ๋ง๋ค๊ณ ์ฌ์ฉํ๋์ชฝ์์ ๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ง๋๋ ค๊ณ ํ๋ฉด await์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. Stream์ ๊ฒฝ์ฐ async* ์ ์ฌ์ฉํ๊ณ ์ฌ์ฉํ๋ ๊ณณ์์ ๊ตฌ๋ ํ๊ธฐ ์ํด์๋ stream.listen์ ํจ์๋ฅผ ์ด์ฉํ๊ฒ ๋ฉ๋๋ค. Bloc์ด stream ๊ธฐ๋ฐ์ด์ง๋ง ์ด๋ป๊ฒ ์ฌ์ฉํ๋๋์ ๋ฐ๋ผ ๋จ๊ฑด์ผ๋ก ์ฒ๋ฆฌ ํ ์๋ ์๊ณ ์ง์์ ์ธ ์ฒ๋ฆฌ๋ ๊ฐ๋ฅํฉ๋๋ค. Q : widget_test๋ถ๋ถ์ ์ฌ์ฉ๋ await๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์ ์ค ํ๋์ธ๊ฑด๊ฐ์?A : ๋ค ๋ง์ต๋๋ค. await ํค์๋๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ๋ง์ผ๋ก๋ ๋น๋๊ธฐ ํจ์๋ฅผ ๋๊ธฐ๋ก ์ฒ๋ฆฌ ํ๊ณ ์๊ตฌ๋ ๋ผ๊ณ ์ดํดํ์๋ฉด ๋๊ฒ ์ต๋๋ค.
- 0
- 3
- 170
Q&A
์ ๋ฎฌ๋ ์ดํฐ ๋์์๋จ๊ณผ xcode ์คํ์๋จ
ํ๋ฌํฐ ๋ฒ์ ๊ณผ xCode ๋ฒ์ ์ด ์ด๋ป๊ฒ ๋๋์? ๊ฐ์๋ฅผ ์ํํ๊ฒ ๋ฐ๋ผ๊ฐ๊ธฐ ์ํด์๋ ํ๋ฌํฐ ๋ฒ์ 3.19.x ๋ฒ์ ํน์ ๊ทธ ์ดํ ๋ฒ์ ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ xCode ๋ฒ์ ์ 15.x๋ฒ์ ์ผ๋ก ์ค์นํ์๋ฉด ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ํ์ตํ์๋๋ฐ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ ๋๋ค. ๋ง์ผ ํ๋ฌํฐ ์ต์ ๋ฒ์ ์ ์ด์ฉํ์๊ณ xCode ์ต์ ๋ฒ์ ์ ์ด์ฉํ์๊ฒ ๋๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ํธํ์ฑ ๋ฌธ์ ๋ก ๊ฐ์๋ฅผ ๋ฃ๋๋ฐ ๋ค์ ์ด๋ ค์์ด ์์ ๊ฒ์ ๋๋ค. ์ด๋ฐ ๋ถํธํจ์ ๋๋ ค์ ์ฃ์กํฉ๋๋ค. ์๋ฌด๋๋ ๊ฐ์ ์ ์์๊ธฐ๊ฐ 1๋ ์ ์ด๋ค ๋ณด๋ ์ต์ ํ ์์ ์ด ๋์ง ์์์ต๋๋ค. ์ํํ ๊ฐ์๋ฅผ ์ํด์ ์ต์ ํ ๊ณผ์ ์ ์ ์ํด์ผ ํ๊ฒ ์ง๋ง ์ง๊ธ ๊ฐ์ธ์ ์ธ ์ฌ์ ์ผ๋ก ๊ฐ์ ์ ์์ ์ด๋ ค์์ด ์๋ ์ํ๋ผ ์ํด ๋ถํ๋๋ฆฝ๋๋ค.
- 0
- 1
- 147
Q&A
๊ธฐ๋ฅ๋ณ๋ก ์ ๋ฆฌ๊ฐ ๋์ง์์์
์๋์์ฑ๊ณผ ์ข์ธก์ ํด๋์ ์์ด์ฝ ๋ชจ์์ ๋ง์ํ์๋๊ฒ ๊ฐ์๋ฐ ํ์ฅ ํ๋ฌ๊ทธ์ธ์ด ์ ์์ ์ผ๋ก ์ค์น ๋์ด์๋์ง ํ์ธ์ด ํ์ํฉ๋๋ค. ์๋์์ฑ์ ๊ฒฝ์ฐ Dart : https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-codeFlutter : https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutterAwesome Flutter Snippets : https://marketplace.visualstudio.com/items?itemName=Nash.awesome-flutter-snippets๊ฐ ์ค์น๊ฐ ๋์ด์์ด์ผ ํ๊ณ ์ข์ธก์ ํด๋ ๋ฐ ํ์ผ ์์ด์ฝ ๊ด๋ จ์ Material Icon Theme : https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme์ ์ค์นํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
- 0
- 2
- 157
Q&A
ํด๋์ค ์ด๋ฆ ๋์ ๋ณ๊ฒฝ
Q : ํด๋์ค์ด๋ฆ์ MyApp์ผ๋ก ๋ณ๊ฒฝํ์๋ ํด๋น๋๋ const๋ค์ name ๋ถ๋ถ๊น์ง MyApp์ผ๋ก ๊ฐ์ด๋ณ๊ฒฝํ๋ ๋จ์ถํค๋ ์ด๋ค๊ฑด๊ฐ์?A : https://marketplace.visualstudio.com/items?itemName=Nash.awesome-flutter-snippetsํ์ฅ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์๊ณ sta ์ถ์ฝ์ด๋ก Stateless๋ Stateful ์์ ฏ์ ์์ฑํ๋ค๋ฉด ์๋์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๋ฉ๋๋ค. Q : ์ํฌํธํ๋๊ฑธ ๋ฐ๋ก ๊ฒ์ํ๋๊ฒA : ์ค๋ฅ๋๋ ๋ถ๋ถ์ ํด๋ฆญํ ๋ค์ Mac ๊ธฐ์ค : Command + . ๋๋ฅด์๋ฉด ๋ฉ๋๋ค. Window ๊ธฐ์ค : Ctrl + . ๋๋ฅด๋ฉด ๋ฉ๋๋ค. ๋จ์ถํค ๋ง๊ณ ๋ง์ฐ์ค๋ก๋ ๊ฐ๋ฅํ๋ฐ(์ฌ์ง) ์ค๋ฅ๋๋ ๋ถ๋ถ์ ์ปค์๋ฅผ ์์นํ๋ฉด ์ ๊ตฌ ์์ด์ฝ์ด ๋จ๊ฒ ๋ฉ๋๋ค, ๊ทธ๊ฑธ ํด๋ฆญํด๋ ๊ฐ๋ฅํฉ๋๋ค.
- 0
- 2
- 121
Q&A
๋จ์ถํค์ต์
https://marketplace.visualstudio.com/items?itemName=Nash.awesome-flutter-snippets์ VSCode ํ์ฅํ๋ฌ๊ทธ์ธ์ ์ค์นํ์๋ฉด ๋ฉ๋๋ค.
- 0
- 2
- 139
Q&A
์์กด์ฑ ์ธํ ์ด ๋๋๋ฉด
์ฝ๋๋ ํญ์ ์ ์ฅํด์ผ ํฉ๋๋ค. ๊ทธ๋์ผ ์ ์ฉ๋ฉ๋๋ค.
- 0
- 1
- 80