๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€208

flutter button widget ๋ฒ„ํŠผ ์œ„์ ฏ๋“ค import 'package:flutter/material.dart'; void main(){ runApp(MyApp()); } class MyApp extends StatelessWidget{ @override Widget build(BuildContext context){ return MaterialApp( home: Scaffold( body: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Center( child: const Text('hello', style: TextStyle( fontSize: 16.0, fontWeight: FontWeight.w700, color: Colors.blue, ), ), ), TextButto.. 2023. 7. 15.
์•„๋ฌดํŠผ ์‹œ๋ฆฌ์ฆˆ, ๋น„๊ฑด. ์•„๋ฌดํŠผ, ๋น„๊ฑด. ๊น€ํ•œ๋ฏผ ์•„๋ฌดํŠผ, ๋น„๊ฑด. ๊น€ํ•œ๋ฏผ ์ฐธ์œผ๋กœ ์‚ฌ๋žŒ๋‹ค์šด ์‚ถ์€ ๊ทธ๋ƒฅ ์กด์žฌํ•จ์˜ ์ฐจ์›์— ๋งŒ์กฑํ•˜๋Š” ์กฐ์šฉํ•œ ์‚ถ์ด ์•„๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋‹ต๊ฒŒ ์‚ฌ๋Š” ์‚ถ์€ ํƒ€์ž์— ๋ˆˆ๋œจ๊ณ  ๊ฑฐ๋“ญ ๊นจ์–ด๋‚˜๋Š” ์‚ถ์ด๋‹ค. - ๋ ˆ๋น„๋‚˜์Šค ์ž์‹ ์„ ๊ทœ์ •์ง“๋Š” ๊ฒƒ์— ์—ฐ์—ฐํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ, ๊ทœ์ •์„ ๋ชจ๋‘ ๋ฒ—์–ด๋˜์ง€๋Š” ๋ฐฉ์‹์ด์•ผ ๋ง๋กœ ๊ฐ€์žฅ ์‰ฌ์šด ๊ธธ์ด๋‹ค. ์ข‹๊ฒŒ ๋ณด๋ฉด ์ž์œ ๋กญ๊ณ  ์œ ์—ฐํ•ด ๋ณด์ผ์ง€ ๋ชฐ๋ผ๋„, ํ”ํ•ด๋น ์ง„ ๋ฌด์›์น™์˜ ํŽธ์˜์ฃผ์˜์ด๊ธฐ๋„ ํ•˜๋‹ค. ๋‚˜๋Š” ๋‚˜๋ฆ„์˜ ์ ˆ๋„๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋งค๋ ฅ์„ ๋Š๋‚€๋‹ค. ์ตœ์†Œํ•œ์œผ๋กœ ์ง€ํ‚ค๊ณ ์ž ํ•˜๋Š” ์„ ์ด ์žˆ์–ด์•ผ ๋•Œ๋•Œ๋กœ ๋‚˜๋ฅผ ๋Œ์•„๋ณด๊ณ  ์ ๊ฒ€ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์–ด์ฉŒ๋ฉด ๋ชจ๋“  ์œค๋ฆฌ๋Š” ์ตœ์†Œํ•œ์˜ ์œค๋ฆฌ์ด๋‹ค. ๋‹ค์‹œ ๋งํ•ด '์ ์–ด๋„ ~๋Š” ํ•˜์ง€ ์•Š๊ฒ ์–ด' ๋ผ๋Š” ์ž์„ธ์ด๋‹ค. ๊ทธ ์ตœ์†Œํ•œ์ด ์ ์  ์ปค์ง€๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์‚ด๊ณ  ์‹ถ๋‹ค. ๋น„๊ฑด์—๊ฒŒ๋งŒ ๋ชจ๋“  ๋ถ€๋‹ด์„ ์ง€์šฐ๊ณ  ์™„๋ฒฝํ•จ์„ ์š”๊ตฌํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€์„œ๋Š” ์ง„์ •ํ•œ ๋ณ€ํ™”๋ฅผ ์ด๋ค„๋‚ผ์ˆ˜.. 2023. 7. 11.
์ง€๊ตฌ ํ‰ํ‰๋ก ์ž์™€ ์ด์•ผ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆŒ๊ฒƒ์ธ๊ฐ€ ์ง€๊ตฌ๊ฐ€ ํ‰ํ‰ํ•˜๋‹ค๊ณ  ๋ฏฟ๋Š” ์‚ฌ๋žŒ๊ณผ ์ฆ๊ฒ๊ณ  ์ƒ์ƒ์ ์ธ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•, ๋ฆฌ ๋งคํ‚จํƒ€์ด์–ด ๊ณผํ•™๋ถ€์ •๋ก ์ž๋“ค์˜ ์ „ํ˜•์ ์ธ ๊ณตํ†ต์  1. ์ฒด๋ฆฌํ”ผํ‚น ๋ฐฉ์‹์œผ๋กœ ์ฆ๊ฑฐ๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค. 2. ์Œ๋ชจ๋ก ์„ ๋ฏฟ๋Š”๋‹ค. 3. ๊ฐ€์งœ ์ „๋ฌธ๊ฐ€์— ์˜์กดํ•œ๋‹ค.(๊ทธ๋ฆฌ๊ณ  ์ง„์งœ ์ „๋ฌธ๊ฐ€๋ฅผ ๋ฌด์‹œํ•œ๋‹ค.) 4. ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•œ๋‹ค. 5. ๊ณผํ•™์ด ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋›ฐ์–ด๋„˜๋Š” ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•œ๋‹ค. ์ฒซ๋ฒˆ์žฌ๋Š” ์–ด๋–ค ์‚ฌ์‹ค์„ ๋ถˆ์‹ ํ•˜๋Š” ์ด๋“ค์—๊ฒŒ ์ „๋ฌธ๊ฐ€๊ฐ€ ๊ณผํ•™์ ์ธ ์‚ฌ์‹ค์„ ์•Œ๋ ค์ฃผ๋Š” ๋‚ด์šฉ ๋ฐ˜๋ฐ•(content rebuttal)์ ‘๊ทผ๋ฒ•์œผ๋กœ, ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ ๋งค์šฐ ํšจ๊ณผ๊ฐ€ ์ปธ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ๊ธฐ์ˆ  ๋ฐ˜๋ฐ•(technique rebuttal) ์ ‘๊ทผ๋ฒ•์ธ๋ฐ ๊ณผํ•™ ๋ถ€์ •๋ก ์ž๋“ค์ด ์˜ˆ์™ธ์—†์ด ๋‹ค์„ฏ ๊ฐ€์ง€ ์ผ๋ฐ˜ ๋…ผ์ฆ(reasoning)์˜ ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•œ๋‹ค๋Š” ๊ฐ€์„ค์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฝํ•œ, ๋น„๊ต์  ์•Œ๋ ค์ง€์ง€ ์•Š์€ .. 2023. 7. 11.
dart ๊ธฐ์ดˆ var, dynamic var๋Š” ์ž์œ ๋กœ์šด ํƒ€์ž…์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฒ˜์Œ์— ์ €์žฅ๋œ ๋ณ€์ˆ˜์˜ ํƒ€์ž…๋ง๊ณ  ๋‹ค๋ฅธ ํƒ€์ž…์€ ์ €์žฅ๋ ์ˆ˜ ์—†์Œ dynamic์€ ์ฒ˜์Œ์— ์ €์žฅ๋œ ํƒ€์ž…๊ณผ๋Š” ์ƒ๊ด€์—†์ด ๋ฌด์Šจ ํƒ€์ž…์ด๋“  ์ €์žฅ ๊ฐ€๋Šฅ var name = 'abc'; name = 'ddd'; name = 3; //error dynamic name2 = 'abc'; name2 = 'ddd'; name2 = 3; //ok const, final ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ๊ฐ’์ด ํ™•์ •๋˜๋ฉด const, ์‹คํ–‰๋ ๋•Œ ํ™•์ •๋˜๋ฉด final final DateTime now = DateTime.now(); //๋Ÿฐํƒ€์ž„ ์ƒ์ˆ˜ const DateTime now2 = DateTime.now(); //error. ๋นŒ๋“œํƒ€์ž„ ์ƒ์ˆ˜์ž„. ๋นŒ๋“œํƒ€์ž„์— ๊ฐ’์„ ์•Œ์•„์•ผํ•˜๋Š”๋ฐ.. 2023. 7. 4.
ํ”„๋ž‘์Šค ์•„์ด์ฒ˜๋Ÿผ. ๋‚˜๋„ ํ”„๋ž‘์Šค ์—„๋งˆ๋“ค์ฒ˜๋Ÿผ. ํ”„๋ž‘์Šค ๋ถ€๋ชจ๋“ค์€ ์–ด๋–ค ๋นˆ๋„๋กœ ์•„๊ธฐ์—๊ฒŒ ์ˆ˜์œ ๋ฅผ ํ•ด์•ผํ• ์ง€ ๊ณ ๋ฏผํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€๋žต 4๊ฐœ์›”๋ถ€ํ„ฐ ๋Œ€๋‹ค์ˆ˜ ํ”„๋ž‘์Šค ์•„๊ธฐ๋“ค์€ ์ •ํ•ด์ง„ ์‹œ๊ฐ„์—๋งŒ ๋จน๋Š”๋‹ค. ์ˆ˜๋ฉด๊ธฐ๋ฒ•์ฒ˜๋Ÿผ ์ˆ˜์œ  ์—ญ์‹œ ์—ฌ๋Ÿฟ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ์•ผ ํ•  ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ๊ฒƒ์ด๋‹ค. ๊ธฐ๋‹ค๋ฆผ์€ ์‹ฌ์ง€์–ด ์–‘์œก์˜ ์ผ๋ถ€๊ฐ€ ๋œ๋‹ค. ์†Œ๋ž€์„ ํ”ผ์šฐ๋Š” ์•„์ด๊ฐ€ ์žˆ์„ ๋•Œ ํ”„๋ž‘์Šค ๋ถ€๋ชจ๋“ค์ด '์กฐ์šฉํžˆ ํ•ด'๋‚˜ '๊ทธ๋งŒํ•ด' ๊ฐ™์€ ๋ง๋ณด๋‹ค ๋” ์ž์ฃผ ์“ฐ๋Š” ๋ง์ด ์žˆ๋‹ค. ๊ทธ๋“ค์€ ๋งค์šฐ ์—„๊ฒฉํ•˜๊ณ  ๋‚ ์นด๋กœ์šด ์–ด์กฐ๋กœ ๋งํ•œ๋‹ค. '์•„ํƒ•(attend), ๊ธฐ๋‹ค๋ ค!' ์Šค์Šค๋กœ ํ†ต์ œ๋ฅผ ํ•  ์ค„ ์•Œ์•„์•ผ ์ฆ๊ธธ ์ž๊ฒฉ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๋ฟ์ด๋‹ค. ํ”„๋ž‘์Šค ๋ถ€๋ชจ๋“ค์˜ ์ž๋…€๊ต์œก ๋ฐฉ์‹์€ ์ปค๋‹ค๋ž€ ๋งฅ๋ฝ์—์„œ '๋งˆ์‹œ๋ฉœ๋กœ๋ฅผ ๊ณง๋ฐ”๋กœ ๋จน์ง€ ์•Š๋Š” ๋ฒ•์„ ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ'๊ณผ ์ผ๋งฅ์ƒํ†ตํ•œ๋‹ค. '์ž˜ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์•„์ด๋“ค์€ ๊ทธ ๋™์•ˆ ํ˜ผ์ž์„œ ์กฐ๊ทธ๋งฃ๊ฒŒ ๋…ธ๋ž˜๋ฅผ ๋ถ€๋ฅด๊ฑฐ๋‚˜ ๊ท€๋ฅผ ์žก์•„๋‹น๊ธฐ๊ฑฐ๋‚˜ ๋ฐœ๊ฐ€๋ฝ ์žฅ๋‚œ์„ .. 2023. 7. 1.
flutter ํ”Œ๋Ÿฌํ„ฐ firestore์—์„œ ๋ฐ์ดํ„ฐ ์ฝ์–ด์˜ค๊ธฐ 1. ๋ชจ๋ธ ์ƒ์„ฑ QuerySnapshot ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ๋•Œ, ์›ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜ค๊ฒŒ ํ•จ. (Category ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์œผ๋กœ ํŒŒ์ด์–ด์Šคํ† ์–ด์— data writing๋œ ์ƒํƒœ) class HomeModel { final Stream categoriesStream = FirebaseFirestore.instance .collection(Constants().categories) .withConverter( fromFirestore: (snapshot, _) => Category.fromJson(snapshot.data()!), toFirestore: (category, _) => category.toJson(), ) .snapshots(); } 2. ์ถœ๋ ฅ์„ ์›ํ•˜๋Š” ์œ„์ ฏ์—์„œ StreamBuilder๋กœ ๊ฐ.. 2023. 6. 28.
flutter ํ”Œ๋Ÿฌํ„ฐ firestore์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ 1. cloud_firestore ์˜์กด์„ฑ ์ถ”๊ฐ€ ํ„ฐ๋ฏธ๋„์—์„œ flutter pub add cloud_firestore 2. firebase ์ฝ˜์†”์—์„œ firestore ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜๊ธฐ ์šฐ์„  ํ…Œ์ŠคํŠธ ๋ชจ๋“œ๋กœ ์‹œ์ž‘ 3. project/android/app/build.gradle ํŒŒ์ผ์˜ minsdkVersion์„ 21๋กœ ๋ณ€๊ฒฝ 4. uploadํ•  ๋ชจ๋ธ ํด๋ž˜์Šค ์ƒ์„ฑ class Category{ int id; String name; Category({ required this.id, required this.name }); //firestore์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ๋Š” json์œผ๋กœ ๋ฐ›์Œ factory Category.fromJson(Map json){ return Category( id: json['id'] as int, n.. 2023. 6. 27.
flutter ํ”Œ๋Ÿฌํ„ฐ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ดˆ๊ธฐ ์„ธํŒ… 1. ์šฐ์„  ํ”Œ๋Ÿฌํ„ฐ ํ”„๋กœ์ ํŠธ๋Š” ๋งŒ๋“ค์–ด ๋†“์€ ์ƒํƒœ์ž„ 2. ํŒŒ์ด์–ด๋ฒ ์ด์Šค ํ”„๋กœ์ ํŠธ๋„ ํ•˜๋‚˜ ํŒŒ๋†“์Œ 3. ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ฝ˜์†”๋กœ ์ด๋™ํ•ด์„œ flutter ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ 3.1 ์ž‘์—…๊ณต๊ฐ„ ์ค€๋น„๋Š” ๋๋‚ด๋†“์Œ 3.2 flutterfire cli ์„ค์น˜ ๋ฐ ์‹คํ–‰๋„ ์™„๋ฃŒ 4. ํ”„๋กœ์ ํŠธ ํด๋” lib/firebase_options.dart ํŒŒ์ผ ์ƒ์„ฑ๋œ๊ฒƒ์„ ํ™•์ธ - ๋‹ค๋งŒ ๋‚ด๋ถ€์ ์œผ๋กœ firebase_core ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์—†์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์žˆ๋Š” ์ƒํƒœ์ž„ 5. firebase_core ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ flutter pub add firebase_core - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ ์˜ค๋ฅ˜ ์‚ฌ๋ผ์ง 6. main.dart ํŒŒ์ผ์— ์•„๋ž˜ ๋‚ด์šฉ ์ž…๋ ฅ import 'package:firebase_core/firebase_core.dart'; imp.. 2023. 6. 26.
flutter ํ”Œ๋Ÿฌํ„ฐ csv ํŒŒ์ผ ์ฝ๊ธฐ ๊ธฐ๋Šฅ : ํ™”๋ฉด์—์„œ ํŠน์ • ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด csv ํŒŒ์ผ์„ ์ฝ์–ด์˜จ๋‹ค. 1. pub csv ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ https://pub.dev/packages/csv/install csv | Dart Package A codec to transform between a string and a list of values. The string must be comma (configurable) separated values. pub.dev flutter pub add csv pubspec.yaml ํŒŒ์ผ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋“ฑ๋ก๋จ์„ ํ™•์ธ dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use .. 2023. 6. 26.