본문 바로가기
반응형

Flutter11

[Flutter] Abstract class 를 get_it 에 넣어 사용하기 import 'package:get_it/get_it.dart'; final GetIt inject = GetIt.instance; void init() { inject.registerLazySingleton(() => UsecaseImpl()); }​ import 'package:get_it/get_it.dart'; final GetIt inject = GetIt.instance; void init() { inject.registerLazySingleton(() => UsecaseImpl()); } 문제 상황 현재까지는 실제 클래스를 get it 에다가 넣어서 사용하고 있었다. 그러나 widgetbook 을 사용하면서 실제 main.dart 파일과 widgetbook 에서 실행하는 main.dart 파.. 2023. 2. 17.
[Flutter] Custom Paint Border Radius 있는 rect 그리기 방법 borderRadius 에서 toRRect method 를 사용하여서 그리면 된다. void paint(Canvas canvas, Size size) { BorderRadius borderRadius = BorderRadius.circular(10); Paint paint = Paint()..color = Color.red; Rect rect = Rect.fromCenter(center: Offset(40, 40), width: 40, height: 40); RRect borderRect = borderRadius.toRRect(rect); canvas.drawRRect(borderRect, pointPaint); } 결과 화면 * background 색은 신경쓰지 않아도 됩니다. 2023. 2. 15.
[Flutter] M1 pod install 'CocoaPods could not find compatible versions for pod "FBAudienceNetwork"' 해결 문제 상황 flutter 를 3.7 으로 업데이트를 하고 ios 에서 빌드를 하려고 하니 pod install 에서 에러가 생겼다는 메세지가 나왔다. 그래서 ios 폴더에 들어가 직접 pod install / update 를 하니 다음과 같은 오류가 나왔다. [!] CocoaPods could not find compatible versions for pod "FBAudienceNetwork": In snapshot (Podfile.lock): FBAudienceNetwork (= 6.9.0, ~> 6.9.0) In Podfile: facebook_app_events (from `.symlinks/plugins/facebook_app_events/ios`) was resolved to 0.0.1, whi.. 2023. 1. 28.
[Flutter] 중복 클릭 방지 버튼, StreamController, Throttle 버튼 구현 문제 상황 버튼을 만들고, api 에 연결하는 것은 흔히 있는 일이다. 그러나 버튼을 연속적으로 클릭해서 api 호출이 여러번 일어나면 예상하지 못 한 사이트 이펙트가 일어나게 된다. 보통 버튼을 클릭하면 Navigator.pop() 과 같이 다른 페이지로 이동하거나 하지만, 매우 빠르게 클릭하면 중복으로 처리가 되는 문제가 있다. 해결 방법 중복 클릭과 같은 문제에 대해서는 두 가지 방법이 있다. Throttle과 Debounce이다. 둘에 대한 설명으로는 다음 포스팅을 보면 자세하게 나와있다. 혼란한 디바운스(debounce)와 스로틀(throttle) 차이 scroll, resize, input, mousemove 와 같은 이벤트는 짧은 시간 간격으로 연속해서 발생합니다.이러한 이벤트에 바인딩한 이.. 2022. 12. 7.
[Android] ADB connect, 원격으로 핸드폰 연결하기 - android studio, 안드로이드 개발 현재 Android Studio를 사용하여 플러터 개발을 하고 있는데, 대부분 안드로이드 에뮬레이터를 사용하지만, 실기기에서 테스트 할 때가 종종 있다. 매번 USB를 연결해서 할 수도 있지만, 원격으로 할 수도 있다. [ 원격 연결 방법 ] 처음에는 USB와 컴퓨터를 연결해야 한다. 핸드폰에 USB 디버깅을 허용하시겠습니까? 와 같은 팝업이 뜬다면 확인을 하고, cmd에서 adb devices 명령어를 입력한다. 정상적으로 연결이 되었다면 디바이스의 정보가 나올 것이다. 그 다음으로는 adb tcpip 5555 를 입력해준다. tcp로 접속하겠다는 것을 입력하는 것인데, 이를 입력한 뒤 부터는 USB로 연결이 되어있지 않아도 된다. 마지막으로는 연결하려는 디바이스의 ip 주소를 입력한다. adb con.. 2022. 8. 24.
[Flutter] Flutter로 개발하면서 느낀 점 개발 이야기는 인스타 easy_develop에도 올라옵니다. 플러터 프로젝트가 진행 중이라는 점 유의 플러터의 시작 처음 flutter 프로젝트를 만들고 기본 템플릿으로 실행시켰을 때의 느꼈던 감정을 잊지 못한다. “와…. 이 정도로 개발자 도구가 잘돼있다고?”라는 감탄이 나왔다. 중단된 프로젝트지만 React Native로 앱 개발을 해보았을 때는 디버깅하기 너무 힘들었다. 똑같은 React지만 웹에서 요소를 클릭하면 각종 정보를 볼 수 있는 개발자 창도 없어서 화면구성 하기 힘들었고, 웹 콘솔 창도 없다 보니 JSON 같은 데이터를 출력하면 검은 콘솔 창에 쭉 나왔다. 그러다가 React Native Dev Tool을 찾았지만, 실행시키면 앱의 속도가 10배 정도 느려졌다. 이렇게 정말 힘들게 개발하.. 2022. 6. 11.
[Flutter] AVOID using forEach with a function literal 해결하기 [문제점] 플러터 프로젝트를 하는중에 forEach를 쓰니 오류는 아니지만 아래 노란줄이 나오면서 다음과 같은 문구가 나왔다. AVOID using forEach with a function literal. [해결 방법] dart에서 forEach 문법을 권장하지 않기에 생기는 문구이다. 해결방법은 forEach가 아닌 for문을 사용하면된다. 안좋은 예시 for (element in map.keys) { ... } 좋은 예시 for (element in map.keys) { ... } [참고한 자료] Flutter : Avoid using `forEach` with a function literal Hi everyone this is my whole method : Future init() async .. 2022. 2. 7.
[Flutter] A RenderFlex overflowed by pixels on the bottom 에러 해결 [문제점] Flutter에서 textfield, button을 이용해서 페이지를 만드는 도중 키보드가 버튼의 위를 덮으니 아래와 같은 오류가 생겼다. ======== Exception caught by rendering library ===================================================== The following assertion was thrown during layout: A RenderFlex overflowed by 60 pixels on the bottom. [해결 방법] 문제는 위에서도 말했듯이 키보드가 interaction하는 부분까지 올라와서 오류가 난 것이다. 해결방법은 크게 2가지가 있다. 스크롤 가능하게 하여서 해당 버튼을 키보드 위로 올리기 .. 2022. 2. 2.
[Flutter] ListView.builder Exception caught by rendering library 오류 [문제점] 플러터에서 ListView.builder를 사용하려고 하는데 다음 오류가 나오면서 위젯이 제대로 나오지 않았다. Exception caught by rendering library 이때의 코드는 아래와 같았다. class ListViewExample extends StatelessWidget { const ListViewExample({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Column( children: [ ListView.builder( itemBuilder: (context, index) { return Text(index.toString()); }, itemCount: 5, ).. 2022. 1. 6.
반응형