전체 카테고리109 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. [Dart] 스택(Stack), 힙(Heap), 데이터 영역(Data Segment) 그리고 가비지 컬렉션 다트(Dart)에서의 메모리 관리와 관련된 개념인 스택(Stack), 힙(Heap), 데이터 영역(Data Segment), 그리고 가비지 컬렉션(Garbage Collection)에 대해 살펴보겠습니다. 다트는 메모리 관리를 비교적 자동화해 개발자가 직접 신경 쓰지 않도록 설계되어 있습니다. 하지만 기본적인 메모리 구조와 가비지 컬렉션의 작동 방식을 정확히 이해한다면 더 효율적인 앱을 만들 수 있습니다. 기본적인 3개의 메모리의 영역을 간단히 정리하자면 1. 스택(Stack)스택은 함수 호출 시 지역 변수와 함수 실행 컨텍스트가 저장되는 메모리 영역입니다. 다트에서도 함수가 호출될 때마다 스택에 메모리가 할당되고, 함수가 종료되면 자동으로 해제됩니다.특징: LIFO(Last In First Out) 구.. 2024. 10. 22. Github에 올려도 되는지 헷갈려? 올려도 됩니다! - gitignore와 같이 레포를 깔끔하게 해주는 것 - readme, config, asset, dockerfile - awesome 리스트 - 코드 올리지마세욧 - IDE 설정파일 - 데이터, pretrained 모델 - readme 없는 코드 2024. 7. 29. 이전 1 2 3 4 ··· 19 다음