일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Raycasting
- Image Resize typescript
- Three js
- node
- REST API
- swagger-typescript-api
- jszip
- Babel standalone
- Three-fiber
- Prism.js
- Completer
- userevent_tracker
- Redux
- Excel
- webrtc
- RouteObserver
- KakaoMap
- typescript
- react
- uint8array
- FirebaseAnalytics
- androidId
- methodChannel
- babel
- Flutter
- Game js
- identifierForVender
- uint16array
- web track
- code editor
- Today
- Total
목록해왔던 삽질.. (35)
Never give up
여러개의 항목을 Listview를 이용해 출력을 할 때 고민이 생깁니다 한번에 많은 항목을 불러오고 보여주기를 하다보면 퍼포먼스에 문제가 생길 수도 있고 배터리 소모에도 영향을 주게됩니다 그래서 inifite loading 혹은 lazy loading등을 사용하게 되는데 보통 서버에 특정개수로 요청을 해서 여러번 가져오는 작업을 수행하는데 사용자 입장에서 끊기는 부분이 그렇게 좋지는 않을거 같다고 생각해서 한번에 100개정도씩 가져와서 분배해주면 어떨까 싶어서 만들게 되었고 Stream을 이용해서 직접 구현을 해봤습니다 loading class는 이전에 만들어논것을 그대로 사용했으니 예제를 실행해보실분은 로딩 포스트를 참조해주세요 (링크 : devmemory.tistory.com/33 ) Main cla..
링크 : play.google.com/store/apps/details?id=com.recipe.recipe_reference 요번에 제작한 앱은 레시피 공유 앱입니다 Firebase로 많은 작업을 하는것은 처음이어서 기간을 길게 잡았었는데 Firebase부분 필요한 기능을 구현하는건 한주도 안걸렸습니다만 잦은 UI/UX변경 그리고 데이터 타입 변경등으로 시간이 엄청나게 지연되었습니다.. 먼저 디자인과 기획 부분은 제 영역이 아닌걸 확실히 느꼈습니다 디자인은 얼핏봐도 이상해보이고 리터치해도 이상해보이고 리메이크해도 이상하고.. 나중에 여유가 되면 전문 디자이너한테 맡기는게 났겠다 라는 느낌이 너무 많이 들었습니다.. 그리고 기획부분은 그냥 두리뭉실하게 몇달! 이렇게 잡았는데 생각해보니 데이터타입은 어떻게..
music player를 한번 만들어보려고 관련 패키지를 찾아보던 도중 audioplayers와 audio query가 보여서 한번 적용을 해봤습니다 audioplayers : pub.dev/packages/audioplayers audio query : pub.dev/packages/flutter_audio_query splash class SplashScreen extends StatefulWidget { @override _SplashScreenState createState() => _SplashScreenState(); } class _SplashScreenState extends State { @override void initState() { super.initState(); initData..
build.gradle을 최신버전으로 올리고 release모드를 할 때 에러가 발생하는경우가 있습니다 필자가 마주친 에러는 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:lintVitalRelease'. > Could not resolve all artifacts for configuration ':app:profileRuntimeClasspath'. > Failed to transform libs.jar to match attributes {artifactType=processed-jar, org.gradle.libraryelements=jar, org.gradle.usage=java-..
DateFormat을 사용할 때 해당 에러가 뜨는경우가 있습니다 안뜨는 경우도 있는데 정확하게 어떤 상황에서 뜨는지는 잘 모르겠습니다만 필자는 Easy Localization이라는 패키지를 사용할 때 나타났고 추측을 해보자면 Locale에 따른 DateFormat이 바뀌어야되는데 Locale이 초기화가 안돼서 나타난것으로 예측되고 해당 에러 또한 비슷한 내용을 암시합니다 LocaleDataException: Locale data has not been initialized, call initializeDateFormatting(). 해석해보면 Locale데이터가 초기화되지 않았으니 initializeDateFormatting()을 콜 해주세요 윗부분에 대해서 조금 더 얘기해보자면 Locale이 en-US..
제목에 해당되는 에러는 많은 이유로 생길 수 있습니다 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..
먼저 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..