์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ํ์ด์ฌ
- REACT
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ
- db
- ์น๋์๋ณด๋ ๊ธฐ์ด
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- Android
- MySQL
- ์๋๋ก์ด๋ ์คํ๋์ค
- streamlit
- ํ์ด์ฌ๊ณต๋ถ
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- Streamlit๊ธฐ์ด
- ํ๋ค์ค๊ณต๋ถ
- RESTful API
- java
- Flutter
- ์น๋์๋ณด๋ ์ ์
- Pandas
- ์๋ฐ์ด๋ณด
- ํ๋ค์ค
- JavaScript
- ์คํธ๋ฆผ๋ฆฟ
- serverless
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฐ๊ธฐ์ด
- ์๋ฐ๊ณต๋ถ
- Today
- Total
๋ชฉ๋ก๐ฑFlutter/Flutter Framework (10)
ruriruriya

์น๋ทฐ ์ฑ์ ๋ง๋ค๋ฉด ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ์ ๋๋ฅผ ๋ ์ฑ์ด ๊บผ์ง๋ ํ์์ด ๋ฐ์ํ๋ค.๊ทธ๋ด ๋ ์ฑ ๊ฐ๋ฐ ์ชฝ์์ ์ปจํธ๋กค์ ํด์ค์ผ ํ๋ค.ํ๋ฌํฐ๋ก ๊ทธ๋ ๊ฒ ์ปจํธ๋กค ๊ธฐ๋ฅ ๊ตฌํํ์ฌ ๊ธฐ๋กํ๋ค.ํ์ง๋ง iOS๋ ๋ค๋ก๊ฐ๊ธฐ ์ค์์ดํ ๊ธฐ๋ฅ์ด ์๋๋ฐ webview_flutter ํจํค์ง์์๋ ๊ตฌํ์ ํ์ง ๋ชปํ๋ค.InAppWebView๋ก๋ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค๋ ๋ฐ ๋ค์์ InAppWebView๋ก ์น๋ทฐ๋ฅผ ๊ตฌํํด์ ํด๋ด์ผ๊ฒ ๋ค. 0. ์น๋ทฐ ๊ตฌํํ๊ธฐhttps://ruriruriya.tistory.com/270 [Flutter] ํ๋ฌํฐ ์น๋ทฐ ์ฑ ๋ง๋ค๊ธฐ (package:webview_flutter)ํ๋ฌํฐ๋ก ์น๋ทฐ ์ฑ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ! ๋ ธ์น์ ์ํ๋ฐ ๋ถ๋ถ SafeArea๋ก ์ฒ๋ฆฌํด์ ํธ์ํ๊ฒ ๋ณผ ์ ์๋๋ก ํ๋ค.0. ํ๋ก์ ํธ ์์ฑ์ ์๋ต.. 1. ์น๋ทฐ ํ๋ฌ๊ทธ์ธ(w..

ํ๋ฌํฐ๋ก ์น๋ทฐ ์ฑ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ! ๋ ธ์น์ ์ํ๋ฐ ๋ถ๋ถ SafeArea๋ก ์ฒ๋ฆฌํด์ ํธ์ํ๊ฒ ๋ณผ ์ ์๋๋ก ํ๋ค.0. ํ๋ก์ ํธ ์์ฑ์ ์๋ต.. 1. ์น๋ทฐ ํ๋ฌ๊ทธ์ธ(webview_flutter) ์ถ๊ฐ - pubspec.yaml์๋์ ๊ฐ์ด dependencies ์ถ๊ฐํ๊ณ ํฐ๋ฏธ๋์์ pub get์ผ๋ก ํจํค์ง ์ถ๊ฐdependencies: flutter: sdk: flutter webview_flutter: ^4.11.0 # (์ต์ ๋ฒ์ ํ์ธ) 2. ๋ค์ดํฐ๋ธ๋ณ ์ค์ 2.1. Androidandroid/app/src/main/AndroidManifest.xml ์ ์ธํฐ๋ท ๊ถํ ์ถ๊ฐ ... 2.2. iOSios/Runner/Info.plist ์ ์๋ ๋ด์ฉ ์ถ๊ฐiOS ์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด์์..
Provider๋ Flutter์์ ๊ณต์์ ์ผ๋ก ์ถ์ฒํ๋ Flutter ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํจํค์ง์ด๋ค. 1. Provider๋?Provider๋ Flutter์ InheritedWidget์ ๊ฐํธํ๊ฒ ์ฌ์ฉํ๋๋ก ๋๋ ํจํค์ง๋ก ์ฌ๋ฌ ์์ ฏ์์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ณ , ์ํ ๋ณ๊ฒฝ์ ๊ฐ์งํ์ฌ UI๋ฅผ ์๋์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์๋ค.โ Provider๋ฅผ ์ฌ์ฉํ๋ฉด ์ข์ ์ ๋ฆฌ์์ค ํ ๋น ๋ฐ ํด์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ํด์ง→ ๋ถํ์ํ ๋ฆฌ์์ค ์ฌ์ฉ์ ์ค์ด๊ณ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ ์ ์์.Lazy-loading ์ง์→ ํ์ํ ๋๊น์ง ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์์์ ์ฑ๋ฅ ์ต์ ํ๊ฐ ๊ฐ๋ฅํจ.๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋ ๊ฐ์→ ์ ํด๋์ค๋ฅผ ์์ฑํ ๋๋ง๋ค ๋ฐ๋ณต๋๋ ์ฝ๋๊ฐ ์ค์ด๋ฆ.Flutter DevTools์ ํธํ→ DevTools์์ ์ฑ ์ํ๋ฅผ..

