React Native Flipper: 더 나은 디버깅 방법
7117 단어 debuggingreactnativeflipper
Flipper란?
페이스북mobile apps이 개발한 소스 디버깅 도구로 iOS와 안드로이드에 적용된다.그것은 이미 오랫동안 존재해 왔지만 아직 광범위하게 사용되지 않았다.그러나 React Native0.62의 발표에 따라 바뀔 수 있으며, 이 버전은 기본적으로 Flipper와 통합되어 있다.
Flipper는 원격 디버깅을 사용하여 가능한 한 생산 환경에 가까운 환경에서 프로그램을 실행할 수 있도록 합니다.직접 디버깅하는 것보다 프로그램을 디버깅할 때 자신감을 갖게 한다.
그러나 Flipper는 다른 디버그 도구와 다른 가장 큰 장점은 플러그인 라이브러리입니다. 플러그인 라이브러리는 플러그인 인터페이스에서 플러그인을 직접 설치하고 기능을 확장할 수 있습니다.너도 플러그인을 만들어서 공유할 수 있어!하지만 우리 처음부터 시작합시다.
직접 및 원격 디버깅
"원격 또는 직접 디버깅은 무엇입니까?"라고 생각할 수 있습니다.아니면 "내가 왜 원격 디버깅을 사용해야 합니까?"설명 좀 할게요.
기본적으로 React Native app는 대상 장치에서 실행될 때 자바스크립트 코어를 엔진으로 사용합니다.응용 프로그램을 디버깅하기 시작하면 웹 원격 디버깅이나 React Native Debugger를 사용하는 것과 같은 상황이 달라집니다.
이 경우 애플리케이션이 로컬 시스템에서 V8을 사용하여 실행 중입니다.이는 V8에 나타나지 않았기 때문에 무시될 수 있는 오류를 초래할 수 있기 때문에 문제입니다.이 밖에 응용 프로그램이 기계에서 실행될 때의 성능은 실제 장치에서 실행될 때의 성능과 다르다.
React Native에서 커머셜 애플리케이션을 구축하시겠습니까?
Get a FREE Consultation Call To Set Up The Fundamentals
Flipper 사용 방법
앞에서 말했듯이, 만약 응용 프로그램이 React Native 0.62+를 사용한다면, 응용 프로그램에 플립퍼 통합이 되어 있습니다.설치Flipper만 하면 됩니다!
만약 이전 버전을 사용한다면, Flipper가 응용 프로그램과 함께 사용할 수 있는 추가 절차가 있습니다.iOS 및 Android의 URL을 따르십시오.
첫걸음
Flipper를 시작하면 볼 내용입니다. (기계나 연결된 장치에서 React 본체 프로그램을 실행하고 있다고 가정하십시오.)
여기서 다음을 액세스할 수 있습니다.
사고보고원-사고일지
로그 (js에서 온 로그와 본체 로그를 포함하여 Xcode나 안드로이드 스튜디오를 시작할 필요가 없음)
레이아웃 - Chrome 디버그 콘솔
네트워크 – 모든 수신/전송 네트워크 요청을 탐색할 수 있음
공유 기본 설정 뷰어 - 공유 기본 설정을 보고 편집할 수 있음
Hermes Debugger – Hermes
React DevTools – 전체 React DevTools를 Flipper 내부 플러그인으로 사용
자체 플러그인 작성
Flipper를 사용하면 프로그램의 특정한 용례를 디버깅하거나 테스트할 수 있는 플러그인을 만들 수 있습니다.응용 프로그램과 데이터 교환, 이벤트 전송, 수신, 그리고 유용한 UI로 포장할 수 있습니다.
Flipper 플러그인은
모바일 클라이언트 - 대상 장치에서 실행되는 코드
데스크톱 프로그램 - 컴퓨터에서 실행되는 전자 프로그램
데스크톱 응용 프로그램
Flipper 플러그인을 작성하려면 Thread 또는 npm을 사용하여 Flipper pkg을 설치해야 합니다.그런 다음 flipper pkg init를 사용하여 플러그인을 만들 수 있습니다.플러그인의 id와 제목을 요청받을 것입니다.
그리고 색인에 있는 코드를 바꿉니다.플러그인의 tsx 코드는 다음과 같습니다.
import {
Text,
Panel,
ManagedDataInspector,
createTablePlugin,
TableBodyRow,
} from 'flipper';
import React from 'react';
type Row = {
id: string;
title: string;
};
const columns = {
title: {
value: 'Title',
},
};
const columnSizes = {
title: 'flex',
};
function renderSidebar(row: Row) {
return (
<Panel floating={false} heading={'Info'}>
<ManagedDataInspector data={row} expandRoot={true} />
</Panel>
);
}
function buildRow(row: Row): TableBodyRow {
return {
columns: {
title: {
value: <Text>{row.title}</Text>,
},
},
key: row.id,
copyText: JSON.stringify(row),
filterValue: `${row.title}`,
};
}
export default createTablePlugin<Row>({
method: 'testMethod',
columns,
columnSizes,
renderSidebar,
buildRow,
});
여기서 무슨 일이 일어났는지 설명해 드릴게요.내장된 Flipper 방법인createTablePlugin을 사용하고 있습니다. 네트워크 플러그인의 로그처럼 로컬 외관을 가진 테이블을 만들 수 있습니다.우리는 Row를 사용하여 테이블의 각 행에 대한 데이터를 정의합니다.다음에 열과 열의 크기는 우리의 열 이름과 너비를 정의합니다.그리고 우리는 두 가지 방법이 있다.말 그대로,buildRow는 Flipper에게 복제를 처리하는 것과 같은 데이터로 줄을 채우는 방법을 알려 줍니다.renderSidebar는 줄의 데이터로 사이드바를 채웁니다.
마지막 단계는 플러그인을 내보내는 것입니다. 설정과 방법 필드로 플러그인을 채워서 어떤 방법 이름에 반응해야 하는지 알려 줍니다.
완료되면 Thread lint 또는 npm run lint을 사용하여 응용 프로그램에 오류가 없는지 확인하고 flipper pkg pack
Reference
이 문제에 관하여(React Native Flipper: 더 나은 디버깅 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pagepro_agency/react-native-flipper-a-better-way-of-debugging-k8i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)