Sql DB에 자료를 저장하려면 아래와 같은 타입들이 가능하다. (자료링크) 그런데 저장해야할 자료 type중에 array나 list가 있다면? 그 data를 db에 저장 가능한 타입으로 변환해서 저장을 해야한다. 보통은 String으로 저장하는게 편하다. string에 다양한 메소드들이 이미 구현 되어있어서 다른 타입에서 string으로 변환하거나 string에 포함되어있는 separator를 기준으로 내용들을 array으로 변환하기 쉽기 때문이다. 아래의 예는 List 형태의 데이터를 sql DB에 저장할 수 있도록 string으로 변환하는 코드(dart언어)와 , DB의 string 데이터(list을 string으로 만들어 저장해두었던..)를 다시 List 로 변환하는 코드이다. static Str..
최근 코등을하면서 어떻게하면 좀더 디버깅을 빨리, 그리고 잘 할수 있을까? 혹은 그것을 도와주는 좋은 툴들이 있을까하고 고민을 하고 있다. 아래 영상은 그걸 찾다가 발견한 것은 아니지만 보다보니 유익한 것같아서 기억하고 싶은 내용들을 조금 정리해 둘까한다. https://www.youtube.com/watch?v=vVg9It7cOfY "Jank" is like a visual stutter. Jank란 화면이 버벅거리는 것을 의미한다. 그러니까 뭔가 부드럽게(우연하게) 넘어가야하는데 그렇지 못한 경우, 버벅거리거나 프레임을 한 두개 skip 하는 것처럼 시각적으로 nice 않는 것을 말한다. Flutter는 적어도 3개의 쓰레드르 사용한다. 첫번째는 UI 쓰레드이다. 메인 쓰레드로써 widget을 bui..
컴파일을 하고, VS cdoe에서 Widget Instpector에서 select widget mode를 이용해서 특정 위젯을 터치하면 아래와 같은 창이 열리면서 에러가 발생했다. errors_patch.dart 파일이 열리면서 에러 위치를 표시하는데[ 아래 사진과 같았다. 딱히 message가 없다보니 어디가 문제인지 알 수가 없었다. 문제가 발생하는 View의 의심이 가는 위젯을 하나하나 주석처리하면서 찾아보니, 어떤 위젯이 Flexible 안에서 또 flexible 위젯을 child로 받고 있었으며 이때문에 위와 같은 문제가 발생한 것이었다. Flexible 또는 Expandable은 Row나 Column과 같은 위젯 하위에서만 사용해야 한다. 한편, 저렇게 error가 떴을 때 이 error을 타..
The current elements of this iterable modified by [toElement]. 에러 메세지를 이해를 못하겠다. iterable의 현재 요소가 [toElement]에 의해서 수정되었다..??? 뭔말이지? [toElement]가 뭐지? 빠른 수정 정보를 보면 .을 ?.으로 수정하라고 한다. Null safety와 관련된 에러인것 같다. 아래처럼 클래스 변수(필드) 선언에서 ?를 달아놓았떤 것에 대해서 map을 명령했떠니 이런 에러가 떴던 것이다. 해결 방법은 변수 선언시에 null이 가능한 변수라면 ? 대신에 이 변수의 값을 사용할 때(나의 경우 map메소드 호출), null이 아니라는 걸 확인 시켜주면 된다. if 문으로 null아니라는걸 상위에 넣어주던가, 변수명 뒤에 ..
Getx 그 중에서도 Obs, Obx 사용법에 대해서 정리 참고자료: Getx의 statemanagement 에 대한 문서 https://github.com/jonataslaw/getx/blob/master/documentation/en_US/state_management.md GitHub - jonataslaw/getx: Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies eas Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Ge..
Null safty가 적용되고 나서, class에서 선언된 변수의 type이 late가 아닐 경우, 해당 변수를 read하려고 할 때 아직 initialized가 되어있지 않으면 error (complie-time)가 발생한다. [해결 방법] constructor 파라미터로 전달되는 것이라면 class에 초기화 하려는 변수명과 같게 해주어 constructor의 파라미터 필드에서 this.을 이용해서 바로 입력한다. 또는 파라미터로 전달되는 값이 직접 클래스의 변수에 입력할 수 없고, 프로세싱을 필요로 할 경우, initializer list에서 처리후에 클래스 변수에 입력할 수 있다. 클래스 바디에서 변수에 값을 할당하는 것은 초기화가 아니다~!
앱이 실행되는 장치에 따라 앱이 보여지는게 달라진다 가장 큰 문제가 글자 크기 인데, 태블릿이나 pc냐 모바일 폰이냐에따라 표시되어야 하는 글자 크기가 달라지므로 적응적으로 글자 크기를 변화시켜주는 것이 중요하다. 나의 경우, 테블릿 환경에서 작업을 하면서 text 위젯을 fittedBox.scaleDown으로 만들어 넣고있다. 그러면 모바일에서 앱을 실행하더라도 글자를 줄여서 표현되기 때문에 큰 문제는 없었다. 그런데 혹시나 좀더 편리하거나 효과가 좋은 위젯이나 방법이 있나 싶어서 잠시 찾아보았다. Responsive design의 기본적인 정보는 아래링크를 참고하면된다. https://docs.flutter.dev/development/ui/layout/adaptive-responsive Creati..
참고하는 패키지의 코드에서 addPostFrameCallback이 있다. 아래와 같이 사용되고 있었다. WidgetsBinding.instance!.addPostFrameCallback( function ) WidgetsBinding 부터 찾아봐야겠다. Flutter api 웹페이지에는 아래와 같이 나온다. 그리고 addPostFrameCallback 은, 그리고 WidgetsBinding 이 Mixin 으로 선언되어있는데 뒤에 on 키워드가 있다. on 키워드가 어떤건지 기억이 나지 않아 다시 찾아보았다. 아래 블로그 참고. https://paulaner80.tistory.com/entry/Dart-mixin-%EC%9D%B4%EB%9E%80-1 Dart mixin 이란? 1. 믹스인이 필요한 이유 C..
- Total
- Today
- Yesterday
- addPostFrameCallback
- 다트
- Syncfusion
- 크롬
- 인사이트
- plugin
- 앱 프로그래밍
- 한빛미디어
- position
- TextField
- 앱
- firebase
- error
- UX
- Chrome
- DART
- TextFormField
- 플러터
- 이미지
- BLE
- 문제 해결
- hide
- 디자인
- SizedBox
- 에러
- IOS
- UI
- 앱개발
- Flutter
- Bluetooth
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |