본문 바로가기

전체 카테고리111

Flutter[플러터] - AOS Could not connect to the Gradle daemon. [Gradle 데몬 연결 오류(Could not connect to the Gradle daemon) 해결하기] 앱을 잘 빌드하다가 어느 순간 다음과 같은 에러를 마주했습니다FAILURE: Build failed with an exception.* What went wrong:Could not connect to the Gradle daemon.Daemon uid: 7db4e8d6-e597-4a1e-8124-89e164849db4 with diagnostics:Daemon pid: 95550 log file: /Users/sanghoon/.gradle/daemon/8.9/daemon-95550.out.log----- Last 20 lines from daemon log file - daemon-95550.out.log -----2025-04-23T09:39:02.731+0900 [DEBUG] [org.gradl.. 2025. 4. 23.
Flutter[플러터] - 플러터 성능개선 및 앱 최적화! JANK - DevTools https://docs.flutter.dev/tools/devtools/performance Use the Performance viewLearn how to use the DevTools performance view.docs.flutter.dev FPS는 "Frames Per Second"의 약자로, 초당 몇 개의 화면 이미지(프레임)가 표시되는지를 의미합니다. 예를 들어 60fps는 1초에 60번 화면이 업데이트된다는 뜻입니다. 여기서 ms는 밀리초(millisecond)의 약자로, 1밀리초는 0.001초입니다. 즉, 16ms는 약 0.016초 정도 됩니다.이러한 시간 간격 내에 렌더링이 완료되지 않으면, 디스플레이에 부드럽지 않은 움직임, 즉 '잰크(jank)'가 발생할 수 있습니다.jank 발.. 2025. 3. 6.
Flutter[플러터] - Riverpod(리버팟) 상태관리 누구나 쉽게! (2) 우선 리버팟을 사용하기 위해 리버팟에 있는 프로바이더들의 종류와 각 프로바이더의 역할을 이해해야한다. 대표적으로 3가지만 예시를 들겠다 (이 3개로 웬만한 건 모두 해결 가능하긴 하다.. 비동기도 커스텀이 가능하기에)ProviderStateProviderNotifierProvider다음 3가지 기준으로 무엇을 선언할지 판단기본 상태 관리상태 변화가 필요한 경우→ Provider 사용단순 상태 관리상태 변화는 필요하지만 로직이 단순한 경우→ StateProvider 사용복잡한 상태 관리상태 변화가 필요하고 복잡한 로직이 포함된 경우→ NotifierProvider 사용복잡한 로직의 기준실제 사용하면서 판단하는 것을 권장예시:단순: 단일 int 값 관리복잡: int 값을 다른 상태나 API와 연동하여 다양한.. 2024. 11. 7.
Flutter[플러터] - Riverpod(리버팟) 상태관리 누구나 쉽게! (1) 텍스트로 길게 써서 가독성이 좋진 않지만 제가 처음 상태관리를 어려워할 때를 생각하며 최대한 쉽고 간단하게 설명했습니다. 상태관리가 어려우신분들은 꼭 한 번 읽어보세요! 1. 상태 관리를 해야 하는 이유앱 실행 후 서버를 통해 로그인을 하여 서버로부터 DB에 있는 닉네임을 리턴받았다고 치자. 만약 마이페이지와 메인 홈 화면 View 모두에서 DB에서 가져온  닉네임을 표시를 해주고 있는데 닉네임 변경 시 이 두 곳에 있는 필드의 값을 일괄 변경해줘야하지 않는가? 그럼 그때 마다 해당 위젯에서 setState를 쳐줘야 할 것이다. 혹은 아래처럼 할 수 있다.자, 만약 상태관리를 안했다면 2가지 방법이 있을거다. (1) static 변수를 이용(2) 생성자로 위젯간 소통 (setState 사용으로 변경 시 .. 2024. 11. 7.
Flutter[플러터(고급)] Flutter 최적화하기(성능 개선), 렌더링 속도 Jank의 대하여 JankJank는 프레임 드롭이나 렌더링 지연으로 화면의 끊김 현상을 의미합니다. 사용자 입장에선 안 좋은 경험입니다.플러터 Skia 엔진을 쓰는데 Skia 엔진은 초당 60FPS로 동작하는 Ticker와 함께 화면을 업데이트 친다. 이걸 계산하면 플러터는 초당 16ms안에 렌더링을 끝내야 화면이 버벅대지 않습니다. 16ms 이내에 각 프레임을 렌더링하지 못 하면 프레임이 스킵 되고, 사용자는 화면이 끊기거나 버벅거리는 현상을 경헙하게 됩니다. 이것이 바로 Jank입니다.즉 사용자의 경험을 저하시키는 Jank를 발생시키지 않으려면 16ms라는 기준에 맞추어여 합니다.Jank는 왜 발생하는가?복잡한 위젯 트리: 복잡한 위젯 구조로 인해 위젯 트리를 탐색하고 렌더링하는 데 오랜 시간이 걸리는 경우.비동기 작.. 2024. 10. 24.
Flutter[플러터(고급)] Flutter Performance - Widget rebuild stats ======== Exception caught by Flutter framework =====================================================The following _TypeError was thrown during a service extension callback for "ext.flutter.inspector.getRootWidgetSummaryTree":Null check operator used on a null valueWhen the exception was thrown, this was the stack: #0 WidgetInspectorService._registerObjectGroupServiceExtension. (package:flut.. 2024. 10. 24.