일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 장자명언
- 오픈소스
- Freesound
- FSM
- 소울칼리버6
- DART
- Android
- 공자명언
- 공부집중
- 이모지메모
- 명심보감
- Streaming
- 파이썬
- Firebase
- 명언모음
- Linux
- androidx
- jetpack compose
- 1인개발자
- Coroutine
- ASMR
- 코틀린
- 넷플릭스
- 좋은글필사하기
- recyclerview
- 이모지
- 벤자민플랭클린
- Flutter
- kotlin
- bash
- Today
- Total
목록Source code or Tip (207)
Vintage appMaker의 Tech Blog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/drUJIM/btrFTdRSZ7G/jP5XPbkvJZ9GwlwbeWDh01/img.gif)
Flutter에서 화면갱신을 위해서 setState를 남발하다보면 차일드까지 모두 갱신하므로 엄청나게 느려지게 된다. Flutter에서 setState() 함수를 사용하지 않고 바인딩 된 변수값을 직접 액세스하여 변경된 값으로 Widget을 갱신하려고 한다면 ValueListenableBuilder 위젯으로 wrap을 하면 가능하다. 여기서 중요한 네임드 파라메터는 valueListenable : 모니터링할 변수 builder : 값 변경시 화면을 구성할 builder 함수 첫번째 파라메터 : Context 두번째 파라메터 : valueListenable에 정의된 변수 세번째 파라메터 : Widget 이다. 그리고 builder의 경우, 특정조건에서는 넘겨지는 파라메터의 데이터 형을 선언해야 한다.그러나..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/da365Z/btrFFQECv6V/LVbc0yqEDKPIpgEU24g1MK/img.png)
Flutter 소스를 분석하다보면 잘만든 오픈소스에서조차 종종 발견되는 에러가 "overflowed by OO pixcels" 에러이다. Flutter가 widget 화면을 그릴 시, 지정된 값이 주어진 화면을 "넘어가는 경우" 발생하는 에러인데 Flutter overflowed pixcels error로 구글링을 보면 다양한 해결방법(버그의 원인이 다양하다는 뜻이기도 함)을 알려주고 있다. 그런데 문제는 공사장 표시를 제거하는 방법을 알려주는 포스팅이 거의 없다는 점이다. 화면픽셀이 다를 경우, 정확하게 알려주기 위해 화면에 공사장표시를 보여주는 것은 괜찮다고 생각하지만 실제 서비스 되는 앱에서 저런 화면이 나온다는 것은 치명적인 문제일 수 밖에 없다. 그리고 화면디자인이 완벽하게 돌아가는 앱이나 웹은..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cONOXy/btrFFPxskwq/TPl3VopkRkkXROmdebb2m0/img.png)
Android에서는 View를 보임(visible), 안보임(invisible), 공간없이 안보임(gone)과 같은 값을 visibility 속성에 대입하여 모든 view에서 값에서 사용할 수 있다. 그러나 Flutter는 Visibility widget을 둘러쌓은 후 사용할 수 있다. Visibility class - widgets library - Dart API Whether to show or hide a child. By default, the visible property controls whether the child is included in the subtree or not; when it is not visible, the replacement child (typically a zero..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yVwMJ/btrEX2STLRP/kAjFpJ5aFvvKgj48OieZS0/img.png)
dart에서 List에 값을 넣을 때, Closure 형태의 함수들을 사용할 수 있다. 그러므로 case 문이 길어질 경우, case별 함수를 정의한 후, List로 만들어 인자를 넘기면 가져와 실행시킬 수 있는 Function table로 활용할 수 있다. kotlin, python, swift 같은 언어에서도 이러한 방식을 사용하는 경우가 종종 있다. // 실행테이블 var fnTable = [ "초기값 100", 100, (int n){return n * 3;}, (int n){return n - 3; }, "초기값 3", 3, (int n){return n - 3; }, "계산완료"]; List의 아이템이 다양한 타입일 경우, 가져온 아이템의 타입을 is로 비교한다. 그리고 비교한 결과가 true..