본문 바로가기

CS/Flutter | Dart

(55)
캘린더 일정관리 앱 #6 이전에 텍스트필드를 텍스트폼필드로 바꿔 구현해주었다 -> Form 위젯 사용으로 통합관리에 유용하도록! Form 위젯은 key 매개변수에 GlobalKey 값을 넣어주면 된다 Form 조작시에는 같은 key를 사용해 Form 내부의 TextFormField를 일괄 조작한다 텍스트필드 위젯 null 리턴되면 에러가 없다는 것이고 만약 에러가 있으면 에러를 String 값으로 반환해준다 입력된 값이 없으면 값을 넣어달라는 문자가 반환된다 입력된 시간 값이 0보다 작으면 0보다 큰 숫자를 넣어달라는 문자가 반환된다 입력된 시간 값이 24보다 크면 24보다 작은 값을 넣어달라는 문자가 반환된다 각 텍스트필드에 값을 제대로 입력하고 save 버튼을 누르면 위처럼 잘 동작한다 https://pub.dev/packa..
캘린더 일정관리 앱 #5 스케줄 테이블과 카테고리 색상 테이블 작성해준다 drift 패키지를 이용하면 직접 sql에서 입력해주지 않아도 되는 게 신기하다 끝에 ()를 꼭 붙여줘야 하는 것도 신기.. integer().autoIncrement()() 에서 autoIncrement()는 중복되지 않도록 자동으로 숫자를 늘려주는 기능을 한다 1, 2, 3, ... dateTime().clientDefault()에서 clientDefault()는 플러터 프레임워크에서 기본값으로 지정할 값을 말한다 import는 private 값을 불러올 수 없는데 part는 private 값도 불러올 수 있다 part로 불러오면 실제로 다른 파일에 있어도 시스템에서는 같은 파일로 인식한다 part 'drift_database.g.dart'; 파일 이름..
캘린더 일정관리 앱 #4 커스텀 텍스트필드 클래스에 bool 타입으로 isTime 변수를 만들어준다 isTime이 true면 시간을 뜻한다는 것이고 (시작 시간, 마치는 시간) false면 내용을 뜻한다는 것이다 (content) maxLines: isTime ? 1 : null, // 시간과 관련있으면(시작, 마침) 1줄, 내용과 관련있으면 쭉.. expands: !isTime, keyboardType: isTime ? TextInputType.number : TextInputType.multiline, inputFormatters: isTime ? [FilteringTextInputFormatter.digitsOnly] : [], // 숫자 외 글자는 넣지 못하게 막음 -> 시간 의미하는 텍스트필드는 숫자만 입력 받고 (숫자..
캘린더 일정관리 앱 #3 왜 파일 이름 저렇게 지었냐 나자신.. 키패드 부분 작성해준다 텍스트필드 스타일 지정해준 건데 그냥 내 맘 가는데로 해버렸다 https://stackoverflow.com/questions/49257641/how-can-i-make-rounded-textfield-in-flutter How can I make rounded TextField in flutter? Material Design for iOS doesn't look good, especially the TextField. So is there any way to create your own ? Or Is ther any way to add some styling to TextField so it will look rounded ? stacko..
캘린더 일정관리 앱 #2 화면 가운데에 선택된 날짜와 스케줄 개수를 보여주는 배너를 구성해준다 textStyle은 위에 따로 정의해주었다 캘린더와 배너 사이 공간을 SizedBox로 만들어준다 scheduleCount는 아직 스케줄 데이터가 생성되지 않았으니 임의로 넣어주었다 현재까지 모습이다 캘린더에서 특정일을 클릭하면 그 날만 글자가 커지게 했다 ㅎㅎ..디테일이 세상을 바꾼다 스케줄 카드에 스케줄 시작시간과 끝나는 시간 지정해주는 부분이다 "${startTime.toString().padLeft(2, "0")}:00" 8:00 -> 08:00 이렇게 시간 부분이 한자리 숫자면 앞에 0을 채워주도록 해주었다 문자로 만들고 왼쪽 패딩값을 2자리로 지정해주고 2자리 수가 아닐 경우 0으로 채우는..! today_banner에도 재..
캘린더 일정관리 앱 #1 https://pub.dev/packages/table_calendar table_calendar | Flutter Package Highly customizable, feature-packed calendar widget for Flutter. pub.dev table calendar 패키지를 사용해주었다 locale은 영문이 아닌 다른 언어로 번역해 보여주고자 할 때 사용하는데, 한국어로 설정해주었다 그냥 이렇게만 써준다고 되는 것은 아니고, 아래 패키지를 main.dart에 import 해주어야 한다 https://pub.dev/packages/intl intl | Dart Package Contains code to deal with internationalized/localized message..
영상통화 앱 키치하고 기여운 내 앱~~ https://www.agora.io/en/ Agora.io Real-Time Voice and Video Engagement The Real-Time Engagement Platform for meaningful human connections.People engage longer when they see, hear, and interact with each other. With Agora, you can embed vivid voice and video in any application, on any device, anywhere. www.agora.io 일반적으로 WebRTC 기능 사용하지만 프론트엔드 입장에서 요점에 부합하게 공부하기 위해 Agora 라는 중계 서버 AP..
StreamBuilder stream이 끝나지 않았을 때의 상태가 active, 완전히 끝난 상태가 done streamBuilder도 futureBuilder와 마찬가지로 setState 했을 때 데이터 값이 캐싱이 되어, 새로 build 했을 때 데이터 값이 아예 null로 돌아가지 않고 값을 기억한다 stream을 한번 열면 닫아줘야 하는데, streambuilder는 닫는 것까지 해주기 때문에 따로 신경 쓸 필요 X i가 5가 되면 에러 exception 던져주기

Tiny Star