ランキングに戻る

rainbow-me/rainbow

TypeScriptrainbow.me

🌈‒ the Ethereum wallet that lives in your pocket

react-nativeethereumrainbowdefiethereum-wallet
スター成長
スター
4.4k
フォーク
753
週間成長
Issue
0
2k4k
2023年1月2024年3月2025年5月2026年7月
成果物npmnpm install rainbow
README

🌈️ Rainbow

the Ethereum wallet that lives in your pocket!

📲️ Available on the iOS App Store.

🤖 Android available on the Google Play Store

💻 Browser extension available on, Chrome, Brave, Edge, FireFox, and Arc.

𝕏 Follow us on X

Setup

[!TIP] > Internal developers can also use the rainbow-me/rainbow-setup script to install all dependencies and configure the project in one step.

Prerequisites

  1. Install mise: curl https://mise.run | sh. See the installation docs for shell activation (required so tool versions auto-switch when you cd into the repo).
  2. From the repo root: mise install. This installs all pinned tools.
  3. Enable yarn: corepack enable

Internal developers

Set up these before running yarn install, as the postinstall script reads .env and rainbow-scripts to generate build configs and run prebuild hooks.

  1. Copy dotenv from rainbow-me/rainbow-env to .env in the project root.
  2. Copy android/app/google-services.json from the same repo to android/app/ in this project.
  3. Clone rainbow-me/rainbow-scripts into the project root (the postinstall prebuild hooks depend on it).
  4. Install dependencies and run setup: yarn install && yarn setup

External contributors

  1. Copy .env.example to .env and fill in your own API keys. Note that some features are currently not accessible; we are working with our Data Providers to provide open source API Keys.
  2. Provide your own google-services.json in android/app/ from a personal Firebase project registered under the package name me.rainbow.
  3. Install dependencies and run setup: yarn install && yarn setup

The iOS GoogleService-Info.plist is already in the repo and gets its API key patched by the postinstall script from GOOGLE_SERVICE_API_KEY in your .env.

iOS (macOS only)

  1. Install the Xcode version pinned in .xcode-version. Recommended: use the xcodes CLI, which reads .xcode-version automatically:
    brew install xcodesorg/made/xcodes
    xcodes install
    
    Alternatively, download the pinned version from developer.apple.com/download. CI and Bitrise build against the same pin, so local parity matters.
  2. Install Watchman: brew install watchman
  3. Install the required bundles and Pods:
    yarn install-bundle && yarn install-pods
    

Android

  1. Install JDK 17. Do not use the JDK bundled with Android Studio (it's JDK 21, which causes build failures). On macOS:

    brew install --cask zulu@17
    
  2. Add to your shell profile (~/.zshrc or ~/.bashrc):

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
    export ANDROID_HOME=$HOME/Library/Android/sdk  # macOS
    # export ANDROID_HOME=$HOME/Android/Sdk        # Linux
    export PATH=$PATH:$ANDROID_HOME/emulator
    export PATH=$PATH:$ANDROID_HOME/platform-tools
    

    On Linux, also install system dependencies: sudo apt install libsecret-tools watchman

  3. Install Android Studio (the standard setup wizard is fine).

  4. Increase the IDE memory: Android Studio > Settings > Memory Settings and set the heap to at least 4096 MB. This project is large enough that the default 2048 MB will cause slow syncs and builds.

  5. Set the Gradle JDK: Settings > Build, Execution, Deployment > Build Tools > Gradle > Gradle JDK and select the JAVA_HOME (Azul Zulu 17) entry. The default points to the bundled JDK 21.

  6. Restart any open terminals so the new environment variables take effect.

  7. Create an emulator via Android Studio > Device Manager (unless using a physical device).

  8. Run the first build from the terminal to generate native headers that Android Studio needs for Gradle sync:

    cd android && ./gradlew assembleDebug && cd ..
    
  9. Quit Android Studio completely, then reopen it from the terminal so Gradle sync picks up the generated headers:

    open -a "Android Studio"  # macOS
    

    Always launch Android Studio this way so it inherits your shell PATH (including node from mise). Launching from Spotlight or the Dock will cause Gradle sync to fail with "Cannot run program node".

Developing

Start Metro in one terminal:

yarn start

Then build and run:

  • iOS: Open ios/Rainbow.xcworkspace in Xcode (not the .xcodeproj) and press Cmd+R, or run yarn ios from the terminal.
  • Android: Open the android/ folder in Android Studio, or run yarn android from the terminal.
関連リポジトリ
react/react-native

A framework for building native applications using React

C++MIT Licenseandroidapp-framework
reactnative.dev
126.2k25.2k
facebook/react-native

A framework for building native applications using React

C++MIT Licenseandroidapp-framework
reactnative.dev
120.9k24.5k
justjavac/free-programming-books-zh_CN

:books: 免费的计算机编程类中文书籍,欢迎投稿

GNU General Public License v3.0pythonjavascript
weibo.com/justjavac
117.7k28.2k
storybookjs/storybook

Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation

TypeScriptnpmMIT Licensestorybookstyleguide
storybook.js.org
90.6k10.2k
enaqx/awesome-react

A collection of awesome things regarding React ecosystem

reactreact-native
74k7.6k
appwrite/appwrite

Appwrite® - complete cloud infrastructure for your web, mobile and AI apps. Including Auth, Databases, Storage, Functions, Messaging, Hosting, Realtime and more

TypeScriptnpmBSD 3-Clause "New" or "Revised" Licenseappwritedocker
appwrite.io
56.6k5.6k
laurent22/joplin

Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.

TypeScriptnpmOtherreact-nativenodejs
joplinapp.org
55.7k6.2k
dkhamsing/open-source-ios-apps

:iphone: Collaborative List of Open-Source iOS Apps

Creative Commons Zero v1.0 Universaliosswift
51.3k6k
expo/expo

An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.

TypeScriptnpmMIT Licensemobileexpo
docs.expo.dev
50.9k13.1k
react-hook-form/react-hook-form

📋 React Hooks for form state management and validation (Web + React Native)

TypeScriptnpmMIT Licensetypescriptreact-hooks
react-hook-form.com
44.8k2.5k
sudheerj/reactjs-interview-questions

List of top 500 ReactJS Interview Questions & Answers....Coding exercise questions are coming soon!!

JavaScriptnpmMIT Licensereactjsreact-router
44.7k10.4k
mattermost/mattermost

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..

TypeScriptnpmOthercollaborationmattermost
mattermost.com
38.5k8.8k