프로젝트 소개

MetaMask Mobile은 MetaMask 지갑의 모바일 클라이언트로, 이더리움 블록체인을 사용하는 웹사이트와 애플리케이션에 접근할 수 있게 해줍니다. iOS와 Android용으로 배포되는 React Native 애플리케이션이며, 저장소에는 전체 소스, 빌드 도구, 개발자 문서가 포함되어 있습니다. 기능 - 이더리움 기반 사이트와 dapp을 위한 모바일 지갑 및 인앱 브라우저 역할을 합니다. - Infura 프로젝트 ID를 통해 블록체인 네트워크에 연결하며, 앱이 네트워크에 접근하려면 이 ID가 필요합니다. - 앱 통신에 Firebase Cloud Messaging을 사용하며, iOS와 Android용 플랫폼 구성 파일이 필요합니다. 개발 워크플로 - Expo 경로(권장): 개발자는 네이티브 코드를 컴파일하지 않고 미리 컴파일된 개발 빌드를 다운로드한 뒤 JavaScript 번들러를 실행합니다. 설정에는 Node, Yarn v4, Watchman을 사용하며, 명령어로는 `yarn setup:expo`, `yarn watch`, 그리고 GitHub Actions 아티팩트에서 빌드를 가져오는 `yarn install:ios:dev`, `yarn install:android:dev` 같은 도우미 스크립트가 있고 캐싱 및 `--force-download` 옵션을 지원합니다. - 네이티브 경로: 네이티브 코드를 수정하거나 네이티브 컴포넌트가 있는 라이브러리를 추가할 때 필요합니다. 전체 네이티브 환경 설정, `yarn setup`, 그다음 `yarn watch`와 `yarn start:ios` 또는 `yarn start:android`가 필요합니다. 구성 참고 사항 - 내부 기여자는 1Password에서 `.js.env`를 받고, 외부 기여자는 Infura API 키를 생성하고 `.js.env.example`의 이름을 바꿉니다. - Firebase 설정은 내부와 외부 기여자가 다릅니다. 외부 사용자는 패키지 이름 `io.metamask`로 자체 Firebase 프로젝트를 만들고 서비스 파일용 base64 환경 변수를 생성합니다. 도구 및 품질 - Husky를 통한 Git 훅은 선택 사항(`yarn git:hooks:install`)이며, 커밋 시 lint-staged를 통해 Prettier와 ESLint를 실행하고, 이를 건너뛰는 방법도 문서화되어 있습니다. - AI 에이전트 스킬은 공유 MetaMask 스킬 저장소에서 로컬 전용 경로로 동기화됩니다. `yarn install`은 기본 세트를 동기화하고 `yarn skills`는 모든 도메인을 동기화하며, 선택적 로컬 구성도 지원합니다. - 문서는 아키텍처, 애니메이션, 환경 설정, 문제 해결, 컴포넌트 뷰 테스트, E2E 테스트, 디버깅, 성능, 릴리스 빌드 프로파일링, Storybook, 내부 Android 배포를 다룹니다. 이 저장소는 앱을 설치하는 최종 사용자가 아니라 MetaMask 모바일 클라이언트에 기여하거나 그 위에 구축하려는 개발자를 대상으로 합니다.