본문 바로가기

study/flutter

(23)
플러터(flutter) 비동기에서 퓨처함수 한번만 실행하기(asyncMemoizer.runOnce()) asyncMemoizer.runOnce()를 이용하면 stateful 위젯에서 변경이 생겻을 때만 변화가 일어난다. 변경이 생기지 않았을때는 기존 로컬에 있는 데이터를 가져와서 기존 데이터를 뿌려주기 때문에 성능에 좋다. 만약 asyncMemoizer.runOnce()를 사용하지 않으면 stateful 상황에서 변화가 생기든 생기지 않든 다시 build를 실행해 기존에 있던 데이터가 아닌 다시 데이터를 가져옴으로 성능에 좋지 않다. Future를 이용한 함수를 사용할때에는 FutureBuilder 위젯을 사용한다. FutureBuilder 위젯을 사용할때에는 builder: 와 future: 속성이 들어가야한다. builder: 부분엔 UI관련 future: 부분엔 Future 함수를 이용한 함수를 넣으..
플러터(flutter) TextField 밑줄 텍스트랑 가까이 붙히기(isDense:) TextField의 isDense의 값이 true일 때에는 텍스트와 밑줄 사이의 간격이 좁다. TextField의 isDense의 값이 false일 때에는 테긋트와 밑줄 사이의 간격이 ture에 비해 넓다. TextField의 isDense 값이 true일 때 TextField의 isDense 값이 false일 때
플러터(flutter) BottomSheet 날짜 선택 pubspec.yaml 파일에 패키지추가 패키지 import 전체 소스코드 import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:intl/intl.dart'; // Date Format 사용시 사용하는 패키지 void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); // This widget is the root of your application. @overr..
플러터(flutter) TextField 초기값 설정 set text 1. 아래와 같이 Controller 안에 text를 지정해주면 2. text field에 컨트롤러 연결 3. 앱 확인 위 사진과 같이 잘 초기값 셋팅이 되며 데이터베이스에도 잘 들어감
플러터(flutter) GestureDetector 이벤트 및 Navigator Widget Information(BuildContext context) { return Container( width: MediaQuery.of(context).size.width, padding: const EdgeInsets.only(top: 10), // 제스터 이벤트 child: GestureDetector( behavior: HitTestBehavior.opaque, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Container( padding: const EdgeInsets.only(left: 30), child: Text( '내 정보 확인 / 변경', style: TextStyle(fontSize: 2..
플러터(flutter) 버튼 클릭시 진동 쿠퍼티노 버튼 이용 Container( padding: const EdgeInsets.only(right: 10, left: 10), width: MediaQuery.of(context).size.width, child: CupertinoButton( child: Text('내 정보 변경하기'), color: Colors.lightGreen, onPressed: () { HapticFeedback.mediumImpact(); // 버튼 클릭 시 진동울림 Navigator.push( context, CupertinoPageRoute( builder: (context) => InformationUpdate(), )); }), ),
플러터(flutter) 베너 달기 (이미지 이용) class Page3 extends StatefulWidget { const Page3({Key? key}) : super(key: key); @override _Page3State createState() => _Page3State(); } class _Page3State extends State { List imgList = [ 'https://images.unsplash.com/photo-1522205408450-add114ad53fe?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=368f45b0888aeb0b7b08e3a1084d3ede&auto=format&fit=crop&w=1950&q=80', 'https://images.unsplash.com/photo-151..
플러터(flutter) Android FCM 백그라운드, 포그라운드 알림 flutter + firebase FCM을 이용하여 알림 PUSH -- Android 1. Flutter 프로젝트 생성 - flutter_firebase_test_app 프로젝트 생성 2. 패키지 주소 확인 - 프로젝트/android/app/src/main/AndroidManifest.xml 파일 안에서 확인 - 패키지 주소 = com.example.flutter_firebase_test_app 이라는 것을 확인하였음 3. Firebase 생성 3.1 Firebase 프로젝트 추가 3.2 프로젝트 이름 설정 - 원하는 firebase 프로젝트 이름 생성 3.3 프로젝트 옵션 선택 - FCM 테스트 목적이기 때문에 애널리틱스는 사용하지 않음 3.4 프로젝트가 만들어지는 동안 기다리기 3.5 프로젝트 생성 ..