전체 글

전체 글

    [Flutter] GridView, CustomScrollView

    GridView로 만드는 격자 레이아웃 GridView.builder( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2 ), itemCount: list자료.length, itemBuilder: (c, i) { return Container(color : Colors.grey); } ), ListView와 똑같이 자동으로 스크롤바가 생기는 GridView grid가 몇개 생성될지 미리 알고 있으면 GridView.count 쓰고 grid가 몇개 생성될지 아직 모르겠으면 GridView.builder 쓰면 된다 ListView, GridView를 쓰는데 상단엔 다른 레이아웃이 필요해서 Column 쓰면 되는데 그럼 Lis..

    [Flutter] MultiProvider

    store는 여러개 만들어도 상관없다 state가 100개면 하나의 class에 보관하기는 힘들다 관련있는 staet들을 묶어서 각각 별개의 store로 만들면 나중에 편리하다 class Store1 extends ChangeNotifier { var name = 'john kim'; } class Store2 extends ChangeNotifier { var follower = 0; follower 변경함수들~~ } store가 많은 경우 store 등록하는 법 // provider가 하나일때 // runApp(ChangeNotifierProvider( // create: (c)=>Store1(), // child: MaterialApp( // theme: style.theme, // home: My..

    [Flutter] Provider

    Flutter에서 전역 상태 관리를 하거나 위젯간에 상태를 공유하기 위해 사용되는 Provider를 알아보자 provider | Flutter Package Provider란 만약에 부모 커스텀 위젯에 있던 state를 자식 커스텀 위젯으로 보내고 싶으면 3-step으로 보내야 한다. 하지만 부모 → 자식이 아니라 부모 → 자식 → 손자 위젯으로 보내고 싶으면 어떻게 할까? 2번 보내면 된다 하지만 상태를 표시하기 위해 불필요한 위젯들이 re-build 되면서 성능 이슈가 발생할 수 있고 커스텀 위젯이 많아지면 많아질 수록 끔찍해진다 Provider는 이 문제를 해결하기 위해 등장했으며, 이렇게 동일한 상태(데이터)를 전역적으로 다른 위젯들과 공유할 때 사용한다 전송 없이 모든 위젯이 state를 직접 ..

    [Flutter] Shared preferences

    Shared Preferences 앱을 껐다가 켜면 state는 초기화된다. 그래서 state 안에 있던 데이터를 어딘가 저장해 두고 싶으면 서버로 보내서 DB에 저장을 하든가 아니면 shared preferences라는 로컬 공간에 저장하면 된다. 이는 웹에서 로컬 스토리지처럼 앱 데이터 삭제를 누르지 않는 이상 영구적으로 남아있다. shared_preferences 설치 shared_preferences: ^2.0.11 import 'package:shared_preferences/shared_preferences.dart'; import 'dart:convert'; // 유용한 함수가 들어있는 기본 패키지 shared preferences에 데이터 저장하는 법 saveData(){ var stora..

    [Flutter] GestureDetector

    GestureDetector 유저가 위젯을 어떻게 만지는지 감지할 수 있다 onTap: (){ 한 번 누를시 실행할 코드 } onDoubleTap: (){ 더블탭시 실행할 코드 } onLongPress: (){ 길게누를시 실행할 코드 } onScaleStart: (){ 줌인시 실행할 코드 } onHorizontalDragStart: (){ 수평으로 드래그시 실행할 코드 } 등등 Navigator.push(context, PageRouteBuilder( pageBuilder: (c, a1, a2) => Upload(), transitionsBuilder: (c, a1, a2, child) => FadeTransition(opacity: a1, child: child), transitionDuration: ..

    [Flutter] 내장 Image file

    // pubspec.yaml dependencies: image_picker: ^0.8.4+4 ios/Runner/Info.plist NSPhotoLibraryUsageDescription 사진첩좀 써도 됩니까 NSCameraUsageDescription 카메라좀 써도 됩니까 NSMicrophoneUsageDescription 마이크 권한좀 제발 이런 코드를 하단에 추가. 사용자에게 허락팝업 띄울 때 보이는 글자. import 'package:image_picker/image_picker.dart'; import 'dart:io'; 파일 다루는 유용한 함수가 들어가 있는 기본 패키지 사용법 onPressed: () async { var picker = ImagePicker(); var image = aw..