Flutter์์ ์ํ ๊ด๋ฆฌ๋ UI๊ฐ ๋ณํํ๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ์งํ๊ณ ๋ฐ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ํ ๊ด๋ฆฌ๊ฐ ์ค์ํ ์ด์ ๋ Flutter์ ์ ์ธ์ UI ๋ฐฉ์ ๋๋ฌธ์ด๋ค. ์ฆ, UI๋ ์ํ(state)์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๋ฏ๋ก ์ด๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃจ๋๋์ ๋ฐ๋ผ ์ฑ์ ๊ตฌ์กฐ์ ์ ์ง๋ณด์์ฑ์ด ๋ฌ๋ผ์ง๋ค.์ฌ๊ธฐ์๋ Flutter์ ๊ธฐ๋ณธ ์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๋ค. ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Provider, Riverpod ๋ฑ)๋ฅผ ์ฌ์ฉํ์ง ์๊ณ Flutter์์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ๋ง ๋ค๋ฃฌ๋ค.1. ์ํ(State)๋?Flutter์์ ์ํ๋ ์ฑ์ UI๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ์ดํฐ์ด๋ค. ์ํ๋ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋๋ค:Ephemeral state (๋จ๊ธฐ ์ํ): ํน์ ์์ ฏ ๋ด์์๋ง ๊ด๋ฆฌ๋๋ ์ํ (์: TextField ์ ๋ ฅ๊ฐ, ๋ฒํผ ํด๋ฆญ ์ฌ๋ถ ๋ฑ)App ..

1. Flutter์์ ๋ ์ด์์์ด๋?Flutter๋ UI๋ฅผ ๊ตฌ์ฑํ๋ ์์ ฏ(toolkit)์ด๋ฉฐ, ๋๋ถ๋ถ์ ์์ ์ ์์ ฏ์ ์ด์ฉํ์ฌ ๋ ์ด์์์ ๋ง๋๋ ๋ฐ ์ง์ค๋๋ค. ๋ชจ๋ ์์(ํ ์คํธ, ์ด๋ฏธ์ง, ์์ด์ฝ, ๋ฒํผ ๋ฑ)๋ ์์ ฏ์ด๋ฉฐ, ๋ณด์ด์ง ์๋ ์์์ธ ํ(Row), ์ด(Column), ๊ทธ๋ฆฌ๋(Grid) ๋ฑ๋ ์์ ฏ์ด๋ค.์์ ฏ์ ์กฐํฉํ์ฌ ๋ ๋ณต์กํ UI๋ฅผ ๋ง๋ค ์ ์์ผ๋ฉฐ, ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ชจ๋ Flutter ๋ ์ด์์์ด ๊ตฌ์ฑ๋๋ค. 2. ๋ ์ด์์์ ํต์ฌ ๊ฐ๋ 2.1. ConstraintsFlutter์์ ๋ ์ด์์์ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ, ๋ถ๋ชจ ์์ ฏ์ ์์ ์์ ฏ์๊ฒ Constaraints๋ฅผ ์ ๋ฌํ๋ค.Constaraints์ ์ต์ ๋ฐ ์ต๋ ๋๋น, ์ต์ ๋ฐ ์ต๋ ๋์ด๋ฅผ ํฌํจํ๋ 4๊ฐ์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค.์์ ์์ ฏ์ ํด๋น Con..

