목록Flutter(Dart) (22)
coding etude
flutter 세팅중에 알 수 없는 오류가 떴다. 구글링을 했을 때 기본적으로 몇 가지 해결방법이 나오긴 하지만 하나도 해결 되지 않았다. 개발환경 Macbook pro(2019) / Monterey v12.4 시도한 해결 방법 1. jdk 삭제 및 재설치 - 기존에 adoptopenjdk1.8.0_291 을 사용했으나 오라클 홈페이지에서 jdk8 설치파일을 받아서 설치하니 1.8.0_341 버전으로 업데이트 되었다. 환경변수도 등록해 주고 source 업데이트 후 동일증상. 2.brew 를 통해서 openJDK를 8,10,11 버전 모두 설치 - 환경변수에 JAVA_HOME를 바꿔가면서 테스트 해봤다. 동일증상. 3. android studio > SDK manager > commend tool 재설치..
직역 하자면 'GetX의 부적절한 사용이 확인 되었다.' 인데 어느 부분이 잘못 사용 되었는지 알기 쉽지 않다. 하지만 생각보다 이유는 단순하다. Obx() 내에는 무조건 Rx값을 controller에서 사용해야 한다. 쉽게말해 controller 에서 .obs로 값이 변했을때 알려주는 Rx값을 사용해야 한다는것이다. 만약 단순 변수를 사용 하는데 Obx()를 사용 한다면 이벤트를 알려줄 변수가 없이 사용했기 때문에 발생하는 오류인 것이다. 오류코드 예시 ///// controller ///// bool isNull = false; // .obs 사용사 오류 발생 // var isNull = false.obs; 는 허용됨. var이 자동으로 타입추론을 하기 때문이다. ///// GetView ///// ..
같은 객체의 생성자를 호출 하면 호출 할 때마다 인스턴스가 생성 된다. 하지만 Singleton을 사용하면 하나의 인스턴스만을 생성하기 때문에 메모리와 속도 측면에서 장점을 가지고 있다. class Singleton { int count; static final Singleton _instance = Singleton._internal(); // 인스턴스를 싱글톤으로 생성 Singleton._internal() { count = 0; //변수를 가지고 있다면 이렇게 초기화 해주면 된다. } // Songleton._internal(); 없다면 단순하게 실행만.. factory Singleton() => _instance; // factory는 실글톤 생성의 키워드 void functionEx(){ cou..
json데이터를 사용하기 위서는 수동 직렬화 방법과 외부 라이브러리를 통한 자동 직렬화 방법이 있다. 1. 수동 직렬화 - dart언어에 기본적으로 사용 할 수 있는 기능으로 dart:convert 를 참조한다 장점 : jsonEncode(jsonfile), jsonDeconde(jsonfile)로 바로 사용이 용이하다. 관리 할 json 데이터가 적을 때 사용하기 좋다. // json 예시 { "name": "kim", "age": "13" } // 수동 직렬화 Map user = jsonDeconde(json); print('name: ${user['name']}); String json = jsonEncode(user); 단점: 런타임(실행하는 단계)에서 바로 Map를 리턴하기 때문에 관리해야할 j..
원인 : CPU, GPU, RAM의 성능 문제 아무래도 맥북을 사용하다보니 GPU 쪽에 문제가 있지 않을까 .. 사실 랩탑 자체성능은 데스트탑에 비할바는 아니라.. 이런 오류는 흔하게 일어나는것 같다. 해결 1. 재부팅을 통한 재 실행. 2. 사용자(Users) -> .android -> avd -> 오류가 나는 avd 폴더 -> userdata-qemu.img 삭제 - 기존 데이터가 모두 삭제가 되기때문에 주의해야 한다. - 삭제 전 avd를 종료해 주어야 한다. 3. 해상도를 변경해준다. - avd manager -> 실행중인 avd 옵션(화살표) -> wipe data 4. avd 생성 할 시 Graphics를 수정해 준다. (default : Automatic) other finder에서 숨김 파..
사이드 네비게이션 바 엣지부분을 드레그해서 사용 할수 있다 Scaffold( drawer: Drawer( // endDrawer: 오른쪽에서 왼쪽으로 열림 child: ListView( children: [ DrawerHeader(...), ListWidget(...), ListWidget(...) ] ) ) ) AppBar 자체적으로 오픈 시킬 수 있다. Scaffold( appBar: AppBar( . . leading: IconButton( onPressed:(){ Scaffold.of(context).openDrawer(); // openEndDrawer(); } ) ) ) https://api.flutter.dev/flutter/material/Drawer-class.html Drawer cla..
필요한 플러그인 carousel_slider dots_indicator GetX 없이 진행 한다면 Statefulwidget 을 활용하여 위의 두 플러그인이 동인한 index값을 가지게 세팅해주면 된다. class Slider extends StatefulWidget { @override _Slider createState() => _Slider(); } class _Slider extends State{ int index = 0; . . CarouselSlider( option: ( onPageChangeed: (idx){ setState(idx){ index = idx; // state 값을 변경하면서 Reload 시킴 } } ) ), DotsIndicator( position: index.toDiu..
https://pub.dev/packages/carousel_slider carousel_slider | Flutter Package A carousel slider widget, support infinite scroll and custom child widget. pub.dev required List items required CarouselOptions options 여러 위젯을 모아 한 화면에서 슬라이더 시켜주는 플러그인 슬라이더 시킬 위젯의 옵션을 지정해주고(display 옵션- 사이즈 , 회전 횟수제한 등) items를 지정하면 된다. 사용 예시는 공식문서에서.. dots_indicator 와 함께 사용하면 효과적이다. https://codingetude.tistory.com/55 [plug..