flutter 14

quicktype.io 를 통해서 데이터 객체 생성하기

https://app.quicktype.io/ 여기를 이용하면 귀찮은 데이터 객체 생성하기를 해주고 관련 함수도 만들어 준다. - 나는, Put encoder & decoder in Class 체크를 풀어서 class 밖에 생성되는 목록관련 함수들을 클래스 안으로 넣고 static 메서드로 변환해 주니까 편하드라. import 'dart:convert'; class Product { String name; int age; Product({ required this.name, required this.age, }); factory Product.fromRawJson(String str) => Product.fromJson(json.decode(str)); String toRawJson() => json.e..

flutter 2023.09.04

Getx - Reactive State manager 방식들

사용하는 방법들이 여러가지가 있어서 간단하게 해서 정리나열을 해봄 import 'package:get/get.dart'; import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return GetMaterialApp( home: PersonalCard(), ); } } class Person { int age = 0; String? name = ""; } class Controller extends GetxController { fin..

flutter/기타 2023.09.04

다른 앱으로부터 공유받기 - flutter_sharing_intent

- https://pub.dev/packages/flutter_sharing_intent 사용 - 안드로이드에서는 AndroidManifest.xml에 다음을 추가 main.dart import 'package:flutter/material.dart'; import 'dart:async'; import 'package:flutter_sharing_intent/flutter_sharing_intent.dart'; import 'package:flutter_sharing_intent/model/sharing_file.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatefulWidget { const MyApp({super.key});..

flutter 2023.09.03

Flutter를 Chrome에서 실행할 때 생기는 Cors문제 회피

개발 단계서는 일단 크롬에서 실행해서 개략의 실행을 해보는데, Cors API에러가 잘난다. SDK에서 설정을 일단 이렇게 설정해서 보안문제 넘어가보자. 1. flutter\bin\cache 위치로 이동 후 flutter_tools.stamp 파일 제거 2. flutter\packages\flutter_tools\lib\src\web 위치로 이동 후 chrome.dart 파일 open 3. '--disable-extensions' 찾기 4. 해당 위치에 '--disable-web-security' 추가하기 https://kjmhercules.tistory.com/8

flutter/기타 2023.08.13

infinite scroll 구현 - 패키지 예제 단순화 함

플러터에서 무한스크롤을 구현하는 다음의 패키지가 있는데, 그 안의 예제가 좀 복잡해서 단순화 해 봄. 예제안의 api URL도 동작안하길래 다른 곳으로 바꾸고, 또 혹시 몰라서 첨부파일에 그 json 받은 파일도 넣어 놨음.;;;; https://github.com/EdsonBueno/infinite_scroll_pagination/ https://pub.dev/packages/infinite_scroll_pagination import 'package:flutter/material.dart'; import 'dart:convert'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:http/http.dart..

flutter/기타 2023.08.13

Firebase로 회원 생성 / 로그인

Firebase로 회원을 생성하고 로그인 하고, 다른 페이지에 currentUser로 해당 사용자의 정보를 쓸수 있다. 최소한의 예제이니 그냥 main함수에 때려넣음;;; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:firebase_core/firebase_core.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); final _authentification = FirebaseAuth.instance; String userEmail..

flutter/기타 2022.05.19

RenderBox was not laid out: RenderRepaintBoundary 에러

======== Exception caught by rendering library ===================================================== The following assertion was thrown during performLayout(): RenderBox was not laid out: RenderPointerListener#3eb68 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE 'package:flutter/src/rendering/box.dart': Failed assertion: line 1982 pos 12: 'hasSize' 대략 이런 에러가 날때가 있다. Listview를 col..

flutter/기타 2022.05.19

TextFormField

- textfield에서 controller들을 관리하는게 번거로우니 쓰자. - StatefulWidget에서 Form 위젯안에 넣음. - Form위젯에 global 키를 지정하고 후에 validation에서 이 키로 form에 접근 if (_formKey.currentState!.validate()) { _formKey.currentState!.save(); } import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: MyHome(), ..

flutter/widget 2022.05.19

Value Key

타입이 같은 위젯들의 식별을 위함. - Flutter는 기본적으로 위젯의 타입으로 식별 - Stateful 위젯의 식별을 위해서는 key 필요 - value key는 value값을 가지는 stateful 위젯을 식별하는데 사용한다. import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: MyHome(), ); } } class MyHome extends StatefulWidget { @override State createState() ..

flutter 2022.05.15

Snackbar 케이스 정리

1. ScaffoldMessenger 이용 ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text("스낵바!") )); 2. Global Key & scaffoldMessengerKey 이용 최상위 위젯 MaterialApp단위에서 scaffoldMessenger에 global Key를 사용하여 Snackbar 사용 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); final rootScaffoldKey = GlobalKey(); class MyApp extends StatelessWidget { @override Widget build(BuildContext c..

flutter/widget 2022.05.15

FutureBuilder

- 수행하는데 오래걸리는 일이 있을 때, 시점에 따라서 다른 UI를 보여줄 때 씀. - 매개변수 * future : 수행하는 (오래걸리는) 일 함수(네트워크나 복잡한 계산 등) * builder: (context, _snapshot) .. 상태가 변할 때마다 호출됨. _snapshot.done이면 완료되었다. .. 표시할 위젯을 리턴하자 .. future의 리턴값이 _snapshot.data에 들어있다. 최소 예제 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return ..

flutter/widget 2022.05.14