본문 바로가기
반응형

Mobile APP/Flutter16

[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] dashed line 그리기 해결 방법 dash 된 부분만 Line 을 그리는 방법으로 하였다. void paintDashedLine(Canvas canvas, Size size) { Paint standardPaint = Paint() ..color = Colors.grey ..strokeWidth = 1; const int dashWidth = 4; const int dashSpace = 4; double startX = 0; double y = 20; while (startX < size.width) { canvas.drawLine(Offset(startX, y), Offset(startX + dashWidth, y), standardPaint); startX += dashWidth + dashSpace; } } 실행 결과 R.. 2023. 2. 15.
[Flutter] Custom Paint 에서 Object rotate 하기 해결 방법 플러터에서는 upright 방향으로밖에 그림을 그릴 수 있다. 따라서 회전한 Object 를 그리는 것이 아니다. canvas를 회전시킨 뒤에 Object 를 그리고, 다시 회전시킴으로서 Object 가 회전된 것처럼 보이게 하는 것이ㅏㄷ. void drawRotated( Canvas canvas, Offset center, double angle, VoidCallback drawFunction, ) { canvas.save(); canvas.translate(center.dx, center.dy); canvas.rotate(angle); canvas.translate(-center.dx, -center.dy); drawFunction(); canvas.restore(); } 실행 결과 Ref.. 2023. 2. 15.
[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.
[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.
반응형