일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uint8array
- react
- http live streaming
- Game js
- KakaoMap
- code editor
- web track
- jszip
- babel
- Flutter
- Prism.js
- HLS
- M3U8
- html2canvas
- uint16array
- how to install cursor on ubuntu
- segment
- hls.js
- swagger-typescript-api
- REST API
- node
- Babel standalone
- Image Resize typescript
- cursor-ubuntu-installer
- typescript
- userevent_tracker
- webrtc
- Redux
- three.js
- Excel
- Today
- Total
목록전체 글 (129)
Never give up
구글 공식문서에 따르면 다음과 같은식으로 구현을 하는데 { "name": "John Smith", "email": "john@example.com" } //변환 할 json값 class User { final String name; final String email; User(this.name, this.email); User.fromJson(Map json) : name = json['name'], email = json['email']; Map toJson() => { 'name': name, 'email': email, }; } 여기서 조금 더 생각해야되는 부분이 있습니다 예제에 나온 serialize는 불러온 json 데이터가 하나일때는 처리할때는 이렇게 하지만 여러개일때는 어떻게 해야될지 고민이..
ListView를 다룰 때 List의 index에 따라 위젯을 변경 시켜주거나 아이템을 눌렀을 때 해당 index로 이동해야되는 위젯이 있을때 처리를 어떻게 해야될지 알아보겠습니다 먼저 사용한 패키지는 다음과 같습니다 pub.dev/packages/scrollable_positioned_list class _UIExampleState extends State { List _list = List.generate(20, (index) => 'Item - $index'); StreamController _streamController; ItemScrollController _itemScrollController = ItemScrollController(); ItemPositionsListener _itemPo..
하이브리드 앱을 만들때 혹은 특정한 페이지를 로드할 때 Webview가 필요하고 어떤 앱은 검색하는 기능도 가지고 있습니다 먼저 Webview를 사용하기 위해서 다음 패키지를 이용합니다 pub.dev/packages/webview_flutter @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text('WebView Example'), actions: [ IconButton( icon: Icon(Icons.search), onPressed: () => showSearch(context: context, delegate: Search()), ) ]), body: WebView( initialUrl: '..
Icon을 유저에게 선택 가능하도록 만들어야되는 앱이 있는경우 IconPicker를 사용하게 되는데, 필자가 이용한 패키지는 아래 링크에 있습니다 pub.dev/packages/flutter_iconpicker 먼저 IconData data = await FlutterIconPicker.showIconPicker(context, iconPackMode: IconPack.material); print('${data.codePoint ?? null}'); 다음과 같은식으로 아이콘을 선택하게 되는데 IconData의 data값을 print해보면 유니코드형태로 숫자가 출력되고 ex) IconData(U+0E145) codePoint를 print해보면 5자리 숫자가 나오게 됩니다 ex) 57669 그러면 우리가 ..

Flutter를 처음 접했을때가 5월 초 정도였던것으로 기억합니다 유데미 강의를 듣고 6월부터 시작했던 가벼운 프로젝트를 9월이나 돼서야 끝냈습니다... 시간이 오래걸린 이유는 기획 변경 여러번 + 삽질시간 + 리펙토링 + 아이디어 부족 등이 있겠습니다 그 중에서도 기획 변경 여려번으로 인해 써놨던 코드들 지웠다가 새로 만들고 쓰던 패키지를 다른것으로 교체하는 등등 가비지 시간이 너무 많아진게 원인인거 같습니다 그리고 또 하나.. 필자가 디자인 감각이 얼마나 떨어지는지(UI/UX디자이너는 절대 하면 안될거 같습니다..) 그리고 쓸대없는 마이크로 최적화에 얼마나 목메었었는지도 알게되었습니다 필자는 전기전자제어 공학부를 졸업해서 MCU를 다룰 일이 많았는데 그 때 생긴 버릇이 여기에서 나오는 거 같았습니다...
Map에서 value를 이용해서 key를 가져와야될 상황이 생길때가 있습니다 이 부분은 Map의 메소드를 이용해서 간단하게 해결할 수 있습니다 먼저 사용한 데이터 타입은 key : DateTime, value : List입니다 Map _map = { DateTime.now().add(Duration(days: -3)): ['a', 'b', 'c'], DateTime.now().add(Duration(days: -2)): ['b', 'c'], DateTime.now().add(Duration(days: -1)): ['a'], DateTime.now(): ['b'] }; //값들은 임의로 넣었는데 실제로 날짜순으로 받고 있습니다 void setSelectedItems(String title) { Iterab..
소스코드를 찾다보면 abstract class를 상속받을 때 어떤 곳에서는 extends, 다른 곳에서는 implements로 되어있습니다 필자는 C로 입문 후 자바 => 다트로 넘어갔었던 케이스라 당황했었습니다 필자가 이것을 처음봤을 때의 반응 : abstract class 상속할때는 extends, interface는 implements 아니었던가? 뭐지? (참고로 Dart는 interface가 없습니다) 두 방식의 차이는 extends는 override해서 재정의 하는 함수 제외하고 따로 정의를 해주지 않아도 되고 implements는 모든 메소드를 재정의 해줘야됩니다 따라서 본인이 메소드 이름(기능)만 정의 해놓고 자식 클래스에서 기능을 정의 할 때는 implements를 그 외에는 extends..

Flutter앱을 만들고나서 AVD가 아닌 기기에서 실행해보면 반응 및 애니메이션이 엄청 버벅거리는것을 확인 할 수 있습니다 처음 했을때 필자의 반응은 "?? 네이티브급 성능이라 하지 않았던가? 뭐지 이건?" 이랬습니다 그런데 debug모드와 release모드, profile모드를 알고는 있었는데 기기를 연결하고 Run을 누르면 debug모드가 default인것을 모르고 있었기 때문에 애니메이션 최적화를 잘못한줄 알고 코드만 열심히 봤었습니다(하..씁..) 이랬던 이유중 하나가 분명 AVD에서는 Run눌러도 랙 없이 잘 동작했었고 네이티브 안드로이드 했었을 때 Run으로 실행했고, 잘 작동됐었던 기억이 있었습니다 그래서 찾아보니 flutter 앱은 기기에서 debug모드는 상당히 느리다는것을 알 수 있었..