ํ๋ฌํฐ์์ Scaffold ์์ ฏ์ ์ฑ์ ํ๋ฉด ๋ ์ด์์์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ์ ์ธ ํ์ ์ ๊ณตํ๋ค.๋ชจ๋ ํ๋ฌํฐ ์ฑ์ ํ๋ฉด์ ๋ณดํต Scaffold ์์ ฏ์ผ๋ก ์์๋๋ค.Scaffold๋ AppBar, body, FloatingActionButton ๋ฑ์ ํฌํจํํ๋ฌํฐ์ Material Design ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ผ ๊ธฐ๋ณธ UI ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ค.Scaffold๋ฅผ ์ฌ์ฉํ๋ฉด, ๊ธฐ๋ณธ ๋ ์ด์์์ ๋น ๋ฅด๊ฒ ์ค๊ณํ ์ ์๊ณ , Material Design ์คํ์ผ ๊ฐ์ด๋๊ฐ ๊ธฐ๋ณธ ์คํ์ผ์ ์ ์ฉ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊น๋ํ๊ฒ ์ ์ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , body ์์ญ์ ์ํ๋ ๋ชจ๋ ์์ ฏ์ ๋ฐฐ์นํ์ฌ ๋ณต์กํ ๋ ์ด์์ ์ค๊ณ๋ ๊ฐ๋ฅํ๋ค.Scaffold ์ฃผ์ ์์ฑ1. appBarํ๋ฉด ์๋จ์ ๋ํ๋๋ AppBar ์์ญ.์ ๋ชฉ, ๋ฒํผ, ๋ฉ๋ด ๋ฑ์ ํฌํจํ ์ ์๋ค.Scaff..

build ๋ฉ์๋๋ Flutter์์ UI๋ฅผ ๊ทธ๋ฆฌ๋ ํต์ฌ์ ์ธ ์ญํ ์ ํ๋ค.Flutter์์ UI๋ ์์ ฏ์ผ๋ก ๊ตฌ์ฑ๋๊ณ , build ๋ฉ์๋๋ ์ด ์์ ฏ๋ค์ด ํ๋ฉด์ ์ด๋ป๊ฒ ๋ฐฐ์น๋๊ณ ํ์๋ ์ง ์ ์ํ๋ค.build ๋ฉ์๋ ํธ์ถ ์๊ธฐ?1. ์ฒ์ ์์ ฏ์ด ํ๋ฉด์ ์ถ๊ฐ๋ ๋์์ ฏ์ด Flutter ์ฑ ํธ๋ฆฌ์ ์ฝ์ ๋๋ฉด, build ๋ฉ์๋๊ฐ ํธ์ถ๋๋ค.2. ์์ ฏ์ ์์กด์ฑ์ด ๋ณ๊ฒฝ๋ ๋์๋ฅผ ๋ค์ด, ์์ ฏ์ด ์ฐธ์กฐํ๋ InheritedWidget์ด ์ ๋ฐ์ดํธ๋๋ฉด, ํด๋น ์์ ฏ์ build ๋ฉ์๋๊ฐ ๋ค์ ํธ์ถ๋๋ค.3. ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋(StatefulWidget)์ํ๊ฐ ๋ณํ๋ฉด build ๋ฉ์๋๊ฐ ํธ์ถ๋์ด UI๊ฐ ์ ๋ฐ์ดํธ๋๋ค. build ๋ฉ์๋์ ํน์ง๋ฐํ๊ฐํญ์ ๋ค๋ฅธ ์์ ฏ์ ๋ฐํํด์ผ ํ๋ค.์๋ฅผ ๋ค์ด, ํ ์คํธ๋ฅผ ํ์ํ๊ฑฐ๋ ๋ฒํผ์ ์์ฑํ๋ ์์ ฏ์ ๋ฐํ..

ํ๋ฌํฐ์์ ์์ ฏ(Widget)์ด๋?ํ๋ฌํฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ์์์ด๋ค.๊ฐ ์์ ฏ์ ํ ์คํธ๋ ๋ฒํผ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์์๋ถํฐ ๋ ์ด์์ ํจ๊ณผ๊น์ง ์ธํฐํ์ด์ค์ ๋ชจ๋ ์ธก๋ฉด์ ๊ตฌํํ๋ ๊ณณ์ ์ฌ์ฉ๋๋ค.์์ ฏ ๊ณ์ธต ๊ตฌ์กฐ์์ ฏ์ ๊ตฌ์ฑ(Composition)์ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํ์ฑํ๋ค.๊ฐ ์์ ฏ์ ๋ถ๋ชจ ์์ ฏ ๋ด๋ถ์ ์ค์ฒฉ๋๋ฉฐ, ๋ถ๋ชจ๋ก๋ถํฐ Context๋ฅผ ์ ๋ฌ ๋ฐ๋๋ค.์ด ๊ตฌ์กฐ๋ ๋ฃจํธ ์์ ฏ๊น์ง ์ฐ๊ฒฐ๋๋ค.import 'package:flutter/material.dart';void main() => runApp(const MyApp());class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(Bui..