페이지 간 이동도 감지하고 싶다면 RouteObserver를 사용하는 게 정석입니다.왜 RouteObserver를 써야 하나?RouteObserver는 Navigator로 페이지 push/pop할 때의 "화면 전환"을 감지할 수 있어요.어떻게 사용하는지 정리해줄게요!1. RouteObserver를 전역으로 생성final RouteObserver> routeObserver = RouteObserver>();이걸 main.dart 또는 어디든 글로벌하게 선언해줘야 해요.2. MaterialApp에 등록MaterialApp( navigatorObservers: [routeObserver], // 기타 설정...)3. 원하는 페이지에서 RouteAware 믹스인 사용class MyPage extends St..
Future.microtask()는 Dart에서 비동기 작업을 "가능한 한 빨리" 실행하도록 예약할 때 사용하는 방법이야. 일반적인 Future()나 Future.delayed()와는 조금 다른 용도로 사용돼.Future.microtask()란?microtask queue에 작업을 추가해,현재 실행 중인 코드가 모두 완료되면 (즉, 이벤트 루프의 다음 단계로 넘어가기 전에),가장 먼저 실행되게 만드는 거야.Future.microtask(() { print("나는 microtask!");});microtask queue vs event queue구분 설명microtask queue매우 빠르게 실행됨. 현재 작업이 끝나자마자 바로 실행.event queue예: Timer, I/O, 사용자 입력 등. 이벤트..
import 'dart:developer' as developer;void main() { developer.log('log me', name: 'my.app.category'); developer.log('log me 1', name: 'my.other.category'); developer.log('log me 2', name: 'my.other.category');}이 가이드는 코드에서 활성화할 수 있는 디버깅 기능들을 설명합니다. 전체 디버깅 및 프로파일링 도구 목록은 [디버깅 페이지(Debugging page)]를 참고하세요. 애플리케이션에 로깅 추가하기다음은 애플리케이션의 동작을 기록하는 데 사용할 수 있는 몇 가지 명령어입니다. DevTools의 Logging 뷰 또는 시스템 콘솔에서 ..
Flutter 애플리케이션을 디버그할 수 있도록 도와주는 다양한 도구와 기능들이 있습니다. 다음은 사용 가능한 도구들입니다:VS Code(추천) 및 Android Studio/IntelliJ는 (Flutter 및 Dart 플러그인을 설치하면) 소스 수준의 디버거를 기본적으로 지원하며, 브레이크포인트 설정, 코드 단계별 실행, 값 확인 등의 기능을 제공합니다.DevTools: 브라우저에서 실행되는 성능 및 프로파일링 도구 모음입니다.Flutter inspector: DevTools에서 사용할 수 있는 위젯 인스펙터이며, Android Studio 및 IntelliJ에서도 (Flutter 플러그인 활성화 시) 직접 사용할 수 있습니다. 위젯 트리의 시각적 표현을 확인하거나, 개별 위젯과 해당 속성 값을 검사..
플러터 앱을 테스트할 때 플러그인으로 인한 크래시를 방지하는 방법을 알아보려면 이 문서를 계속 읽으세요. 거의 모든 Flutter 플러그인은 두 부분으로 구성되어 있습니다:여러분의 코드가 호출하는 API를 제공하는 Dart 코드해당 API를 구현하는 Kotlin이나 Swift 같은 플랫폼별(또는 "호스트") 언어로 작성된 코드 사실, 이 네이티브(또는 호스트) 언어 코드가 일반 패키지와 플러그인 패키지를 구분하는 요소입니다. 플러그인의 호스트 부분을 빌드하고 등록하는 과정은 Flutter 애플리케이션 빌드 프로세스의 일부이므로, 플러그인은 여러분의 코드가 애플리케이션 안에서 실행될 때만 작동합니다. 예를 들어 flutter run으로 실행하거나 통합 테스트를 실행할 때 그렇습니다. Dart 단위 테스트나..
모든 일반적인 Flutter 테스트 유형은 플러그인 패키지에도 적용되지만, 플러그인은 네이티브 코드를 포함하므로 모든 기능을 테스트하려면 다른 종류의 테스트도 필요할 수 있습니다. 플러그인 테스트 유형이러한 각 테스트 유형의 예제를 보려면 플러그인 템플릿으로 새 플러그인을 생성하고 지정된 디렉토리를 확인하세요. Dart 단위 테스트 및 위젯 테스트이 테스트들은 플러그인의 Dart 부분을 일반 Dart 코드처럼 테스트할 수 있게 해줍니다. 그러나 플러그인의 네이티브 코드는 로드되지 않기 때문에 플랫폼 채널 호출은 테스트에서 모킹해야 합니다. Dart 통합 테스트통합 테스트는 Flutter 애플리케이션(예제 앱)의 컨텍스트에서 실행되므로 Dart와 네이티브 코드 모두를 테스트할 수 있으며, 이 둘 사이의 상..
모바일 앱에서 성능은 사용자 경험에 매우 중요합니다. 사용자는 앱이 끊김이나 프레임 누락 없이 부드러운 스크롤과 의미 있는 애니메이션을 제공하길 기대합니다. 다양한 기기에서 앱이 끊김(jank) 없이 잘 동작하는지 어떻게 확인할 수 있을까요?두 가지 방법이 있습니다. 첫 번째는 서로 다른 기기에서 앱을 수동으로 테스트하는 방법입니다. 이 방법은 앱이 작을 경우에는 효과적일 수 있지만, 앱이 커질수록 번거로워집니다. 두 번째는 특정 작업을 수행하면서 성능 타임라인을 기록하는 통합 테스트를 실행하는 것입니다. 그런 다음 결과를 검사하여 앱의 특정 섹션을 개선해야 하는지 확인할 수 있습니다. 이 레시피에서는 특정 작업을 수행하면서 성능 타임라인을 기록하고, 그 결과 요약을 로컬 파일에 저장하는 테스트를 작성하..
이 가이드는 Flutter 앱에서 통합 테스트를 실행하는 방법을 설명합니다. 이를 통해 다음을 수행하는 방법을 배울 수 있습니다:통합 테스트 설정하기앱이 특정 텍스트를 표시하는지 확인하기특정 위젯을 탭하기통합 테스트 실행하기 이 가이드에서는 Flutter에 포함된 counter_app 프로젝트와 Flutter의 integration_test 패키지를 참조합니다.integration_test 패키지를 사용하면 다음과 같은 작업이 가능합니다:flutter drive 명령어를 사용해 실제 기기나 에뮬레이터에서 테스트 실행하기다양한 기기에서 자동 테스트를 실행하기 위해 Firebase Test Lab에서 실행하기flutter_test API를 사용하여 위젯 테스트와 유사한 스타일로 테스트 작성하기 테스트할 새 ..