일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Image Resize typescript
- webrtc
- code editor
- Babel standalone
- androidId
- Completer
- Excel
- typescript
- swagger-typescript-api
- Flutter
- Raycasting
- KakaoMap
- Three js
- react
- three.js
- uint16array
- Redux
- Three-fiber
- uint8array
- RouteObserver
- REST API
- babel
- Prism.js
- userevent_tracker
- Game js
- methodChannel
- identifierForVender
- jszip
- web track
- node
- Today
- Total
목록분류 전체보기 (123)
Never give up
먼저 Selector에 관한 설명은 이전 포스트를 참고해주시면 될거 같습니다 (링크 : devmemory.tistory.com/15) Selector를 사용하다보면 필요한 값이 2개 이상일때가 있습니다 이럴 때 사용하라고 공식문서에 친절하게 Tuple을 사용하라고 나와있더군요 To select multiple values without having to write a class that implements ==, the easiest solution is to use a "Tuple" (공식문서 링크: pub.dev/documentation/provider/latest/provider/Selector-class.html) 그래서 관련 예제를 한번 만들어봤습니다 메인 class SelectorExample..
일반적인 위젯에는 CachedNetworkImage를 사용하면 되지만 Container의 boxdecoration이나 CircleAvatar같은경우 backgroundImage에 넣어줘야되는데 데이터 타입이 ImageProvider입니다 그래서 CachedNetworkImageProvider를 사용해야되는데 error핸들링을 어떻게 해야될지 막막합니다 API에 보면 errorListener가 있어서 사용하면 될거같지만 아쉽게도 deprecated됐습니다 그럼 어떻게 해결을 해야될까 고민하게 될텐데 생각보다 간단하게 해결 가능합니다 간단한 예제로 한번보겠습니다 메인 class _CachedNetworkImageExampleState extends State { final String url = "https..
제목에 해당되는 에러는 많은 이유로 생길 수 있습니다 E/flutter (19092): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe. E/flutter (19092): At this point the state of the widget's element tree is no longer stable. E/flutter (19092): To safely refer to a widget's ancestor in its dispose() method, save a reference to the ancestor by calling dependOnI..
cloud firestore에 변수나 collection을 add하거나 set하는것은 간단합니다 예를들어보면 FirebaseFirestore.instance.collection('name').doc('docName').set({ a: a //int, String, bool, etc b: [a, b] //List c: {'a': 'b'} //Map }).catchError(//에러 처리); 이런식으로 set이나 add가 가능합니다 따로 variable을 만들어서 저장해도 문제가 없습니다 다만 몇가지 생각해봐야될 것이 있습니다 먼저 데이터 타입이 List일 경우에는 어떻게 처리해야 될까요? 필자는 이전에 jsonSerialize예제에서 사용한 방법을 사용해서 처리해봤는데 다행이도 잘 동작하더군요 (예제 링크..
먼저 call by value와 call by reference를 비교해보면 call by value는 말 그대로 값을 복사해서 저장합니다 call by reference는 값의 주소값을 저장합니다 그리고 필자는 List와 Map 같은 collection을 사용 할 때 값을 초기화 하는 부분에서 = 을 사용하면 call by value방식으로 저장될줄 알았었는데.. 아니었습니다 예를 들어 List a = [0, 1 ,2]; List b = a; List c = a; print('a: $a\nb: $b\nc: $c'); c.clear(); print('a: $a\nb: $b\nc: $c'); 해당 코드를 보면 c만 clear될 줄 알았는데 실제 찍힌 로그는 a: [0, 1, 2] b: [0, 1, 2] c..
Loading hud를 사용이유는 현재 작업이 진행되고 있는지 아니면 문제가 생겨서 멈췄는지를 유저에게 확인시켜주기 위해 있다고 생각합니다 그래서 오래걸리는 작업을 할 때 사용할 패키지를 찾기 위해 pub dev에서 여러 loading hud들을 검색하던 중 대부분의 hud가 bool값의 변경에 따라 보여주고 사라지게 해주고 있는데 굳이 rebuild를 통해 bool값을 notify해서 hud를 보여줘야될까 생각하게 되었습니다 (필자 생각 : 작업전 on 그리고 작업 후 off만 해주면 될텐데??) 근데 hud => head up display를 어떻게 구현해야되지 하고 생각해봤는데 우리가 자주쓰는 Alertdialog도 비슷하지 않은가 해서 한번 dialog로 구현을 해봤습니다 class Loading..
필자가 생각하는 Enum의 사용처는 리펙토링할 때 직관적이게 하는것인거 같습니다 (ex : 하드코딩으로 넘기는 int값이 꼴뵈기 싫을때..?) bool으로 간단히 처리할 수 있는것은 bool을 사용하는게 좋지만 예를들어 3개 이상일 때는 어떨까요? 앞에 ex 부분에 장난식으로 써놓긴 했지만 실제로 index값에 따른 동작을 한번 더 확인해야되는 불편함이 있고 직관적이지 않습니다 그래서 회원가입 예제를 통해 알아보겠습니다 Main enum AuthState { Correct, InvalidID, ShortLength, Different } enum AuthText { ID, Password, Check } class EnumExample extends StatelessWidget { final AuthDa..
context를 사용할때 참조되는 context가 어디인지 확인해야될 때가 있습니다 해당 예제에서는 provider를 사용할 때 snackbar를 Scaffold.of(context) 형태로 사용할 때의 문제점 그리고 해결방안에 대해 알아보겠습니다 Main class ExamplePage extends StatelessWidget { @override Widget build(BuildContext context) { return Consumer( builder: (context, items, child) { return Scaffold( appBar: AppBar(title: Text('Example page')), body: Column( mainAxisAlignment: MainAxisAlignmen..